权限管理系统设计——入门(一)
后续更新中…
概念
1、身份认证:用户是否是合法。
2、限制资源访问:根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源。
3、用途广:出现在任何后台管理系统中。
基本概念
权限管理主要最核心的功能是认证和授权。
- 认证功能即登录和拦截功能,登录成功登录态的设定,登录失败的处理方式例如IP锁定,失败超过次数锁定等方式。
- 授权功能即对认证通过的用户,进行角色和权限授予,同时开启资源保护,未具备访问该资源权限的用户将无法访问。
什么是资源
- 资源就是用户访问的功能和数据,是一个宽泛概念。
- 资源可以包括菜单、接口、页面、数据等。
权限设计
权限模型分类
RBAC 权限模型
全称为 Role-Based Access Control,基于角色的访问控制。
- 对用户、角色、资源三者进行模型化,并建立关联关系。通过该关系,可以控制用户根据自己拥有的角色来访问允许访问的资源
ABAC 权限模型
全称为 Attribute-Based Access Control,基于属性的访问控制。ABAC 访问控制利用了一组称为 “属性 “的特征。
- 用户属性:包括如用户的姓名、角色、组织、ID 和安全许可等内容。
- 环境属性:包括如访问时间、数据的位置和当前组织的威胁等级。
- 资源属性:包括如创建日期、资源所有者、文件名和数据敏感性。
主要是根据业务需求定制不同的访问控制策略。比如“指定财务部门的人员可以在工作日上班时间并且在办公网络访问系统”这一场景,校验的逻辑为:
- 若属于财务部门的人员使用办公网络但不在办公时间访问则增加进一步的鉴权验证。
- 若属于财务部门的人员不在办公时间访问且非使用办公网络则拒绝访问。
RBAC 和 ABAC 对比
RBAC 与 ABAC 之间的主要区别在于授予访问权限的方式。 RBAC 按照角色授予访问权限,ABAC 根据用户特征、对象特征、操作类型等属性确定访问权限。
RBAC 优缺点
优点
- RBAC 模型构建起来更加简单,对于中小型组织,维护角色和授权关系的工作量不大。
缺点
- 对于大型组织,基于 RBCA 的控制模型需要维护大量的角色和授权关系,且无法做到对资源细粒度地授权。
ABAC 优缺点
优点
- 对于大型组织,相比 RBAC 而言,ABAC 更加灵活。
- 新增资源时,ABAC 仅需要维护较少的资源,ABAC 可扩展性更强、更方便。
- ABAC 有更加细粒度控制和根据上下文动态执行,RBAC 只能基于静态的参数进行判断。
缺点
RBAC权限模型
基本的设计模型
用户、角色、资源关联,这种模型是最基本的模型,复杂的模型都是由此拓展而来。

带分组的设计模型
如果角色和资源过多,分配权限比较麻烦,可以将用户分组、角色分组,与权限进行关联。当分配的时候可以将用户、角色、组、权限进行关联。

带组织架构的设计模型
基于组织架构绑定用户与角色的关系,角色与资源的关系,从而实现用户对资源访问的限制。
- 围绕组织架构,创建角色与用户,并形成用户与角色的绑定关系。
- 定义资源的管理层级,以及相应的操作类型,并形成页面到数据的链路。
- 基于角色主体,绑定对应资源和可操作类型,构建角色的权限集合。
参考
- http://www.hyhblog.cn/2018/04/25/user_login_auth_terms/
- https://my.oschina.net/bochs/blog/2248956
- https://juejin.cn/post/6844904096613285901#heading-16
- https://juejin.cn/post/7038380197426511908
- https://juejin.cn/post/6850037267554287629
- http://www.hyhblog.cn/2018/04/25/user_login_auth_terms/
- https://juejin.cn/post/6844903841431814158
- https://juejin.cn/post/6844903810603696141