10张图,系统扫盲权限管理功能设计思路

穆宁
+ 关注
2022-05-12 16:27
992次阅读

10张图,系统扫盲权限管理功能设计思路

大家好,见字如面,我是穆宁。

今天,应产品穆屋群友要求,给大家系统讲解下权限管理功能的设计思路。也是为没有做过权限管理功能模块或即将要做的同学,做一下系统扫盲。

还是那句话,做产品有个基本设定:

定位确定需求,需求确定功能。

所以权限管理功能从某种意义上必然是满足了某类需求的,我们就从需求说起,聊一聊管理后台。

权限管理模块的需求目标包括如下三点:

(1)对应用系统的所有资源进行权限控制,比如应用系统的功能菜单、各个界面的按钮控件等进行权限的操控;

(2)完善用户、角色、组织、资源、操作的管理功能,其中的组织管理模块只提供组织视图,不参与权限的控制管理。

(3)开发人员开发新的系统功能,通过资源和角色模块进行操作管理。使用系统管理员身份登陆,直接将访问路径作对角色资源授权给操作,实现资源访问控制管理。

所以从需求范围层面来看,权限可以分为三种:页面权限,操作权限,数据权限。

页面权限控制你可以看到哪个页面,看不到哪个页面,又称为菜单权限控制。很多系统都只做到了控制页面这一层级,它实现起来比较简单,并且与操作权限有一定的关联性,所以在此我们将它与操作权限归并。(页面权限可以理解为操作权限的最底层权限:浏览)

操作权限则控制你可以在页面上操作哪些按妞。当我们进入一个页面,我们的目的无非是在这个页面上进行增删改查,那在页面上对应的操作可能是:查询,删除,编辑,新增四个按钮)可能你在某个页面上,只能查询数据,而不能修改数据。

数据权限则是控制你可以查阅、管理、导出哪些数据,比如A部门的人只能看到或者修改A创建的数据,他看不到或者不能修改B部门的数据。

好,说完权限管理的范围,我们接下来考虑,怎么样对操作权限与数据权限进行管理。这里我们引入一个成熟概念,叫做RBAC模型。

RABC(Role-Based Access Control),基于角色得访问控制。通俗说,就是,权限不会直接分配到用户,而是分配到用户所拥有得角色。

这样的好处是什么?好处就是如果用户全体特别大,分配权限就能累死人,基于RBAC更适合企业应用得权限控制。

RBAC得四大模型RBAC根据这套模型功能的复杂程度不同,由简单到复杂又可以分为RBAC-0、RBAC-1、RBAC-2、RBAC-3四个层级。

10张图,系统扫盲权限管理功能设计思路

RBAC-0:

RBAC-0是最基础的,就是在用户与角色、角色与权限间建立关系,每种关系均为多对多。

10张图,系统扫盲权限管理功能设计思路

RBAC-1:

RBAC-1是在RBAC-0的基础上,增加了继承关系。就是一个角色只能有另一角色的部分权限,这个角色的权限大小受另一角色权限影响。简单说,角色2由角色1派生,那么角色2所有得权限必然小于角色1,角色1拥有权限1,2,而角色2只有拥有权限1。

10张图,系统扫盲权限管理功能设计思路

RBAC-2:

RBAC-2模型,其实就是角色冲突,一个简单例子,你不能即是运动员也是裁判员,这样关系就乱了。这里就是用户3,不能同时拥有角色2,3。

10张图,系统扫盲权限管理功能设计思路

RBAC-3:

RBAC-3是RBAC-1与RBAC-2的结合,可以理解为1+2。就是既有继承关系,又有限制条件,基础都一样。

好,说完RBAC模型,我们进入到下一环节。如何利用RBAC模型,对操作权限、数据权限进行管理呢?

(1)数据权限管理

数据权限是指用户是否能够看到某些数据。主要应用在数据有保密要求,或数据量大,需按用户或角色来进行区分时。例如:财务主管在后台可以看到公司所有人的工资流水,但普通员工只能看到自己的工资流水。

在这里,有的同学或许认为,既然我们的权限是跟角色关联,为什么“查看工资流水”这个权限精确到每个用户了呢?其实这就是RBAC-2的一种,权限与角色关联后增加了限制条件,不过这种限制条件无法在页面上灵活配置。数据权限的颗粒度由粗到细可以分为菜单级、栏目级、字段级,一般配置页面都可以灵活操作。

(2)操作权限管理

操作权限是指用户是否能够操作对应按钮。需要先有数据权限,才有操作权限,所以需要增加系统自动校验:选择了操作权限,就默认勾选了查看(数据)权限;取消了数据权限,就自动取消了操作权限;以上就是我们做单系统的权限设计分享的内容。在多系统的权限设计中,虽然理论基础一样,但因为涉及到多个系统,所以产生了很多其他问题,需要另外解决。

10张图,系统扫盲权限管理功能设计思路
所以在此我们可以做个总结,RBAC1其实是角色分级模型。角色间的继承关系可分为一般继承关系和受限继承关系。一般继承关系仅要求角色继承关系是一个绝对偏序关系,允许角色间的多继承。而受限继承关系则进一步要求角色继承关系是一个树结构。
RBAC2是角色限制模型。 规定了权限被赋予角色时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时所应遵循的强制性规则。责任分离包括静态责任分离和动态责任分离。约束与用户-角色-权限关系一起决定了RBAC2模型中用户的访问许可
RBAC3是统一模型。对角色+角色分级+角色限制进行三重限定,是一个类似于交集的概念。
好,接下来我们讨论如果实际设计一个系统的权限管理功能,我们需要设计哪些子功能?

权限管理

每个用户组的管理员都有添加用户,授予用户权限的能力。

权限的意思就是对某个资源的某个操作,现在规定:所谓资源,即系统的模块;所谓操作,包括:增加、删除、修改、查询等操作。

 权限管理系统的总体功能分为:授权与认证。授权,指将权限授予角色或用户。如果用户A拥有角色B、角色C,那么,缺省的情况下,用户A将拥有被分配给角色A和角色C的所有权限。如果用户拥有多个角色,那么用户的权限是这些角色权限的合集。

总体上,可分为模块管理、角色管理,用户组管理和用户管理模块:

模块管理:

因为模块是一个树状结构(本系统只支持两级模块的结构),我们可以点击其中一个模块以便打开其子模块来维护;

10张图,系统扫盲权限管理功能设计思路

角色管理:

可以添加角色信息、删除角色信息以及给角色授权。这个界面上,按照两级模块的形式列出系统所有模块,以及在这些模块上面的CRUD(添加、读取、更新、删除)权限;所谓“启用”,意思是本设置有效,否则设置无效。

10张图,系统扫盲权限管理功能设计思路

用户组管理:

与角色管理流程基本相似,只不过,用户组所具有的权限是其用户组下的用户基本的权限,而角色所具有的权限是其用户组下的用户附加的权限。

用户管理:

因为用户实际上就是系统人员的帐号,而且每个人只能拥有一个帐号,所以用户管理主界面,实际上就是系统所有人员的列表!

10张图,系统扫盲权限管理功能设计思路

【分配帐号】 - 给人员分配帐号,如果已经有帐号,则提示无法继续分配帐号,如果想修改帐号的话,需要先删除帐号,再重新分配

【删除帐号】- 提示是否删除,如果确定,再发出删除请求,在删除成功之后,刷新界面。

【分配角色】- 给用户分配角色,一个用户可以拥有多个角色;

好了,今天我们的系统扫盲就到这里,如果觉得对你有帮助,欢迎。相关权限管理系统案例及思维导图,可在公众号中按照如下操作领取。

我是穆宁,你的产品知识系统扫盲小帮手,快来关注我,我们明天见!

关注公众号后并回复 “0303” ,送你一套 权限管理系统案例及思维导图
 如果觉得内容不错,对你有帮助 
 欢迎点赞 | 在看 | 转发!
 产品知识系统扫盲系列 
10张图,系统扫盲管理后台产品设计思路
10分钟搞懂商业模式画布:两种表述,八个案例
30页PPT,系统扫盲产品经理岗位及面试技巧
 我的课:产品思维系统提升课程
给产品人强烈推荐一个私人成长暗器!
 我的群:产品职场进阶知识社群
准备了90天,终于与你相见

我的书:《产品思维模型-方法与实践》

《产品思维模型-方法与实战》正式上市——野路子产品经理逆袭指南

我是穆宁,让我做下自我介绍

工作多年后辞职,考了个北邮硕士

混过BAT做过PM,创过业,现央企搬砖

虎嗅,36kr,人人产品经理专栏作家

互联网撰稿人 | 音乐人 | 网球手

别被任何人定义,你我都是独一无二

10张图,系统扫盲权限管理功能设计思路

本文来自微信公众号 “产品思维模型”(ID:muningtalk),作者:穆宁,36氪经授权发布。

资深作者穆宁
0
相关文章
最新文章
查看更多
关注 36氪企服点评 公众号
打开微信扫一扫
为您推送企服点评最新内容
消息通知
咨询入驻
商务合作