RBAC:Role-Based Access Control
RBAC,顾名思义将我们系统中的用户和一个或几个角色进行绑定,然后基于角色再进行相应的授权。
角色的概念并不指代单纯的指定职业或某个名称,角色由很多维度切分。
如以部门为角色,不同部分可访问的数据范围不同,或按照工作职责,如会计和出纳等不同的角色做不同的访问。
定义了角色后,您可以分配权限,例如:
- Access(访问):当前角色可以看到什么
- Operations(操作):当前角色是否可以进行增加、删除、修改等操作
- Sessions(会话):当前角色可以在系统中停留多长时间?什么时候可以登录?
![](https://ichiblog.cn/wp-content/uploads/2024/10/图片-11-1024x494.png)
上图就是就是一个角色授权的过程,也是一个经典的RBAC的设计
美国国家标准与技术研究会将RBAC定义了四级
通常意义上的RBAC其实是最简单的
![](https://ichiblog.cn/wp-content/uploads/2024/10/图片-12-1024x576.png)
Level 0:扁平的,这是最简单的RBAC形式,员工使用角色来获得权限,也是我们使用得最多的
![](https://ichiblog.cn/wp-content/uploads/2024/10/未命名文件-4.png)
Level 1:分层的,这建立在扁平 RBAC规则之上,并增加了角色层次结构。
![](https://ichiblog.cn/wp-content/uploads/2024/10/未命名文件-5-1024x650.png)
Level2:受约束的,这建立在分层RBAC之上,并增加了职责分离
![](https://ichiblog.cn/wp-content/uploads/2024/10/未命名文件-6.png)
Level3:对称的,这建立在受约束的RBAC模型之上,并添加了权限审查
![](https://ichiblog.cn/wp-content/uploads/2024/10/未命名文件-7.png)
经典RBAC五表设计:并不是五张表,而是五类表
![](https://ichiblog.cn/wp-content/uploads/2024/10/未命名文件-8.png)