咨询1
咨询2
交流群
电话

权限设计:RBAC模型

文档 > 后端知识 2019-04-08 11:51 阅读

RBAC模型是权限设计中经典的模型。完整名称是Role-Based Access Control,基于角色的访问控制。

参考资料:https://blog.csdn.net/yangwenxue_admin/article/details/73936803

权限Permission,是系统中的某项功能,由一个或多个Operation组成。比如用户管理是一个权限,由增加用户 编辑用户 删除用户三个操作组成。

角色Role,是权限Permission的集合。比如某个角色拥有用户管理 部门管理 文档管理等权限。

用户User,可以被赋予一个或多个角色,因此获得权限。用户不得直接赋予某项权限,必须通过角色。这简化了赋权的工作量,也降低了系统实现的复杂度。

这是最基本的权限设计,非常容易理解,也非常容易实现。Shiro就是基于该模型实现的权限框架。Spring Security也是,但相对较复杂。

有时为了更方便的进行赋权,会增加用户组的概念,对用户进行分组,可以对用户组赋予某项角色,这样用户的权限就是自身角色和所在用户组角色的权限之和。但这会增加系统设计的复杂度,一般情况下不用这样处理,只有在用户众多,赋权工作复杂繁重的情况下,才考虑增加这项设计。