图片

从3个方面,手把手教你做B端的权限设计

发布时间:2023-5-18 16:14:53 浏览次数:

一、权限设计的定义

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

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

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

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

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

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

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

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

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

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

1. 如何设计 B 端的功能权限

RBAC 模型

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

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

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

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

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

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

从3个方面,手把手教你做B端的权限设计

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

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

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

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

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

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

从3个方面,手把手教你做B端的权限设计

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

从3个方面,手把手教你做B端的权限设计

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

  1. 在质检记录列表页中,管理员和质检员这两个角色可以操作所有筛选条件,而坐席只能操作“时间段”、“客户名称”、“客户手机号”、“状态”4 个筛选条件。

  2. 在质检详情页中,质检员可以操作“添加质检类目”、“添加质检项”、“删除质检类目”、“删除质检项”、“确认质检”、“提交质检评论”、“编辑质检评论”、“删除质检评论”、“查看质检评论”、“查看复议”11 个按钮;管理员能操作“查看质检评论”、“查看复议”2 个按钮;坐席能操作“查看质检评论”、“提出复议”、“编辑复议”、“删除复议”、“查看复议”5 个按钮。

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

2. 如何设计 B 端系统的数据权限?

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

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

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

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

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

从3个方面,手把手教你做B端的权限设计

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

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

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

从3个方面,手把手教你做B端的权限设计

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

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

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

从3个方面,手把手教你做B端的权限设计

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

从3个方面,手把手教你做B端的权限设计

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

  1. 账号 0 被赋予管理员角色,该账号处于整棵组织机构树根节点的位置,且数据权限是“当前节点及其所有子节点”,因此,账号 0 可以查看整个营销组织的数据,并能对其进行增删改查等操作。

  2. 账号 1 被赋予部门管理员角色,该账号处于营销部经理的根节点,且数据权限是“当前节点及其所有子节点”,因此,账号 1 可以查看营销部的所有数据,并能对其进行增删改查等操作。

  3. 账号 2 被赋予部门主管角色,数据权限是“当前节点及其所有子节点”,因此,账号 2 可以查看本人及其下属的所有数据,并能对其进行增删改查等操作。

  4. 账号 3 被赋予普通用户角色,数据权限是“当前节点”,因此,账号 3 只能查看并操作本人的数据。

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

四、结语

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



图文来源于网络,侵删。

一、权限设计的定义权限设计是指系统为解决某一具体的权限分配问题而进行的设计。为什么需要分配权限呢?一般是出于职位职责和数据安全两个方面的考虑。例如,一个客服平台的质检系统需要管理员、质检员、坐席等不同
从3个方面,手把手教你做B端的权限设计
联系荣尚网络顾问
免费获得专属《策划开发方案》及报价详情。

多份参考,总有益处!

立即在线咨询

或拨打:134 0536 2733

企业微信客服
联系荣尚网络顾问
免费获得专属《策划开发方案》及报价详情。

多份参考,总有益处!

立即在线咨询

或拨打:134 0536 2733

企业微信客服