天天看點

使用者權限設計(四)——基于RBAC模型的通用權限管理系統的設計(資料模型)的擴充【轉】

1 RBAC模型

       通路控制是針對越權使用資源的防禦措施。基本目标是為了限制通路主體(使用者、程序、服務等)對通路客體(檔案、系統等)的通路權限,進而使計算機系統在合法範圍内使用;決定使用者能做什麼,也決定代表一定使用者利益的程式能做什麼[1]。

        企業環境中的通路控制政策一般有三種:自主型通路控制方法、強制型通路控制方法和基于角色的通路控制方法(RBAC)。其中,自主式太弱,強制式太強,二者工作量大,不便于管理[1]。基于角色的通路控制方法是目前公認的解決大型企業的統一資源通路控制的有效方法。其顯著的兩大特征是:1.減小授權管理的複雜性,降低管理開銷;2.靈活地支援企業的安全政策,并對企業的變化有很大的伸縮性。

       NIST(The National Institute of Standards and Technology,美國國家标準與技術研究院)标準RBAC模型由4個部件模型組成,這4個部件模型分别是基本模型RBAC0(Core RBAC)、角色分級模型RBAC1(Hierarchal RBAC)、角色限制模型RBAC2(Constraint RBAC)和統一模型RBAC3(Combines RBAC)[1]。RBAC0模型如圖1所示。

         a. RBAC0定義了能構成一個RBAC控制系統的最小的元素集合。在RBAC之中,包含使用者users(USERS)、角色roles(ROLES)、目标objects(OBS)、操作operations(OPS)、許可權permissions(PRMS)五個基本資料元素,權限被賦予角色,而不是使用者,當一個角色被指定給一個使用者時,此使用者就擁有了該角色所包含的權限。會話sessions是使用者與激活的角色集合之間的映射。RBAC0與傳統通路控制的差别在于增加一層間接性帶來了靈活性,RBAC1、RBAC2、RBAC3都是先後在RBAC0上的擴充。

         b. RBAC1引入角色間的繼承關系,角色間的繼承關系可分為一般繼承關系和受限繼承關系。一般繼承關系僅要求角色繼承關系是一個絕對偏序關系,允許角色間的多繼承。而受限繼承關系則進一步要求角色繼承關系是一個樹結構。

        c. RBAC2模型中添加了責任分離關系。RBAC2的限制規定了權限被賦予角色時,或角色被賦予使用者時,以及當使用者在某一時刻激活一個角色時所應遵循的強制性規則。責任分離包括靜态責任分離和動态責任分離。限制與使用者-角色-權限關系一起決定了RBAC2模型中使用者的通路許可。

        d. RBAC3包含了RBAC1和RBAC2,既提供了角色間的繼承關系,又提供了責任分離關系。

 2核心對象模型設計

      根據RBAC模型的權限設計思想,建立權限管理系統的核心對象模型.對象模型中包含的基本元素主要有:使用者(Users)、使用者組(Group)、角色(Role)、目标(Objects)、通路模式(Access Mode)、操作(Operator)。主要的關系有:配置設定角色權限PA(Permission Assignment)、配置設定使用者角色UA(Users Assignmen描述如下:

       a .控制對象:是系統所要保護的資源(Resource),可以被通路的對象。資源的定義需要注意以下兩個問題:

       1.資源具有層次關系和包含關系。例如,網頁是資源,網頁上的按鈕、文本框等對象也是資源,是網頁節點的子節點,如可以通路按鈕,則必須能夠通路頁面。

       2.這裡提及的資源概念是指資源的類别(Resource Class),不是某個特定資源的執行個體(Resource Instance)。資源的類别和資源的執行個體的區分,以及資源的粒度的細分,有利于确定權限管理系統和應用系統之間的管理邊界,權限管理系統需要對于資源的類别進行權限管理,而應用系統需要對特定資源的執行個體進行權限管理。兩者的區分主要是基于以下兩點考慮:

        一方面,資源執行個體的權限常具有資源的相關性。即根據資源執行個體和通路資源的主體之間的關聯關系,才可能進行資源的執行個體權限判斷。 例如,在管理資訊系統中,需要按照營業區域劃分不同部門的客戶,A區和B區都具有修改客戶資料這一受控的資源,這裡“客戶檔案資料”是屬于資源的類别的範疇。如果規定A區隻能修改A區管理的客戶資料,就必須要區分出資料的歸屬,這裡的資源是屬于資源執行個體的範疇。客戶檔案(資源)本身應該有其使用者的資訊(客戶資料可能就含有營業區域這一屬性),才能區分特定資源的執行個體操作,可以修改屬于自己管轄的資訊内容。

        另一方面,資源的執行個體權限常具有相當大的業務邏輯相關性。對不同的業務邏輯,常常意味着完全不同的權限判定原則和政策。

        b.權限:對受保護的資源操作的通路許可(Access Permission),是綁定在特定的資源執行個體上的。對應地,通路政策(Access Strategy)和資源類别相關,不同的資源類别可能采用不同的通路模式(Access Mode)。例如,頁面具有能打開、不能打開的通路模式,按鈕具有可用、不可用的通路模式,文本編輯框具有可編輯、不可編輯的通路模式。同一資源的通路政策可能存在排斥和包含關系。例如,某個資料集的可修改通路模式就包含了可查詢通路模式。

        c.使用者:是權限的擁有者或主體。使用者和權限實作分離,通過授權管理進行綁定。

        d.使用者組:一組使用者的集合。在業務邏輯的判斷中,可以實作基于個人身份或組的身份進行判斷。系統弱化了使用者組的概念,主要實作使用者(個人的身份)的方式。 

        e.角色:權限配置設定的機關與載體。角色通過繼承關系支援分級的權限實作。例如,科長角色同時具有科長角色、科内不同業務人員角色。

        f.操作:完成資源的類别和通路政策之間的綁定。

        g.配置設定角色權限PA:實作操作和角色之間的關聯關系映射。

        h.配置設定使用者角色UA:實作使用者和角色之間的關聯關系映射。

 該對象模型最終将通路控制模型轉化為通路矩陣形式。通路矩陣中的行對應于使用者,列對應于操作,每個矩陣元素規定了相應的角色,對應于相應的目标被準予的通路許可、實施行為。按通路矩陣中的行看,是通路能力表CL(Access Capabilities)的内容;按通路矩陣中的列看,是通路控制表ACL(Access Control Lists)的内容。

資料模型圖如下:

使用者權限設計(四)——基于RBAC模型的通用權限管理系統的設計(資料模型)的擴充【轉】