RBAC模型是权限设计中经典的模型。完整名称是Role-Based Access Control
,基于角色的访问控制。
参考资料:https://blog.csdn.net/yangwenxue_admin/article/details/73936803
。
权限Permission
,是系统中的某项功能,由一个或多个Operation
组成。比如用户管理
是一个权限,由增加用户
编辑用户
删除用户
三个操作组成。
角色Role
,是权限Permission
的集合。比如某个角色拥有用户管理
部门管理
文档管理
等权限。
用户User
,可以被赋予一个或多个角色,因此获得权限。用户不得直接赋予某项权限,必须通过角色。这简化了赋权的工作量,也降低了系统实现的复杂度。
这是最基本的权限设计,非常容易理解,也非常容易实现。Shiro
就是基于该模型实现的权限框架。Spring Security
也是,但相对较复杂。
有时为了更方便的进行赋权,会增加用户组
的概念,对用户进行分组,可以对用户组
赋予某项角色,这样用户的权限就是自身角色和所在用户组角色的权限之和。但这会增加系统设计的复杂度,一般情况下不用这样处理,只有在用户众多,赋权工作复杂繁重的情况下,才考虑增加这项设计。