6.2 核心RBAC
核心RBAC的元素集和關系在圖1中進行了定義。核心RBAC包含了5個基本的數據元素:用戶集(USERS)﹑角色集(ROLES)﹑對象集(OBJS)﹑操作集(OPS)﹑權限集(PRMS)。權限被分配給角色,角色被分配給用戶,這是RBAC的基本思想。角色命名了用戶和權限之間的多對多的關系。此外,核心RBAC中還包含了用戶會話集,會話是從用戶到該用戶的角色集的某個激活角色子集的映射。
角色是組織上下文中的一個工作職能,被授予了角色的用戶將具有相應的權威和責任。權限是對某個或某些受RBAC保護的對象執行操作的許可。操作是一個程序的可執行映像,被調用時能為用戶執行某些功能。操作和對象的類型依賴于具體系統,例如在一個文件系統中,操作可以包含讀﹑寫﹑執行;在數據庫管理系統中,操作包含select、insert﹑delete﹑update等。
訪問控制機制的核心功能是保護系統資源。與以前的訪問控制模型一致,RBAC模型中的對象是包含或接收信息的實體。對一個實現RBAC的系統,對象可以代表信息容器(如操作系統中的文件和目錄或數據庫中的表﹑視圖﹑字段),或者諸如打印機﹑磁盤空間﹑CPU周期等可耗盡的系統資源。RBAC覆蓋的對象包括所有在分配給角色的權限中出現的對象。
RBAC中一個很重要的概念是角色的相關分配關系。圖1中給出了用戶分配關系(UA)和權限分配關系(PA)。圖中的箭頭表示關系是多對多的(例如,一個用戶可以被分配給多個角色并且一個角色可以被分配給多個用戶)。這種安排帶來了給角色分配權限和給角色分配用戶時的靈活性和細粒度。如果沒有這些,就有可能造成給用戶分配過多的對資源的訪問權限;能夠更靈活地控制對資源的訪問權限也有助于最小特權原則的實施。
用戶在建立一個會話的時候可以激活他/她所被分配的角色的某個子集。一個會話只能與一個用戶關聯,一個用戶可能同時擁有多個會話。函數session_roles返回一個會話激活的角色,函數session_user給出會話的用戶。在用戶的會話中保持激活狀態的角色的權限構成了用戶的可用權限。以下為核心RBAC規范: