这是一篇实战经验+概念解释文章。
想法来自近期在进行一个后台产品中,涉及到权限管理的设计,需要设计多种角色、并需要对应不同级别,需要区分不同权限的设计,说半天,上个图!
大概意思就是在D的角色下会有A、B、C这3人,而C又包含角色A、B的权限,角色A、B下方又有A-1、B-1等人;而D拥有最大权限,对应下分不同角色配对不同权限,而下一级又是不同权限!于是一层层套娃开始了!
做过电商行业的应该都知道,在后台会有客服、采购、财务等不同的角色,对应展示不同权限、界面数据。
这就要求设计师在设计时,就要从业务角度上,去对每个角色进行代入、根据实际业务理解后进行设计。
通常在设计B端后台权限模块时,需要先厘清角色与权限之前的关系,比如对子账号进行角色管理、权限分配等场景进行分类,如果简单一点的模式设计就很好处理,用权限勾选即可,但复杂一点的就需要涉及到多角色、多权限相互匹配的场景中,简单权限勾选就不足以支撑起权限模块了。
因此,在B端后台界面设计中,就需要引入一个概念:RBAC权限模型,现今权限设置几乎都是在RBAC模型上进行扩展的,本文下面将会对RBAC权限模型进行简略介绍。
一、RBAC模型定义
那说起RBAC权限模型,那我们来看下它在“维基”上的定义:
可以看到:RBAC是Role-Based Access Control的英文缩写,意思就是以【角色】为基础进行【权限】的【控制】。
换句话说:就是划定【权限】范围,赋予【角色】,再将【角色】赋予【账户】,这样【账户】拥有了权限,权限边界会很清晰,而去命定账户权限时只要去管理角色即可。
还是不懂?看图👇
例:RBAC简单示例
再用王者荣耀来比喻:
- 角色 == 英雄人物
- 权限 == 英雄技能
- 账户 == QQ/微信账号
使用【英雄人物】的就是你的账户,账户可以拥有多个英雄人物,管理权限的时候只要去管理【英雄人物】就行了。
二、RBAC模型细项说明
在RBAC模型中,有三个比较重要的概念:
下面对每个概念进行说明。
1. 权限说明
在计算机系统中,权限是指某个特定的用户具有特定的系统资源的使用权力,在后台管理中,系统资源指的是系统模块、页面、操作功能等。
大致可以将权限分为:功能操作权限、数据权限。
- 功能操作权限:在系统的操作、交互都是功能权限,操作都需要页面承载,所以包浏览页面权限、操作按钮权限都归属功能操作权限
- 数据权限:对数据进行增删改查
例:权限的构成图
2. 角色说明
角色是一定数量的权限的集合以及载体,很好理解,就是界定好哪几个角色拥有哪些权限。
比如角色一拥有:查看订单、修改订单价格、确认发货、订单评价 等权限,那角色一其实定义的是客服角色,那就可以给角色一命名为【客服】。
如下图所示:
例:新增角色操作界面
3. 账户说明
账户是对角色的囊括,也是角色集合的载体,即界定账户拥有哪些角色,对应拥有哪些角色的权限。
如下图所示:
例:账户对应的角色
4. 升级模型:RBAC1模式
上述所有模型是基础模型,实际业务中仅有基础模式是不够使用的。
比如一个系统中有了角色:管理员、客服、采购、财务等。
但财务下会有多种角色,例如:总账会计、明细帐会计、出纳等角色,故此对RBAC模型进行升级,会把一开始没有上下级关系的称为RBAC0模型,在RBAC0基础上引入角色间的上下级关系,升级后称为为RBAC1模型。
如下图所示:
例:RBAC1模型
在RBAC1之后还有RBAC2、RBAC3等关系,较为复杂,不在本次讨论范围之内。
三、设计中引用RBAC模型的好处
RBAC中具有角色的概念,设想一下,如果系统中没有角色,那么需要设置每个账户的权限,如果较复杂系统中,涉及到权限都非常多,每个账户都单独设置一遍,无疑是一件繁琐且工作量巨大的任务,可以说引用RBAC模型可以大大提高生产力。
在还未引入模型时,需要对每个账户都进行权限限定,参考下图,线条代表了需要操作的次数。
如果引入角色后,只需要给将角色给不同账户,给角色赋予权限,这样账户拥有的角色就直接拥有了该角色下的所有权限。
四、实战:如何设计RBAC模型
1. 梳理权限
可以对页面当中拥有哪些可操作项收集,通常权限都是由系统、页面操作限定的,可以梳理一下产品整体框架,对所有权限进行分类。
比如千牛商家后台,在【店铺】一级页面下,拥有【店铺管理】【商户中心】【神笔】【营销管理】四大权限,在这四大权限之下又拥有次级页面,在次级页面下拥有各个模块的操作,这样从功能操作+数据上实现了集合。
如下图:
例:千牛商家自定义权限
2. 命定角色
从拥有【店铺】整体权限来分析,其实更多是关于到整体运营层属性,所以在归属【店铺】权限,可以对应到【运营组长】【运营专员】等角色。
如下图:
例:千牛商家命定角色
3. 账号限定
其实对账号的限定很简单,重点是对账号拥有哪些角色范围圈定,圈定角色之后就隶属于哪个部门使用账号的问题了
如下图:
例:千牛商家命定账号
大功告成!完成这3步就完成整体设定啦!
总结一下
B端后台权限设计引入RBAC权限模型设计,是基于角色进行的权限访问控制,再进行对角色进行账号匹配。在进行产品设计时,尽量使用权限、账号分开模式去设计,而使用角色——权限匹配模式来做解耦。
后台类或者TO B内部产品,不会像C端用户一样权限简单,也不会追求极致用户体验,而是追求明确、结构清晰,不要在交互操作或文字上,让使用者有疑惑,尤其针对权限一块,或涉及业务功能设计上,尽量减少歧义,避免造成返工、错误理解等情况。
另附带RBAC模型升级概念解释,下期见!
本文由 @无尘弟弟 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议。
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
来源:https://www.woshipm.com/pd/5578448.html
本站部分图文来源于网络,如有侵权请联系删除。