RBAC(Role-Based Access Control)基于用户在系统中设定的角色而不是用户的身份。一般来说,RBAC模型定义角色为组织中的一项工作职责,RBAC系统给角色而不是给单独的用户分配访问权。用户根据他们的职责被静态地或动态地分配给不同的角色。
用户与角色之间以及角色与许可之间的多对多关系提供了常规DAC方案不能被实现的分配的灵活性和多粒度性。
基本模型 - RBAC:
- 用户 - user:访问该计算机系统的个体。每个个体都有一个与之关联的用户ID。
- 角色 - role:组织内部控制该计算机的命名工作职能。一般来说,与每个角色关联的是对该角色及担任该角色的任何用户所被授予的权限与职责的描述。
- 许可:对一个或多个客体的特定访问模式的认可。与访问权、特权和授权是同义词。
- 会话:用户与其被分配的角色集的激活子集的映射。
角色层次 - RBAC:
角色层次提供了一种反映组织中角色层次结构的方式。
约束 - RBAC:
约束提供了一种令RBAC适应组织中的管理和安全策略细节的手段。约束是在角色之间定义的关系或与角色相关的条件。
互斥角色 - mutually exclusive role:
指一个用户只能被分配给集合中的一个角色。这个限制可以是静态也可以是动态的。互斥角色具有下列性质:
- 一个用户只能被分配给集合中的一个角色。
- 任何许可只能被授予给集合中的一个角色。
基数 - cardinality:
指设置关于角色的最大数值。这种类型的一个约束是设置可以分配给一个指定角色的最大用户数。
先决条件 - prerequisite:
系统可以指定先决条件。先决条件可以用来构建最小特权概念的实现。在一个层次中,可以要求用户只能被分配一个特定角色。
模型 | 层次 | 约束 |
RBAC | 否 | 否 |
RBAC1 | 是 | 否 |
RBAC2 | 否 | 是 |
RBAC3 | 是 | 是 |