最全RBAC权限体系设计
2021-09-06 18:13:46 14 举报
AI智能生成
基于角色权限控制
作者其他创作
大纲/内容
基于角色的权限控制(RBAC)
1. 什么是RBAC 模型
基于角色的权限控制。通过角色关联用户,角色关联权限的方式间接赋予用户权限
2. RBAC 模型分类
RBAC0、RBAC1、RBAC2、RBAC3
RBAC0是基础,也是最简单,最常规的,相当于底层逻辑,RBAC1、RBAC2、RBAC3都是以RBAC0为基础的升级
RBAC0 模型
包含2种
1. 用户和角色一对多关系,即:一个用户只有一种角色,一种角色可有多个用户
使用范围:系统功能较为简单,岗位权限清晰不兼岗
2. 用户和角色多对多关系,即:一个用户可有多种角色,一种角色可有多个用户
使用范围:系统可扩展性,存在用户兼岗
RBAC1 模型
增加子角色,引入继承概念。即子角色可继承父角色的所有权限并可删减继承的权限
使用范围:某个业务部门,经理、主管、专员,主管的权限不能大于经理,专员的权限不能大于主管。
如果采用RBAC0 模型做权限系统,极可能出现分配角色权限失误,最终出现主管拥有经理没有的权限的情况
如果采用RBAC0 模型做权限系统,极可能出现分配角色权限失误,最终出现主管拥有经理没有的权限的情况
RBAC2 模型
增加角色的限制:角色互斥、基数约束、先决条件角色、运行时互斥
1. 角色互斥:互斥角色是指权限互相制约的两个角色
例如:财务系统中一个用户不能同时被指派给会计角色和审计员角色。
2. 基数约束:一个角色被分配的用户数量受限,它指的是有多少用户能拥有这个角色
例如:一个角色专门为公司CEO创建的,那这个角色的数量是有限的。
3. 先决条件角色:指要想获得较高的权限,要首先拥有低一级的权限
例如:先有副总经理权限,才能有总经理权限。
4. 运行时互斥
例如:允许一个用户具有两个角色的成员资格,但在运行中不可同时激活使用这两个角色
RBAC3 模型
统一模型,它包含了RBAC1和RBAC2,利用传递性,也把RBAC0包括在内,综合了RBAC0、RBAC1和RBAC2的所有特点
3. 什么是权限
权限是资源整合,包括模块、菜单、页面、字段、操作功能(增删改查)等
权限配置形式:页面权限、操作权限、数据权限
1. 页面权限:系统都是由一个个的页面组成,页面再组成模块,用户是否能看到这个页面的菜单、是否能进入这个页面就称为页面权限
2. 操作(功能)权限:用户是在操作系统中的任何动作、交互都是操作权限,如增删改查等
3. 数据权限:按角色层级查看数据;例如:销售专员的日常工作数据可被直属上级及直属上级领导查看。
实现方式1:按RBAC1的角色分级实现。
实现方式2:在用户-角色-权限基础上,增加用户与组织(部门)的关联,用组织决定用户的数据权限
如何进行组织层级划分
1. 组织层级划分结构
2. 数据可视权限规则制定:上级组织只能看到下级组织员工负责的数据,而不能看到其他平级组织及其下级组织的员工数据
4. 用户组
当平台用户基数增大,角色类型增多时,直接给用户配角色,工作量就很大,所以引入用户组,将相同属性的用户归类
可将用户组看作部门,给部门赋予角色权限,整个部门所有用户都有了部门权限,同时也可给单独用户赋予角色,不仅拥有用户组权限,还有特定角色权限
部门(用户组)下,还可加入科室、岗位等层级,为用户组内部成员的权限进行等级上的区分
RBAC权限体系分类(16种)
部门组织
用户组
用户
角色组
角色
权限
页面权限/操作权限/数据权限
角色等级
权限
页面权限/操作权限/数据权限
角色
权限
页面权限/操作权限/数据权限
角色等级
权限
页面权限/操作权限/数据权限
用户
角色组
角色
权限
页面权限/操作权限/数据权限
角色等级
权限
页面权限/操作权限/数据权限
角色
权限
页面权限/操作权限/数据权限
角色等级
权限
页面权限/操作权限/数据权限
用户组
用户
角色组
角色
权限
页面权限/操作权限/数据权限
角色等级
权限
页面权限/操作权限/数据权限
角色
权限
页面权限/操作权限/数据权限
角色等级
权限
页面权限/操作权限/数据权限
用户
角色组
角色
权限
页面权限/操作权限/数据权限
角色等级
权限
页面权限/操作权限/数据权限
角色
权限
页面权限/操作权限/数据权限
角色等级
权限
页面权限/操作权限/数据权限
0 条评论
下一页