7.3 層次RBAC
7.3.1 通用角色層次
7.3.1.1 通用角色層次管理函數
7.3.1.2 通用角色層次支持系統函數
本節擴展了7.2.2條的函數CreateSession和AddActiveRole。7.2.2條的其余函數都保持有效。
a) CreateSession
該函數為指定用戶創建一個新會話,該會話以指定的角色集作為其激活角色集。該函數可用當且僅當:
1) 該用戶是USERS數據集的成員;
2) 指定的激活角色集是該用戶授權角色集的子集。注意,即使一個角色在一個會話中是激活的,它的祖先和后代在該會話中未必激活。在實際的RBAC實現中,會話的激活角色集可以實現為與這些角色對應的組。
下面的模式形式化地描述了該函數。參數Session實際上是由底層系統產生的。
a) AddActiveRole
該函數給指定的用戶會話增加一個激活角色。該函數可用當且僅當:
1) 該用戶是USERS數據集的成員;
2) 該角色ROLES數據集的成員;
3) 該會話標識符是SESSIONS數據集的成員;
4) 該角色是該用戶的授權角色;
5) 該用戶擁有該會話。
下面的模式形式化地描述了該函數:
7.3.1.3 通用角色層次查看函數
7.2.3條所有的函數都可用。本節定義了如下查看函數:
a) AuthorizedUsers
該函數返回擁有給定角色的授權用戶。該函數可用當且僅當給定角色是ROLES的成員。下面的模式形式化地描述了該函數:
b) AuthorizedRoles
該函數返回給定用戶的授權角色。該函數可用當且僅當該用戶是USERS數據集的成員。下面的模式形式化地描述了該函數:
7.3.1.4 通用角色層次高級查看函數
本節擴展了7.2.4條的RolePermissions和UserPermissions函數。該條其余函數都保持有效。
a) RolePermissions
該函數返回給定角色的所有權限。該函數可用當且僅當該角色是ROLES數據集的成員。下面模式形式化地描述了該函數:
b) UserPermissions
該函數返回給定用戶所有授權角色的權限。該函數可用當且僅當該用戶是USERS數據集的成員。下面的模式形式化地描述了該函數:
c) RoleOperationsOnObject
該函數返回角色針對給定對象可以執行的操作集,這些操作有可能是該角色直接分配的和繼承來的。該函數可用當且僅當該角色是ROLES數據集的成員,該對象是OBJS的成員。下面的模式形式化地描述了該函數:
d) UserOperationsOnObject
該函數返回給定用戶針對給定對象可以執行的所有操作。該函數可用當且僅當用戶是USERS數據集的成員,該對象是OBJS數據集的成員。下面模式形式化地描述了該函數:
7.3.2 受限角色層次
7.3.2.1 受限角色層次管理函數
本節重新定義了7.3.1.1條的AddInheritance函數,該條中所有其它函數保持有效。AddInheritance定義如下:
7.3.2.2 受限角色層次支持系統函數
7.3.1.2條定義的函數都有效。
7.3.2.3 受限角色層次查看函數
7.3.1.3條定義的函數都有效。
7.3.2.4 受限角色層次高級查看函數
7.3.1.4條定義的函數都有效。