国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Shiro架構的通配符的權限設計思路

2019-03-08 10:21:38劉志濤
關鍵詞:訪問控制實例應用程序

劉志濤,周 淦

(華北計算機系統(tǒng)工程研究所,北京 100083)

0 引言

面對著日益嚴峻的用戶數(shù)據(jù)和應用安全問題,企業(yè)如何更加安全[1]有效地保護用戶隱私數(shù)據(jù)越來越受到重視[2]。在程序應用中,當訪問用戶敏感信息時,都需要經(jīng)過認證和授權,并且對用戶數(shù)據(jù)加密,禁止明文存儲。軟件開發(fā)者需要一個簡單、強大和有效的Web安全框架,從用戶的認證、授權和數(shù)據(jù)加密的各個環(huán)節(jié)保證企業(yè)應用的安全性。

1 Web應用安全

一個功能強大并且容易使用的安全框架,需要具有身份認證、授權、數(shù)據(jù)加密和會話管理等功能[3-4]。借助其簡單高效的框架接口,讓軟件開發(fā)者可以輕松地保護任何應用程序。

1.1 Web安全應用所需功能

Web安全架構需具有的主要功能組件:

(1)身份認證[5]:驗證用戶是不是擁有相應的身份,通常是驗證用戶登錄應用時提供的用戶名和密碼是否正確。

(2)權限驗證:當用戶的身份認證通過后,用戶開始訪問企業(yè)提供的服務或者資源,只有具有相應權限的用戶才能訪問,即驗證用戶是否具有相應資源的讀寫權限[6]。

(3)會話管理:當用戶登錄應用后,后臺應用需要記錄用戶的訪問時間、訪問記錄和信息修改,方便企業(yè)對用戶提供個性化的服務,提高用戶的滿意度,讓企業(yè)更懂用戶,更深層次挖掘用戶的需求。

(4)數(shù)據(jù)加密[7]:企業(yè)需要對用戶的數(shù)據(jù)加密,避免明文存儲。當安全事件發(fā)生后,加密的數(shù)據(jù)無論是對于破壞者還是具有不良企圖的攻擊者,都是一層簡單有效的數(shù)據(jù)保護,可以最大程度地減少企業(yè)的經(jīng)濟損失。

(5)緩存:企業(yè)應用特別是計算密集型的應用,如何有效減少響應延遲,最大程度地提高應用效率,通常的做法會對使用頻率高并且計算成本比較高的數(shù)據(jù)進行緩存。

(6)分布式應用:企業(yè)應用通常面對的用戶數(shù)量比較大,單體應用已經(jīng)不能滿足互聯(lián)網(wǎng)企業(yè)的用戶群體,如何更好地利用多核處理器的性能,并且橫向擴展更加容易的分布式應用成為越來越多的企業(yè)開發(fā)的選擇。

1.2 安全應用框架設計

通過了解Web安全應用需要的功能,可以知道如何解決軟件開發(fā)者面臨的各種問題。外部框架應該提供簡單應用的開發(fā)接口,內(nèi)部框架可以使開發(fā)者根據(jù)企業(yè)應用的實際需要靈活地定制自己的認證策略和授權策略。

1.2.1安全應用的訪問控制概念

從安全應用的外部框架,主要涉及用戶、安全管理器和域三個概念。當應用程序被訪問時,自然而然想到誰是當前用戶,當前用戶允許執(zhí)行什么操作,因此,應用程序在考慮安全性時首先基于當前用戶。

安全框架的用戶是一個泛指概念,即“當前正在執(zhí)行的用戶”,在安全領域,不單單指人,也可以是第三方的流程、守護程序或者任何相似概念的訪問者。用戶的獲取需要安全管理器,安全管理器管理所有用戶的安全操作,與應用的程序的交互都需要安全管理器管理相應的用戶,使得它成為安全框架的核心。通??筛鶕?jù)應用程序的實際需要,在數(shù)據(jù)庫、配置文件中配置相應的用戶、權限或者角色,使開發(fā)者清楚地知道誰可以訪問應用程序以及執(zhí)行什么樣的操作。

1.2.2安全應用的訪問控制架構設計

如圖1所示,從安全應用的角度,該架構具有很多靈活的組件,相比其他架構具有其他安全架構不具備的優(yōu)點:

圖1 安全應用訪問控制框架

(1)架構的每個組件均可插拔,除了有默認的功能組件外,還可以根據(jù)實際需要開發(fā)定制。

(2)支持一個或多個可插拔的數(shù)據(jù)源的身份驗證,實現(xiàn)多數(shù)據(jù)源的交叉驗證。

(3)每個組件都有緩存支持,在開發(fā)實踐中可以極大地提高應用程序的性能。

(4)內(nèi)置的企業(yè)會話管理,無論是Web環(huán)境還是普通應用程序中,都可以提供單點登錄功能[8];如果應用是集群或者分布式環(huán)境,組件具有橫向良好的擴展性。

(5)異構的客戶端訪問,常見異構的客戶端都可以訪問安全架構,而且支持不同客戶端的會話共享功能。

(6)功能強大而且需要的配置少,可以保護任何URL或者資源,自動處理登錄和注銷,執(zhí)行記住我等功能。

(7)簡單的單點登錄(SSO)支持搭載企業(yè)會話管理。如果會話跨多個應用程序聯(lián)合,則也可以共享用戶的身份驗證狀態(tài)。登錄到任何應用程序,其他人都識別登錄。

2 關鍵技術

日常開發(fā)中,首先需要對用戶進行認證,驗證用戶是否是其聲明的身份,當用戶訪問某項資源時,再查看用戶的角色或者權限,以決定是否允許訪問。

2.1 用戶身份認證步驟

安全應用進行用戶身份認證,可有效地分解成三個不同的步驟:

(1)收集身份和憑證

應用中一般都是使用用戶名和密碼作為身份和憑證對,相應地使用用戶密碼令牌來封裝用戶登錄時的用戶名和密碼。安全框架通過認證接口,存儲用戶的密鑰對,在系統(tǒng)內(nèi)部實例化認證信息實體。也可以個性化定義和創(chuàng)建需要認證的令牌。

(2)提交身份和憑證

身份和憑證被收集并裝載到認證令牌的實例中后,需要把令牌提交給安全應用來進行身份認證,嘗試獲取到當前交互的用戶后,調(diào)用登錄方法發(fā)出登錄認證請求,將認證信息實體提交給內(nèi)部自定義的認證策略,來進行下一步的驗證用戶流程。

(3)驗證身份和憑證

應用程序會從內(nèi)部定義的安全數(shù)據(jù)域獲取相應用戶的認證實體,與用戶提交的認證令牌進行比對,如果驗證通過,意味著當前用戶為聲稱的實體本身,并返回內(nèi)部系統(tǒng)的認證實例。然而,如果此時沒有系統(tǒng)驗證,根據(jù)驗證策略,可以設置最大的用戶登錄次數(shù),防止不明用戶的惡意攻擊,造成系統(tǒng)的癱瘓[9]。

2.2 訪問控制認證流程

在調(diào)用登錄方法發(fā)起認證請求后,承載著用戶登錄信息的認證令牌實例就會經(jīng)由安全管理器轉交給認證器。認證器會應用認證策略來完成與單個或多個數(shù)據(jù)域的校對,每個數(shù)據(jù)域都會有自己的認證數(shù)據(jù)的方法來對已提交的令牌進行身份驗證嘗試??梢詫τ脩舻亩鄠€維度信息進行驗證,若大部分的安全域信息驗證通過,就可以認為當前用戶通過了安全認證并返回真,否則系統(tǒng)內(nèi)部會拋出認證錯誤信息的異常。如圖2所示。

圖2 訪問控制認證流程

2.3 訪問控制授權流程

如圖3所示,應用程序會收集當前用戶執(zhí)行操作的權限標識符,通過授權接口傳遞給系統(tǒng)內(nèi)部,授權流程會從相應的安全數(shù)據(jù)域獲取用戶的權限信息。授權策略會對系統(tǒng)內(nèi)部的權限實體與用戶執(zhí)行操作的權限實體進行驗證。授權器首先會利用權限解釋器把字符串轉換成相應的權限實例,然后通過數(shù)據(jù)域中的授權函數(shù)獲取數(shù)據(jù)源中的用戶的角色和權限,與傳入的角色和權限進行匹配和比較。

圖3 訪問控制授權流程

3 基于通配符的權限設計思路

數(shù)據(jù)資源常見的操作是創(chuàng)建、讀取、寫入和刪除,在定義資源權限時,只會對指定資源(文件、客戶記錄等)上的操作設定訪問權限。如何細粒度、多層次地控制用戶對資源的訪問,還缺少一個有效的權限設計策略。基于通配符權限概念來設計權限系統(tǒng),可以從資源級別、實例級別和操作級別、指定用戶的權限訪問標識,更好地保護系統(tǒng)應用和數(shù)據(jù)安全。

3.1 訪問控制粒度

訪問控制粒度表示所訪問資源的操作的范圍大小,按照訪問層級的不同,訪問控制粒度可以劃分為接入級、目錄級、角色級和屬性級訪問控制安全。

3.1.1接入級訪問控制

接入級訪問控制是網(wǎng)絡應用和網(wǎng)絡設備的最前端保護。在接入級控制哪些用戶可以訪問系統(tǒng)應用以及訪問哪些資源,另外,可以控制用戶的訪問時間段和訪問次數(shù),在合法用戶訪問服務器或者工作站等網(wǎng)絡設備時,進行相應的安全訪問控制,如圖4所示。

圖4 接入級訪問控制流程圖

3.1.2目錄級訪問控制

以目錄為控制粒度單位,控制用戶的權限訪問。例如,具有某種權限的用戶才能訪問根目錄,具有某種權限的用戶才能訪問二級目錄。網(wǎng)絡資源通常以目錄的形式進行組織,方便對網(wǎng)絡資源的分類,使得可以對不同重要級別的資源分配不同的訪問策略。

3.1.3角色級訪問控制

將用戶進行角色分配,同一角色擁有相同的權限,不同的用戶可以擁有一個或者多個角色。角色是將網(wǎng)絡資源的權限控制進行分組,可以限制用戶進入系統(tǒng)應用后資源的訪問控制,防止隨意操作網(wǎng)絡資源,造成系統(tǒng)重要數(shù)據(jù)的丟失或者破壞。

3.1.4屬性級訪問控制

資源文件的所屬目錄和文件本身都具有訪問控制屬性,比如文件的讀取、寫入和執(zhí)行屬性,以及用戶具有什么操作權限,用戶相應的組具有什么操作權限和其他人的操作權限。預先定義的網(wǎng)絡資源的訪問控制屬性表,可以說明用戶對于網(wǎng)絡資源的使用限制。

3.2 基于通配符權限訪問控制符

權限本質(zhì)上是訪問控制,即控制用戶可以在應用程序中訪問的內(nèi)容,例如資源、網(wǎng)頁和文件等。大多數(shù)的用戶可以通過使用角色或者權限概念來執(zhí)行訪問控制,即用戶是基于分配給他們的角色來被允許執(zhí)行哪些操作?;谕ㄅ浞麢嘞拊O計方法可以將資源與權限進行抽象并通過組合鏈的方式逐層驗證,使得資源的安全策略非常靈活,甚至支持實例級的訪問控制。

3.2.1通配符權限的多層次

通配符權限設計方法支持權限設計的層級化,如何更加細粒度標識用戶對于資源的訪問權限也是通過層級化來強化的。例如:file:read:file89,權限的層次是通過冒號分隔符表示的,冒號越多代表著權限定義的粒度越細。在上述權限表示符中,第一部分表示被抽象的資源(文件),第二部分標識需要資源進行什么操作(讀取),第三部分標識資源的具體實例(文件名),因此通過冒號分隔符可以構建非常復雜的資源訪問控制權限。

如果用戶具有某個資源的多個訪問權限,那么相同層級的權限標識符之間用逗號分隔。例如,file:read,write,即用戶具有對于這個文件的讀取和寫入權限。如果需要表示用戶具有對某一類資源的所有權限,可以使用*來表示。例如:file:*,就是將文件資源的所有的實例與所有操作都賦予用戶。

3.2.2通配符權限的權限檢查

基于通配符的權限設計具有橫向擴展性,使得在系統(tǒng)權限設計時,可以在粒度的選擇上賦予用戶較粗的粒度或者較細的粒度。這使得在Web應用中,權限的授權邏輯不僅僅是比對權限標識符是否相等,而是通過權限標識符的邏輯關系進行判斷的。比如,如果用戶被賦予file:read:*權限,當前用戶也具有file:read:file1,file:read:file2等資源的訪問權限,可以很清晰地看出“file:read:*”與“file:read:file1”并不相等,而是通過權限標識符的內(nèi)部邏輯關系驗證用戶是否具有某一項權限的操作。

表1 訪問權限控制對比

4 結束語

通過簡化應用程序安全性的兩個方面,即身份認證和權限授權,使得企業(yè)應用的安全性更容易理解和實現(xiàn)。基于權限的通配符的設計理念,輕松地將資源、操作和資源實例進行抽象,可以在應用粒度和功能粒度對資源進行訪問控制,細粒度和多層級的權限訪問使得開發(fā)者更容易表達對于資源的權限控制和權限賦予,通過組合也能表達更加復雜的權限。

猜你喜歡
訪問控制實例應用程序
刪除Win10中自帶的應用程序
電腦報(2019年12期)2019-09-10 05:08:20
ONVIF的全新主張:一致性及最訪問控制的Profile A
動態(tài)自適應訪問控制模型
通信學報(2016年11期)2016-08-16 03:20:32
淺析云計算環(huán)境下等級保護訪問控制測評技術
大數(shù)據(jù)平臺訪問控制方法的設計與實現(xiàn)
完形填空Ⅱ
完形填空Ⅰ
關閉應用程序更新提醒
電腦迷(2012年15期)2012-04-29 17:09:47
三星電子將開設應用程序下載商店
微軟軟件商店開始接受應用程序
天祝| 安溪县| 米林县| 乌兰县| 墨江| 中方县| 武清区| 乐平市| 林周县| 视频| 仙居县| 隆昌县| 乌苏市| 克什克腾旗| 石河子市| 四子王旗| 友谊县| 牙克石市| 繁峙县| 宁武县| 石景山区| 壶关县| 囊谦县| 即墨市| 乌拉特中旗| 军事| 封开县| 介休市| 祁东县| 牡丹江市| 库尔勒市| 永泰县| 徐闻县| 苗栗市| 五常市| 南召县| 金塔县| 永年县| 中超| 米林县| 织金县|