文章字数:496,阅读全文大约需要1分钟
安全原则
- 最小权限原则:将角色配置成其完成任务所需的最小权限集合
- 责任分离原则:可以通过相互独立互斥的角色共同完成敏感任务,例如记账员和财务管理员共同完成过账操作
- 数据抽象原则:通过权限的抽象来体现,例如借款,存款,等,而不是使用读、写、执行权限
组成
User
用户:每个用户有唯一的UUID
标识,并被授予不同角色Role
角色:每个角色有不同的权限Permission
权限:访问权限User-Role
用户权限映射Role-Permission
角色-权限映射
RBAC0
1 | 用户 <--- 用户角色分配 ----> 角色 <--- 角色权限分配 ---> (操作 <--- 权限 ---> 控制对象) |
- 用户和角色为多对多关系
- 每个用户至少有一个角色
- 优点是结构简单,灵活授权
RBAC1
- 和
RBAC0
基本一致,角色改为树形结构,可以继承
RBAC2
- 增加一下约束
- 互斥角色:同一用户智能分配到一组互斥角色集合至多一个角色。对于某一个用户,某一次活动中只能有一个角色。
- 基数约束:角色分配数量受限、用户拥有角色数目受限、角色访问权限数目受限等
- 先决条件角色:拥有某一基础角色权限后,才能获取更高级别的权限
- 运行互斥:允许用户获取两个角色,但运行中不能两个角色同时激活