基於角色的許可權管理系統設計的問題和策略論文

基於角色的許可權管理系統設計的問題和策略論文

  中圖分類號:TP311.52 文獻標識碼:A 文章編號:1009-3044(2012)33-7918-04

  不同於自主或強制訪問控制模型,基於角色的訪問控制(簡稱RBAC,下同) 以角色作為中介,系統首先給角色授權,然後將角色分配給使用者,角色架起了訪問控制中訪問主體與客體之間的一座橋樑。之所以不直接將許可權授予使用者,是因為角色比使用者更具穩定性。當因為系統需求對使用者進行變更時,只需修改角色與該使用者的關聯,而不必對角色與訪問控制客體之間的關聯進行修改,使系統設計的靈活性有所增強。

  1 層次RBAC模型

  在基於角色的訪問控制模型(RBAC)中,通常採用分層技術對角色的職權和責任能力進行描述。透過新增對角色分層的支援,能夠提高RBAC的管理效率、明晰角色間的邏輯關係。層次RBAC模型在RBAC角色集定義的基礎上,提出了角色層次的概念,並添加了相應的訪問控制規範。層次RBAC模型如圖1所示。

  層次RBAC中包含兩類角色分層,常規角色層次和有限角色層次。常規角色層次在角色分層中支援任意偏序關係,可以實現不同角色間的許可集和使用者集從屬關係的多重繼承;有限角色層次強加限制了角色分層系行為,使系統中分層技術被限制在簡單的邏輯結構中,有利於增強系統授權的安全性。

  2 角色控制的權責分割

  權責分割是系統設計中常用的一條安全法則,主要用於加強有利害關係策略的衝突性。該衝突性允許一個使用者可以同時獲得兩個(或以上)的衝突角色,透過角色分層和個性化角色集為高層次的組織安全策略提供約束機制。為了便於許可權管理系統的設計,參照RBAC標準的有關內容,我們將權責分割分為兩大類:靜態權責分割和動態權責分割。

  2.1靜態權責分割

  靜態權責分割(SSD)屬於靜態約束,在角色集定義時就實施訪問控制約束。SSD定義了一個包含兩個(或以上)角色的集合,為角色集指定限制條件,限制使用者指派關係。SSD還透過基數對策略違例做出了規定:如果系統的區域性組織中有一個由5個角色組成的角色集,則在授權過程中僅能有不超過4個的使用者角色數目。

  2.2 動態權責分割

  動態權責分割(DSD)屬於動態約束,在啟用角色時才實施訪問控制約束。DSD限制了對使用者有效的許可,為每個使用者的最小許可權提供了不同的擴充套件支援。我們定義DSD(×N)是動態權責分割中(rs,n)對的集合,其中rs代表角色集,n代表基數。我們認為在任意一個(rs,n)DSD的情況下,不存在使用者會話能從rs中同時獲得大於等於n的角色個數。該結論證明如下:

  設t是rs的一個子集,據上述定義可得到:

  SSD能夠在使用者指派角色時,解決潛在的利害衝突;DSD則是在角色啟用時,解決產生的策略衝突。

  3 基於角色的`訪問控制應用

  在許可權管理系統中,SSD用於用例設計,主要是對訪問控制核心角色的定義;DSD用於訪問控制,主要是對許可權管理核心類的描述。

  3.1系統用例設計

  在採用RBAC模型的許可權管理系統中,角色功能圖的用例框圖如圖2所示。

  該用例框圖中的角色控制執行者主要有3個:安全管理員、使用者和角色領域工程師。角色領域工程師是許可權管理系統的核心角色,主要用於描述許可權集,實施角色分層和附加約束操作。安全管理員管理負責管理基於角色的許可權系統,為使用者授權。使用者被定義為一個真實的人或者一個外部的系統,他可以透過角色策略,要求系統執行針對某個物件的某種操作。

  3.2 訪問控制模組

  訪問控制模組是整個許可權管理系統的核心部分,它的主要功能是用來驗證使用者或其角色是否具有訪問許可權。對外部系統而言,訪問控制模組採用黑盒設計,透過返回值確定允許或拒絕使用者的操作申請。此模組的流程圖如圖3所示,從建立許可權與資源的對應關係入手,逐步實現角色實體與許可權實體之間呼叫許可權操作,從而建立許可權實體與層次結構的關聯。

  訪問控制模組設計中的主要成員類有User、Session、Role、Permission、Constrain、Object,其中Role是核心類用作主要類的連線。

  User是一個介面,它包括RBAC 控制模組中不同功能的實現類,每一個User對應一個Session。在使用者Logon成功後Session由系統提供,當會話時鐘超時系統會要求使用者重新進行身份驗證。每一個Logon使用者可以在自己的Session中啟用符合條件的角色,在啟用角色之前系統先要呼叫Constrain檢查,確認使用者角色之間是否存在衝突。Role類的設計也和Session一樣使用了多例設計模式,其目的同樣是為了控制被啟用角色的數量。

  3.3角色管理實現

  許可權管理系統中的角色管理包括:增加角色、角色管理範圍設定、角色變更、角色刪除等四部分功能, 角色管理功能可透過點選左邊角色管理欄選單或右鍵選單來實現,許可權管理系統中角色管理的部分原始碼如下。

  4 結論

  在許可權管理系統中,角色控制比使用者控制具有更好的靈活性,能夠有效實現權責分割。基於角色的許可權管理系統已經能夠很好滿足單域環境中的系統授權,針對跨域訪問的授權機制和對權責分割理論的最佳化,是今後進一步工作的重點。

  參考文獻:

  [1] David F,Richard K.Role-Based Access Control [C].Proceedings of 15th National Computer Security Conference,1992:1-11.

  [2] 鍾華,馮玉琳.擴充角色層次關係模型及其應用[ J] .軟體學報,2000,11(6):779-784.

  [3] 呂宜洪,宋瀚濤,龔元明.基於RBAC改進模型的角色許可權及層次關係分析[J] .北京理工大學學報, 2002,22(5) :611-614.

  [4] 余文森,張正秋,章志明,等.基於角色的訪問控制模型中私有許可權問題的研究[J].計算機應用研究,2004(4):50-51.

  [5] 鞠成東,廖明宏.基於RBAC模型的角色許可權及層次關係研究[J].哈爾濱工業大學學報,2005,10(4):95-99.

  [6] 余文森,張正球.基於角色的訪問控制模型中私有許可權問題的研究[J].計算機應用研究,2004,21(4):5.

  [7] 廖俊國,洪帆,朱賢,等.動態角色轉換的關聯最佳化[J].計算機工程與應用,2006(5).

  [8] 馮學斌,鄭峰,洪帆.IRBAC2000角色轉換衝突處理策略[J].計算機工程與科學,2007,29(9):53-55.

最近訪問