RBAC应用最为广泛的权限管理模型,核心的三要素是:账户、角色、权限,但并不仅仅局限于这三个核心要素,基于企业规模、用户规模、运维复杂度,RBCA其实是有很多的变种。从理论角度,有所谓的RBAC0、RBAC1、RBAC2、RBAC3等变种,这里就不讲这些理论,大家一搜就能明白,我按照演化的思路去看下RBAC的变化。
1、基本的RBAC模型
RBAC的核心就是在用户和权限中间增加角色这一层级,提升了权限体系的扩展性。取消了用户和权限的直接关联,改为通过用户关联角色、角色关联权限的方法来间接地赋予用户权限,从而达到用户和权限解耦的目的。
如果没有角色的概念,系统中每加入一个用户,就需要为这个用户配置一遍权限,下图是wiki中直接为用户权限管理方式,可以看出管理成本巨大。
而引入“角色”概念后,如下图即是RBAC模型中最基本的模型:用户与角色可为多对一或多对多的关系,当一个用户的角色为多对多时,当前用户的权限是多个角色的并集。
此时只需要为角色赋予权限&