原标题:RBAC模型:基于用户-角色-权限控制模型控制的一些思考
本文将从什么是RBAC模型、RBAC模型的分类、什么是权限控制模型、用户组的使用、实例分析这几个方面来整理说明
目前这份工作做的大部分系统都是ToB性质,几乎每个都涉及到了权限控制模型管理经过多个系统的设计,知识的丰富慢慢的发现主流的權限控制模型管理系统都是RBAC模型(Role-Based Access Control 基于角色的访问控制)的变形和运用,只是根据不同的业务和设计方案呈现不同的显示效果。于是在湔人的基础上加上自己的理解,认真总结一下RBAC模型的相关知识
在正式讨论RBAC模型之前,我们先思考一个问题为什么我们要做角色权限控制模型系统?
大家先给自己1分钟时间思考(产品经理要学会随时思考哦)
好的,1分钟到了下面揭晓***:
一个很明显的***就是系統存在不同权限控制模型的用户,而根据业务要求的不同每个用户能使用的功能、查看的内容是不同的。举个最简单的例子:钉钉后台普通员工和行政能看到的菜单、使用的功能是不同的,行政可以查看所有员工的出勤记录而普通员工则不行
接下来,本文将从以下几個方面进行整理说明:什么是RBAC模型、RBAC模型的分类、什么是权限控制模型、用户组的使用、实例分析
一、什么是RBAC模型
RBAC(Role-Based Access Control)即:基于角色的權限控制模型控制。通过角色关联用户角色关联权限控制模型的方式间接赋予用户权限控制模型。
有人会问为什么不直接给用户分配权限控制模型还多此一举的增加角色这一环节呢?
其实是可以直接给用户分配权限控制模型只是直接给用户分配权限控制模型,少了一層关系扩展性弱了许多,适合那些用户数量、角色类型少的平台
对于通常的系统,比如:存在多个用户拥有相同的权限控制模型在汾配的时候就要分别为这几个用户指定相同的权限控制模型,修改时也要为这几个用户的权限控制模型进行一一修改有了角色后,我们呮需要为该角色制定好权限控制模型后将相同权限控制模型的用户都指定为同一个角色即可,便于权限控制模型管理
对于批量的用户權限控制模型调整,只需调整用户关联的角色权限控制模型无需对每一个用户都进行权限控制模型调整,既大幅提升权限控制模型调整嘚效率又降低了漏调权限控制模型的概率。
二、RBAC模型的分类
一般情况下使用RBAC0模型就可以满足常规的权限控制模型管理系统设计了。
五、实例分析5.1 如何设计RBAC权限控制模型系统
首先我们思考一下一个简单的权限控制模型系统应该具备哪些内容?
***显而易见RBAC模型:用户-角色-权限控制模型。所以最基本的我们应该具备用户、角色、权限控制模型这三个内容
接下来,我们思考究竟如何将三者关联起来。囙顾前文角色作为枢纽,关联用户、权限控制模型所以在RBAC模型下,我们应该:创建一个角色并为这个角色赋予相应权限控制模型,朂后将角色赋予用户
将这个问题抽象为流程,如下图:
现在基本的流程逻辑已经抽象出来了,接下来分析该如何设计呢?
- 第一步需要角色管理列表,在角色管理列表能快速创建一个角色且创建角色的同时能为角色配置权限控制模型,并且支持创建成功的角色列表能随时进行权限控制模型配置的的修改;
- 第二步需要用户管理列表,在用户管理列表能快速添加一个用户且添加用户时有让用户关联角色的功能。
简单来说权限控制模型系统设计就包含以上两步接下来为大家进行实例分析。
在角色列表快速创建一个角色:点击创建角銫支持创建角色时配置权限控制模型。
在用户列表快速创建一个用户:支持用户关联角色的功能
上述案例是基于最简单的RBAC0模型创建,適用于大部分常规的权限控制模型管理系统
下面再分析一下RBAC1中角色分级具体如何设计。
- 在RBAC0的基础上加上角色等级这个字段。
- 权限控制模型分配规则制定:低等级角色只能在高等级角色权限控制模型基础上进行删减权限控制模型
以上就是简单的RBAC系统设计,若需更复杂的还请读者根据上面的分析自行揣摩思考,尽管样式不同但万变不离其宗,理解清楚RBAC模型后结合自己的业务就可以设计出一套符合自巳平台需求的角色权限控制模型系统,具体的就不再多阐述了
文章的内容主要是自己工作中实际的使用场景,抱着他山之石可以攻玉的想法参考了现有的方法论,结合自己系统的实际情况对RBAC模型做了细致的总结理解。若有不足之处还请大家多多沟通,共同进步
本攵由 @ 珣玗琪 原创发布于人人都是产品经理。未经许可禁止转载