0%

RBAC

文章字数:496,阅读全文大约需要1分钟

安全原则

  1. 最小权限原则:将角色配置成其完成任务所需的最小权限集合
  2. 责任分离原则:可以通过相互独立互斥的角色共同完成敏感任务,例如记账员和财务管理员共同完成过账操作
  3. 数据抽象原则:通过权限的抽象来体现,例如借款,存款,等,而不是使用读、写、执行权限

组成

  1. User用户:每个用户有唯一的UUID标识,并被授予不同角色
  2. Role角色:每个角色有不同的权限
  3. Permission权限:访问权限
  4. User-Role用户权限映射
  5. Role-Permission角色-权限映射

RBAC0

1
2
3
4
5
6
7
用户 <--- 用户角色分配 ----> 角色 <--- 角色权限分配 ---> (操作 <--- 权限 ---> 控制对象)
^
\ /
和用户联系的会话 激活的角色
\ /
\ /
用户会话集合
  1. 用户和角色为多对多关系
  2. 每个用户至少有一个角色
  • 优点是结构简单,灵活授权

RBAC1

  • RBAC0基本一致,角色改为树形结构,可以继承

RBAC2

  • 增加一下约束
  1. 互斥角色:同一用户智能分配到一组互斥角色集合至多一个角色。对于某一个用户,某一次活动中只能有一个角色。
  2. 基数约束:角色分配数量受限、用户拥有角色数目受限、角色访问权限数目受限等
  3. 先决条件角色:拥有某一基础角色权限后,才能获取更高级别的权限
  4. 运行互斥:允许用户获取两个角色,但运行中不能两个角色同时激活