目录
RBAC——基于角色的访问控制(Role-Based Access Control)
RBAC——基于角色的访问控制(Role-Based Access Control)
具体对象:
-
用户:具体的用户——使用系统的人;
-
权限:数据权限、功能权限(页面权限+操作权限);
-
角色:每一种角色对应一组相应的权限,一旦用户被分配适当的角色,该用户就拥有此角色的所有操作权限——权限的的集合。
结论:
- 先定义角色
- 根据角色需要去定义权限集合大小
- 将角色和权限集合映射
- 赋予注册的用户相应的角色身份
RBAC基本思想:
对系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集合。每一种角色对应一组相应的权限。一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。
通过角色关联用户,角色——>关联权限——>间接关联用户
好处:
不必在每次创建用户时都进行分配权限的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限变更要少得多,这样将简化用户的权限管理,减少系统的开销。
RBAC0举例:
用户:使用系统的人;
角色:权限的的集合;
权限:数据权限、功能权限(页面权限+操作权限)。
把权限赋予角色,再把用户关联角色来继承角色所对应的权限。用户和角色,角色和权限都是多对多的关系。用户拥有的权限等于他所有的角色持有权限的并集;
用户管理:
-
第一需要关联角色。
用户权限可以单独修改,修改用户权限不影响角色权限。
修改角色权限会影响关联的用户权限。
权限设置:功能权限(页面权限+操作权限)+ 数据权限
1、功能权限(页面权限+操作权限):对后台数据可以进行增删改查;即我勾选某个操作权限的时候,对应的我也就享有这个页面权限。
功能权限是页面权限+操作权限的集合。
-
页面权限是指你的系统分为哪些个页面,比如说销售单查询页、商品库存页等等。
-
操作权限是指页面上能看到的:查询、新增、删除、导出等等操作。
-
页面权限:所有系统都是由一个个的页面组成,用户是否能看到这个页面的菜单、是否能进入这个页面就称为页面权限。
-
操作权限:用户凡是在操作系统中在任何页面做的任何动作,都是操作权限,如增、删、改、查、导出、审核等等。
2、数据权限:是否有权限查看某些数据;数据权限则指的是我在这个页面里具体能看到哪些数据,是全部数据,本人数据,本人及下属的数据,部门数据,还是部门及及子部门数据(总共就这五种)。
数据权限一般通过数据权限树来控制。数据权限树在一定程度上等于公司的组织结构,当然我们可以根据公司的特性去修改,并不一定要严格按照公司的部门结构来建立,只要能让此结构更为方便的为公司服务即可。
-
操作权限的配置是多选的;
-
数据权限的配置是单选的;
-
全公司默认一级部门,不可删除和更改,之后可以往下添加子部门——提高扩展性。如果出现部门合并,取消部门要注意数据的转移。
-
选择部门和直属上级是为了绑定数据权限。
角色管理:
主要包括三个模块:
-
基础信息;必填
-
功能权限;必填
-
数据权限;可到用户账号上进行配置。
互斥角色: 同一用户只能分配到一组互斥角色集合中至多一个角色,支持责任分离的原则。互斥角色是指各自权限互相制约的两个角色。比如财务部有会计和审核员两个角色,他们是互斥角色,那么用户不能同时拥有这两个角色,体现了职责分离原则。
基数约束: 一个角色被分配的用户数量受限;一个用户可拥有的角色数目受限;同样一个角色对应的访问权限数目也应受限,以控制高级权限在系统中的分配。
先决条件角色: 即用户想获得某上级角色,必须先获得其下一级的角色