什么是权限RBAC权限模型?
RBAC就是一个权限控制模型,这个模型是经过时间沉淀以后,通用、成熟且被大众所接受认可得到一个模型。
RBAC(Role-Based-Access Control)权限模型的概念,即:基于角色的权限控制,通过角色关联用户,角色关联权限的方式间接赋予用户权限。
中间加一层角色提高了安全性和效率。
下图就是RABV权限模型:
此图中包含两种关系:
1):用户和角色是多对一的关系,即:一个用户只充当一种角色,一种角色可以有多个用户担当
2):用户和角色是多对多的关系,即:一个用户可以同时充当多种角色,一种角色可以有多个用户担当
如果系统功能比较单一,使用人员比较少,岗位权限清晰并且不会出现兼职岗位的情况,此情景下可以考虑使用多对一的权限体系。其余情况下尽量使用多对多的权限体系,保证系统的可扩展性。
RBAC权限模型的类型
上面的是RBAC0模型,也是基础,最简单的相当于底层逻辑,在这个基础上,又升级出RBAC1、RBAC2、RBAC3模型。
1.RBAC1模型
相对于RBAC0模型,C1增加了子角色,引入继承的概念,即子角色可以继承父角色的所有权限。
使用场景:如某个业务部门,有经理、主管、专员。主管的权限不能大于经理,专员的权限不能大于经理,如果采用C0模型做权限系统,极有可能出现权限分配失误,最终出现主管拥有经理都没有的权限的情况
而使用C1模型可以很好的解决类似的问题,创建完经理的角色并配置好权限,由主管角色的权限区继承经理角色的权限,并且支持在经理权限上删减主管的权限。
RBAC2模型
基于RBAC0模型,增加了对角色的一些限制:角色互斥、基数约束、先决条件角色等。