权限设计对于大多数产品经理来说都不陌生,属于B端系统设计中一个至关重要的环节。有关权限设计的内容浩如烟海,作者根据平时的项目实践经验,探讨了权限设计的定义、类型,详细介绍了功能权限和数据权限的设计方法。希望能够给你带来帮助。

后端怎么做权限控制(手把手教你做B端的权限设计)(1)

权限设计是B端系统设计中一个至关重要的环节。有关权限设计的内容浩如烟海,笔者根据平时的项目实践经验,总结出B端系统权限设计的以下几点心得,共分为三大部分:

  1. 权限设计的定义;
  2. B端系统权限设计的分类;
  3. B端系统权限设计的方法。

其中第三部分为本文的重点,详细介绍了功能权限和数据权限的设计方法。关于权限设计的用户管理、用户组管理、角色管理、权限管理等内容,主要是列表页、编辑页、详情页等页面流程以及增删改查等操作,本文不再赘述。

一、权限设计的定义

权限设计是指系统为解决某一具体的权限分配问题而进行的设计。

为什么需要分配权限呢?一般是出于职位职责和数据安全两个方面的考虑。

例如,一个客服平台的质检系统需要管理员、质检员、坐席等不同职位,不同职位担任的职责均不相同,这就需要通过功能权限划分进行管理。

同时,考虑到系统的数据安全性,不同账号被允许查看的数据范围也不相同。管理员可以查看并操作全量数据,而坐席只能查看个人数据,因此,需要设计数据权限。

二、B端系统权限设计的分类

B端系统权限主要分为两类:功能权限和数据权限。

功能权限是指用户登录系统后可以操作哪些菜单、哪些页面以及哪些页面元素。例如,质检员登录W客服平台的AI质检系统后,可以在质检详情页对AI质检结果进行增删改查,而坐席人员只能查看不能操作。因此,就页面的功能权限而言,二者是不一样的。

数据权限是指用户登录系统后可以查看的数据范围,即能查看多少数据,什么类型的数据。例如,W客服平台的AI质检系统的质检记录列表,管理员能查看所有坐席人员的质检记录,而坐席人员只能查看自己的质检记录。因此,二者的数据范围不同。

我们在做权限设计时,一定要区分系统的功能权限和数据权限,不要糅合在一起。

三、B端系统权限的设计方法

(一)如何设计B端的功能权限

RBAC模型

RBAC模型(RBAC,Role-Based Access Control)是指基于角色的访问控制,该理论于1995年由计算机科学家Ravi Sandhu提出来的。主要描述了一套用户、角色、权限的设计理论,已被业界广泛使用。

RBAC模型理论的核心思想是:在用户与权限之间增加一个媒介,即角色。通过给每个用户赋予一个或多个角色,再给每个角色分配相应的权限,从而将角色关联的权限赋予给用户。

为什么要引入“角色”这个概念呢?为了更好地说清楚RBAC模型的核心思想,我们来看个B端设计案例。W客服部门做了一个AI质检系统,起初由于业务量少,质检系统只安排了1个质检员小明,让他负责审核AI质检结果并确认质检。管理员给小明创建了系统账号,并直接绑定了质检权限。

后来,随着业务量的不断增加和坐席团队的日益壮大,W客服部门已增至几十个质检员,每次有新增的质检员,管理员都需要给其绑定相应的权限,后续有修改也无法进行批量操作,需要对每一个账号操作一遍。这样,管理员的重复性工作太多,工作效率大打折扣。

试想,如果设置一个角色,并把相关权限赋予该角色,那么在添加新账号的时候,只需将该账号绑定该角色,就能拥有该角色所具有的权限。如果需要调整权限,也无需操作每个账号,只需修改该角色绑定的权限即可,所有账号的权限跟着改变,这将极大地提高管理员的工作效率。

关于RBAC模型的核心思想,图示如下:

后端怎么做权限控制(手把手教你做B端的权限设计)(2)

关于RBAC模型,还有很多延展性理论。例如:根据模型的复杂度,又可分为RBAC0、RBAC1、RBAC2、RBAC3。其中,RBAC0是上面介绍的基础理论。后面几个涉及到角色继承、角色约束、用户组等概念,我们可根据自己业务的实际情况选择合适的理论模型,在此不再赘述。

根据RBAC模型理论,我们怎么设计B端系统的功能权限呢?

1、设计合理的角色。合理的角色设计是权限设计的前提。在此基础上,只需要配置每个角色能查看哪些菜单,访问哪些页面,操作哪些页面元素就行。

例如,通过业务分析,W客服平台的AI质检系统的角色有:管理员、质检员、坐席、游客。管理员负责系统配置和管理。质检员负责对AI质检结果进行检查和确认。坐席可查看自己的质检结果,提出复议。游客可登录系统查看质检模块介绍。

2、明确需要做权限控制的功能点,以权限表的形式罗列出来。

功能权限包括菜单权限、页面权限和页面元素权限。将需要做权限控制的功能点以菜单、页面、页面元素的层级罗列出来。如果菜单、页面有多个层级,则将每个层级都罗列出来。以下表格是W客服平台的AI质检系统的智能质检模块需要做权限控制的功能点:

后端怎么做权限控制(手把手教你做B端的权限设计)(3)

3、列出角色,找到权限与角色之间的对应关系,完善权限表。我们再把W客服平台的AI质检系统的角色列在权限表后面,并勾选每个角色拥有的权限,完善角色与权限的对应关系,具体图示如下:

后端怎么做权限控制(手把手教你做B端的权限设计)(4)

从以上权限表,我们可以看出:

  1. 在质检记录列表页中,管理员和质检员这两个角色可以操作所有筛选条件,而坐席只能操作“时间段”、“客户名称”、“客户手机号”、“状态”4个筛选条件。
  2. 在质检详情页中,质检员可以操作“添加质检类目”、“添加质检项”、“删除质检类目”、“删除质检项”、“确认质检”、“提交质检评论”、“编辑质检评论”、“删除质检评论”、“查看质检评论”、“查看复议”11个按钮;管理员能操作“查看质检评论”、“查看复议”2个按钮;坐席能操作“查看质检评论”、“提出复议”、“编辑复议”、“删除复议”、“查看复议”5个按钮。

以权限表的形式将各角色与功能权限一一对应呈现出来,清晰明了,不容易遗漏。

(二)如何设计B端系统的数据权限?

数据权限是建立在功能权限基础之上的。没有功能权限,就不会有数据权限。

例如,某个角色在W客服平台的AI质检系统中如果不能查看质检记录列表,自然也谈不上能看到多少数据量的问题。

关于数据权限,一般包含两种情况。

一种是无组织架构的数据权限。这类数据权限设计相对简单。根据不同的业务情况,可以选择直接在创建角色时选定相应的数据权限范围,也可以将规则以文字描述的形式罗列在权限表后面。

例如,W客服平台的AI质检系统各角色间不涉及上下级的层级架构,因此,只需在功能权限表后新加一栏数据权限,将各角色的数据权限规则描述出来即可,具体图示如下:

后端怎么做权限控制(手把手教你做B端的权限设计)(5)

第二种是有组织架构的数据权限。

组织架构是指,一个组织整体的结构。企业的组织架构是企业的流程运转、部门设置及职能规划等最基本的结构依据。

例如,A公司营销部门的组织架构为:营销总监下设营销部经理和业务部经理,经理分别下设两个主管,主管下设专员,上级领导下级,下级对上级负责。具体图示如下:

后端怎么做权限控制(手把手教你做B端的权限设计)(6)

A公司营销部的业务诉求是:营销总监能查看营销部的所有数据,部门经理能查看本部门的所有数据,部门主管能查看所有下属的数据,专员只能查看自己的数据。

那我们如何通过组织机构树进行数据权限设计呢?

1、根据业务诉求,我们创建管理员、部门管理员、部门主管、普通用户4个角色,并定义这4个角色在组织机构树中的权限范围,具体如下表所示:

2、给相应人员创建账号,并将对应的角色赋予账号,具体图示如下:

后端怎么做权限控制(手把手教你做B端的权限设计)(7)

3、系统通过读取这棵组织机构树上的节点来实现数据权限的控制。

  • 账号0被赋予管理员角色,该账号处于整棵组织机构树根节点的位置,且数据权限是“当前节点及其所有子节点”,因此,账号0可以查看整个营销组织的数据,并能对其进行增删改查等操作。
  • 账号1被赋予部门管理员角色,该账号处于营销部经理的根节点,且数据权限是“当前节点及其所有子节点”,因此,账号1可以查看营销部的所有数据,并能对其进行增删改查等操作。
  • 账号2被赋予部门主管角色,数据权限是“当前节点及其所有子节点”,因此,账号2可以查看本人及其下属的所有数据,并能对其进行增删改查等操作。
  • 账号3被赋予普通用户角色,数据权限是“当前节点”,因此,账号3只能查看并操作本人的数据。

至此,根据组织机构树已实现对整个营销部门的数据权限管理。

四、结语

本文探讨了权限设计的定义、类型,着重介绍了功能权限和数据权限的设计方法。然而,这些只是权限设计的冰山一角。在接下来的B端系统的设计生涯中,期待我们更多的理论探索和实践验证!

作者:WOWdesign,研究设计价值最大化,涉及用户体验、品牌体验、空间体验。

本文由人人都是产品经理合作媒体 @WOWdesign 授权发布,未经许可,禁止转载。

题图来自Unsplash,基于 CC0 协议。

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。

,