如何对权限管理平台进行产品设计?
本篇以笔者做过的一个权限管理平台为例,讲解下权限管理的设计思路。
项目背景
本次是为培训机构搭建一套信息化系统,包括一个权限管理平台、以及5个业务系统。这里就不对业务系统做一一的描述了。
其中权限管理平台由总部运营人员进行管理与维护。此平台的主要目标是:各个业务系统的所有功能和数据进行统一权限配置。
机构与业务梳理
对客户实际组织架构和业务情况进行了解梳理,总结如下:
- 其中运营部与教研部归总部管理,运营部管理公司所有员工的账户与权限分配。其下又分为4个大机构。
- 4大机构其下又分为多个小机构,每个机构又是独立存在的。
- 每个小机构又有多个业务部门,每个部门负责管理与维护不同的业务系统。
- 同一个员工可能在不同的机构担任不同的角色。
名词解析
该平台的权限设计是基于RBAC模式进行设计的。
RBAC(Role-Based Access Control)基于角色的访问控制。这是从传统的权限模型基础上,改进而来并且相当成熟的权限模型。这里强调三个要素:用户、角色、权限。用户与角色是多对多关系,角色与权限是多对多关系。
关键元素:
- 用户(员工):成功认证并登录系统的操作员(主体:who);
- 权限:访问资源的许可(how);
- 角色:权限的集合体;
- 业务系统:每个独立业务系统,包括各业务系统中的菜单、操作按钮等(what)
如图所示:
大体思路
- 组织机构与员工关联;
- 业务平台与资源权限关联;
- 角色与业务平台关联,维护该角色对应的资源列表;
- 角色权限与系统角色关联;
产品具体设计说明
统一权限管理平台主要包含了以下5个功能模块:员工管理、角色管理、校区管理、安全设置、操作日志。其中员工管理、角色管理、机构管理三个模块相互联系。如图所示。
1. 机构管理
机构管理是对整个集团公司的员工所属机构进行维护、更新的管理。机构的最高层次:如“XX总部”不可删除、可以编辑,该机构由超级管理员进行维护。根据业务梳理,其中4个大机构不具备实际意义,只是方便与各个机构的选择。因此4个大机构直接由开发设置。
具体设计如下:
机构列表包括:机构名称、上级机构、机构位置、GPS定位、是否启用、操作(编辑)
创建机构:弹窗录入:机构名称、选择上级机构、机构位置、GPS定位(方便员工进行考勤)、是否启用。
2. 角色管理
角色往往基于业务需求而在系统内设定好的标签,每个角色对应明确的业务系统权限,是众由多最小权限颗粒的组成。通过把权限给这个角色,再把角色给账号,从而实现账号的权限,因此它承担了一个桥梁的作用。
根据对业务的梳理,不同角色只能操作其对应的业务平台,由开发将业务平台直接写死,新增角色时,将角色与平台进行挂钩,方便对角色进行该业务平台进行权限分配
具体设计如下:
新建角色:角色名称,所属平台;
角色列表包括:角色名称、所属平台、创建人、创建时间、操作(编辑、删除、权限分配)
角色的权限分配:对应跳转到对应平台权限分配界面,即该业务平台的资源(菜单/子菜单/按钮/字段),目前已存在5个业务平台,不同业务具备不同的资源;下图只是其中一个业务平台的部分权限。
删除:弹窗提示:“删除该角色后,员工所属角色会自动移除,是否继续?”。
3. 员工管理
员工归属不同的机构,是各个业务系统的具体操作者。员工按组织架构新建/导入在对应的组织上,一般是在机构对应的部门(一级部门–二级部门)下。根据公司实际情况直接将员工归属于各个不同的机构。
员工可以在多个不同机构担任不同的角色、所以它与机构、角色之间的关系都是1对n的关系。员工的权限取决于他在不同的机构担任角色的集合,即员工权限=同一机构所属角色权限集合(注:员工根据角色所属平台、操作不同的业务系统)。
具体设计如下:
员工列表、查询:用户列表页展示姓名(员工实际姓名)、手机(员工唯一登录账号)、状态等有价值的信息。同时具备编辑、启用、授权、重置密码、离职功能。
员工新增、编辑、批量导入:本项目中,员工的新增均是通过统一权限管理平台进行,并并分配各业务系统角色权限。其中手机号码是员工唯一登录业务系统的凭证。
离职:当出现用户离职时,可以将用户禁用,不可登录系统,防止业务数据流失。
重置密码:当用户多少输入密码错误时或忘记密角色码时,这时可以进行重置密码,恢复到默认密码。
授权:点击授权,由于同一个员工在不同机构中拥有的角色是不一致的。所以需要对员工的不同机构进行单独角色配置,呈一一对应的关系。利润员工A在机构A拥有角色A、角色C,在机构B拥有其他角色等
4. 安全设置
此平台默认一个超级管理员角色,这个账号不可删除,但可以进行密码于密保手机修改(由开发人员创建)
该超级管理员角色主要对该平台创建角色、与机构并进行权限分配
5. 操作日志
操作日志是对用户操作的记录,记录有操作IP、操作内容和操作时间等。
数据权限梳理
对各角色的数据权限进行梳理,一些员工若存在所分配的角色权限之外,还需要一些权限需时。
可以与开发沟通,通过代码写死或者约定一定的规则,用角色编码或岗位编码实现;
通过在角色管理设置特殊角色,进行单独角色权限分配,但不在角色管理中显示;
平台上线试运行
平台上线试运行期间,协助客户对实际业务的新情况调整权限配置,让客户运营人员逐渐熟悉权限配置规则。
在使用过程中,对客户提出一些新的特殊权限的需求进行评估,根据对现有权限框架的影响再决定是否变更。
以上就是一只产品汪对“权限管理平台”的设计思路和对应的实现方法,欢迎和同行一起交流产品设计。
本文由@浮生 原创发布于人人都是产品经理,未经允许,禁止转载
题图来自Unsplash, 基于CC0协议
写得很好。特别是这段,秒懂本质。、
“组织机构与员工关联;
业务平台与资源权限关联;
角色与业务平台关联,维护该角色对应的资源列表;
角色权限与系统角色关联;”
请问,添加机构的时候为什么需要机构的GPS跟机构的位置,意义在哪里
用于学员和讲师进行打卡考勤
发现两处有歧义的地方:
1、统一权限管理平台主要包含了以下4个功能模块:员工管理、角色管理、校区管理、安全设置、操作日志。——看着后面是5个功能模块,是不是我没理解哪个不算功能模块。
2、机构模块出现了CPS定位这个词汇,但是下文中又出现GPS定位,通过百度指导CPS是信息物理系统(CPS,Cyber-Physical Systems)的简称,不知道是否是这个意思。
谢谢,有两个地方描述错误。
权限是设计完再考虑,还是设计的一开始就要考虑
在设计之前,就需要梳理
机构是什么意思,没理解员工分机构的意思?角色跟平台关联能理解,机构和平台是什么关系?
相当不同的分公司,同一个员工可能在不同的分公司担当不同的角色