1
基于角色的访问控制
(RBAC: Role-Based Access Control)
在DAC、MAC的基础上, RBAC出现了,RBAC是迄今为止最为普及的权限设计模型。RBAC模型中在用户、权限之间引入“角色(Role)”概念。
RBAC把权限管理过程抽象为“判断逻辑表达式的值是否为True”的求解过程,而逻辑表达式为:
Who是否可以对What进行How的访问操作(Operator)
将权限问题转换为Who、What、How的问题。并把who、what、how作为访问权限三元组。
-
Who:权限的拥用者或主体(如Principal、User、Group、Role、Actor等等)
-
What:权限针对的对象或资源(Resource、Class)。
-
How:具体的权限(Privilege,正向授权与负向授权)。
-
Operator:操作。表明对What的How操作。也就是Privilege+Resource
-
Role:角色,一定数量的权限的集合。权限分配的单位与载体,目的是隔离User与Privilege的逻辑关系.
-
Group:用户组,权限分配的单位与载体。权限不考虑分配给特定的用户而给组。组可以包括组(以实现权限的继承),也可以包含用户,组内用户继承组的权限。User与Group是多对多的关系。Group可以层次化,以满足不同层级权限控制的要求。
RBAC的关注点在于Role和User,Permission的关系。称为User assignment(UA)和Permission assignment(PA).关系的左右两边都是Many-to-Many关系。就是user可以有多个role,role可以包括多个user。
RBAC96提供了四个概念模型:RBAC0~RBAC3
1、基本模型-RBAC0:定义了支持RBAC模式的任何产品的最低需