附錄B(資料性附錄)組件原理
B.1 概述
本RBAC標準包含兩個主要部分:RBAC參考模型和RBAC功能規范。RBAC參考模型嚴格定義了RBAC模型集合和關系,它的主要目的在于定義通用的術語以便一致地描述需求和設定標準中RBAC特征的范圍。RBAC功能規范定義了創建和維護RBAC元素集和關系的操作;進行管理查詢的查看函數;創建和維護會話特征和進行訪問控制決策的系統函數。
RBAC模型和功能規范被組織成四個RBAC組件。下面針對每個組件提供了其基本原理。
B.2 核心RBAC
核心RBAC包含了RBAC的核心元素。RBAC的基本思想是給用戶分配角色,給角色分配權限,用戶通過角色獲取相應權限。核心RBAC包括支持多對多的用戶/角色和角色/權限分配函數,因此一個用戶可以被分配多個角色,一個角色可以被分配給多個用戶。一項權限可以被分配給多個角色,一個角色可以被分配多項權限。核心RBAC包含查看用戶/角色分配的查看函數,通過這些函數可以獲得分配了給定角色的用戶和分配給了給定用戶的角色。與此相似的權限/角色查看函數被定義為高級(可選)函數。最后,核心RBAC要求一個用戶能夠同時行使他/她多個角色的權限。按照這一要求,那些僅僅允許用戶激活一個角色的產品將不能宣稱與本標準一致。
核心RBAC體現了現在操作系統中傳統的基于組的訪問控制的特征。核心RBAC的特征對于任何形式的RBAC都是基本的。在定義核心RBAC時,關鍵的問題是確定包含哪些特征。本標準盡力保持一個最小的核心特征集,特別地,這些特征容納傳統的基于組的訪問控制。但是并非任何基于組的訪問控制都能符合核心RBAC的要求。核心RBAC對于角色/權限查看沒有做強制的要求(僅僅定義為可選的),盡管這一特征是令人期望的,但許多目前廣泛部署的RBAC系統并沒有提供這一特征。
B.3 層次RBAC
層次RBAC添加了支持角色層次的函數。角色層次是數學上的偏序關系,高級別的角色繼承低級別角色的權限,低級別角色繼承較高級別角色的用戶成員。本標準認可兩種類型的角色層次:
a) 通用角色層次—支持任意的偏序關系作為角色層次,從而支持權限的和用戶成員關系的多重繼承。
b) 受限角色層次—有些系統對角色層次進行限制,最常用的形式是限制角色層次為一棵樹。
角色可以擁有重合的權能,因此被分配了不同角色的用戶可以擁有重合的權限。在許多組織結構中,一些通用權限為廣泛的用戶所行使,重復地給每個角色分配這些通用的權限是低效的和管理上復雜的。因此眾多的RBAC模型和商業實現都支持角色層次。通用角色層次被認為是核心RBAC之外最值得期望的特征。該特征在RBAC歷史上被廣泛的提及,并在商業產品中得到廣泛實現。需要一個自反的﹑對稱的﹑傳遞的偏序關系來支持角色層次,這一點已經得到了廣泛的討論并達成了共識。有一些實現僅支持受限角色層次,這也能夠提供顯著超出核心RBAC的功能。
B.4 靜態職責分離關系
職責分離關系被用來實施利益沖突策略。在基于角色的系統中,用戶獲得了相互沖突的角色關聯的權限可能導致利益沖突策略的違反。一種防止這種策略違反的方法是靜態職責分離,即對用戶/角色分配進行約束。一個例子是兩個角色可能需要是相互沖突的,例如一個角色請求支付而另一個角色批準支付,組織策略可能要求任何一個用戶不能同時擁有這兩個角色。因為SSD關系和角色層次上的繼承關系可能產生沖突,SSD規范在角色層次存在和不存在的情況下分別進行了定義:
a) 靜態職責分離—靜態職責分離約束用戶/角色分配。一個用戶在已經被分配某個角色的情況下可能會被阻止被分配另一個或者另一些角色。
c) 角色層次下的靜態職責分離—除了用戶直接分配的角色和間接繼承的角色都要考慮職責分離之外,其余與非角色層次下的靜態職責分離相同。
SSD被定義為形如(role_set,n)的對,用戶不能被分配屬于role_set角色集的n個或者更多角色。
從策略的角度來看,SSD是一種有效的在RBAC元素集上實施利益沖突策略的機制。靜態約束通常對那些可能違反高層組織職責分離策略的管理操作施加限制。
靜態約束有多種形式,常見的例子就是靜態職責分離。然而靜態約束已經被證明也是一種有效地實施其它職責分離策略的手段。本標準中定義的靜態約束僅限于針對用戶/角色關系的限制。
B.5 動態職責分離
動態職責分離與靜態職責分離都致力于限制用戶可用的權限。DSD和SSD區別在它們被實施的上下文不同。DSD通過限制用戶會話中可以被激活的角色來限制用戶權限的可用性。
同SSD,DSD關系把約束定義為形如(role_set,n)的對(n 2),要求沒有用戶會話能夠激活屬于角色集role_set的中n個或者更多的角色。
DSD通過使得用戶在不同的時間擁有不同的權限來進一步支持最小特權原則。它確保權限的可用時間不會超過履行職責所需要的時間段。這種最小特權通常被稱為信任的及時撤銷。在沒有動態職責分離的情況下,動態權限撤銷是非常復雜的,因此過去通常被忽略。
SSD提供了當用戶被分配角色時實施利益沖突策略的手段,而DSD允許用戶被分配一些各自獨立地被激活時不會產生利益沖突,然而同時被激活卻違反策略的角色。盡管這種職責分離也可以通過靜態的職責分離來實現,但是動態職責分離提供了更大的靈活性。
推薦文章: