RBAC--基於角色的訪問控制

一、RBAC0
RBAC0(Core RBAC)定義了能構成一個RBAC控制系統的最小的元素集合。在RBAC0之中,包含最基本的5個元素:用戶集(users,USERS)、角色集 (roles,ROLES)、目標/對象集(objects,OBS)、操做集(operations,OPS)、許可權/特權集 (permissions,PRMS)。權限被賦予角色,而不是用戶,當一個角色被指定給一個用戶時,此用戶就擁有了該角色所包含的權限。會話集 (sessions,SESSIONS)是用戶與激活的角色集合之間的映射。RBAC0與傳統訪問控制的差異在於增長一層間接性(角色)帶來了靈活 性,RBAC一、RBAC二、RBAC3都是前後在RBAC0上的擴展。
RBAC0模型如圖2所示:


圖2:RBAC0模型

用戶(User):表明人,也能夠是一臺機器、agent、或者其餘任何智能型物品。
角色(Role):表示一個工做職責,在一個組織機構環境中的工做職責。該職責能夠關聯一些關於權力和責任的語義。
權 限(Permission):是一個許可,對在一個或多個對象上執行操做的許可。如:「一個文檔」不是權限,「刪除」也不是權限,只有「對文檔的刪除」才 是權限。因爲RBAC標準定義的權限是正向受權(正權限),並無禁止負向受權(負權限),所以能夠自定義負權限。正向受權在開始時假定主體沒有任何權 限,而後根據須要授予權限,適合於權限要求嚴格的系統。負向受權在開始時假定主體有全部權限,而後將某些特殊權限收回。
操做(Operation):是程序的可執行的反映(image),被用戶調用和執行。操做的類型取決於實現系統的類型。
對象(Object):表示資源(Resource)或目標,任何訪問控制機制都是爲了保護系統的資源。對象包括:文件、目錄,數據庫表、行、字段,磁盤空間,打印機,甚至CPU週期等。
會 話(Session)在RBAC0中是比較隱晦的一個元素。RBAC標準定義:每一個會話是一個映射,一個用戶到多個角色的映射。當一個用戶激活他全部角色 的一個子集時,創建一個會話。每一個會話和單個用戶關聯,每一個用戶能夠關聯到一個或多個會話。當用戶執行一段過程(Process)或一個動做 (Action)時,將使用到相關的Role(全部Role的子集);這個過程就能夠稱爲一個會話。

二、RBAC1
RBAC1(Hierarchical RBAC)引入角色間的繼承關係。
角 色間的繼承關係可分爲通常(General)繼承關係和受限(Limited)繼承關係。通常繼承關係僅要求角色繼承關係是一個絕對偏序關係,容許角色間 的多繼承。而受限繼承關係則增長了職責關係的分離,進一步要求角色繼承關係是一個樹結構。通常繼承的RBAC和受限繼承的RBAC二者的區別在於:前者是 圖;然後者能夠有多個父節點但只能有一個子節點,是一個反向樹結構。
RBAC1模型如圖3:

圖3:RBAC1模型
角 色繼承用於解決複雜組織機構之間的權限關係。它是一種「很天然地」對組織機構層次中權限和責任的映射。如:總經理→部門經理→業務員。角色繼承的方向和用 戶的關係方向相反,即權限最小的在頂端:業務員→部門經理→總經理。如:若全部role_salesman(業務員)的權限都是role_Mgr(經理) 的權限,那麼role_Mgr繼承自role_salesman。

三、RBAC2
RBAC2(Constraining RBAC)模型中添加了責任分離(Separation of Duty ,SoD)關係;這是RBAC最複雜的部分。RBAC2的約束規定了權限被賦予角色時,或角色被賦予用戶時,以及當用戶在某一時刻激活一個角色時所應遵循 的強制性規則。責任分離包括靜態責任分離(Static Separation of Duty,SSD)和動態責任分離(Dynamic Separation of Duty,DSD)。約束(Constraining)與用戶-角色-權限關係一塊兒決定了RBAC2模型中用戶的訪問許可。


圖4:RBAC2模型
       RBAC標準定義:職責關係分離(SoD)用於加強利益衝突策略,這種策略某些組織機構可能會須要,即避免用戶超出其當前職位合理的權限等級。簡單地說, 就是避免兩個角色間的衝突。如:會計和出納,在通常公司都不容許同一我的兼任。所以在分配角色的時候,應該禁止這兩種角色賦給同一人。
靜態責任分離(SSD),即在系統初始化時,當角色授給用戶時來判斷是否將衝突的角色給了同一用戶。在RBAC標準中,衝突的角色被定義爲一個二元關係,就是說,任何一個用戶只能擁有其中的一個。
       動態責任分離(DSD),指相沖突的角色能夠同時給一個,可是在一次會話中不能同時扮演兩個衝突的角色。如:在超市POS系統中,ywf能夠是收銀員或收 銀員主管(ROLE)。收銀員必須通過主管才能打開收銀機的抽屜修改某次結帳錯誤。若是收銀員角色的一個單獨的行爲中須要從收銀員切換到主管,那麼DSD 要求,這個用戶(USER)必須先放棄收銀員角色;即,當該收銀員正在收銀時發現錯誤,必需要先關閉抽屜,而後再次以主管身份打開抽屜才行。

四、RBAC3
RBAC3包含了RBAC1和RBAC2,既提供了角色間的繼承關係,又提供了責任分離關係。數據庫

相關文章
相關標籤/搜索