目录
- RBAC简介
- RBAC0
- RBAC1
- RBAC2
- RBAC3
RBAC简介
RBAC是Role Based Access Control的英文缩写,意思是基于角色访问控制。
RBAC实际上就是针对产品去发掘需求时所用到的Who(角色)、What(拥有什么资源)、How(有哪些操作)的方式。
在RBAC模型中,who、what、how构成了访问权限三元组,也就是“Who对What进行How的操作。
RBAC主要包含四个子模型:RBAC0、RBAC1、RBAC2和RBAC3,整体又叫做RBAC96。
RBAC0
RBAC0是RBAC96模型家族中的基础,也称作核心部分,RBAC1、RBAC2和RBAC3是在此基础之上发展演变而来。
可以理解它是由四个部分组成:用户、角色、会话、权限
这就导致了这种分配关系是多对多:用户对应多个角色、角色对应多个权限。
用户与会话一对一,会话与角色一对多
RBAC1
RBAC1是在RBAC0模型基础之上增加了角色分层概念和角色之间的继承关系。
角色分层指的是同一个角色可以用不同等级,不同等级又对应着不同的权限;
角色继承关系指的是子角色可以对父角色的权限进行继承,但是子角色的权限一定小于父角色。
RBAC2
RBAC2是在RBAC0模型基础之上增加了角色约束,主要约束哪些操作是可进行,哪些是不可进行。
主要约束有以下三个方面:
- 角色互斥约束:是指在系统运行中,只可以同时激活运行时互斥角色集合中的一个角色;
- 角色基数约束:是限制某一个用户最多被分配或者激活的角色数目,或者限制某一个角色最多被赋予的权限数目;
- 先决条件角色约束:是指某些用户只有在己经拥有特定角色的前提下,才能被分配到某种角色,或者某种角色只有在已经被分配到特定权限的前提下,才能被赋予某些权限
RBAC3
RBAC3则是集聚了RBAC1和RBAC2的全部特点,同时将角色继承关系和约束条件关系两者都融入到模型中。