#推荐
【产品】功能权限设计

2024-12-09 0 604

 

一、权限设计的重要性

在 B 端系统中,权限设计的重要性不言而喻。它既能够满足不同职位的职责需求,又能确保数据的安全。合理的权限分配可以极大地提高管理效率,降低潜在的风险。
首先,权限设计是 B 端产品设计的重要组成部分。在整体框架设计时,权限设计就是一个极为关键的模块。它决定了用户登录系统后能看到的模块、操作的功能以及查看的数据范围。可以说,权限设计涵盖了用户进入系统后的所有内容。由于不同权限下可处理的业务和看到的数据可能不同,因此权限设计如果考虑不完整或不合理,将会给 B 端软件带来灾难。一旦出现设计缺陷,在使用过程中极易引发数据泄露、权限混乱等问题。而且,因为 B 端软件与企业真实的管理紧密相连,所以带来的后续影响难以预估,甚至可能给企业造成实实在在的经济损失。由此可见,权限设计对于 B 端软件极为重要且基础,在最初始设计产品框架时,就必须充分考虑并进行系统架构。
其次,B 端软件的权限设计本质是真实的企业管理模式的映射。B 端软件的存在意义在于解决某个具体的业务问题或管理流程,以实现 “降本增效”。例如,“CRM” 是为了解决销售管理问题,“审批” 是为了解决企业管理中的流程制度问题,“招聘” 是为了解决企业人员招聘工作中的管理效率问题等。在这些软件中,有明确的 “角色” 和 “流程”。“角色” 是对真实业务用户的抽象,权限设计大多围绕 “角色” 和 “用户” 展开。“角色” 是具有共同功能权限的人员集合的描述,“用户” 则是具体到系统的某个人。企业真实业务中的角色和用户,成为了 B 端软件权限设计的重要对象。例如,“CRM” 中的普通销售、销售经理、大区经理等角色,映射了真实销售世界的人员角色划分;“审批” 中的员工、经理、部门负责人、HRBP 等角色,反映了真实企业中的人员身份;“招聘” 中的招聘专员、部门负责人、招聘负责人等角色,也真实体现了企业招聘业务所涉及的各个角色。
再者,B 端软件权限设计背后存在共性的管理模式。企业管理中常见的模式有基于组织架构的管理模式、基于汇报关系的管理模式和基于业务关系的管理模式。其中,基于组织架构的管理模式是企业管理中最基础的模式。组织架构通常以 “部门” 来描述,如市场部、销售部、技术部、行政部等。企业规模不同、战略方向不同,组织架构也会有所不同。当企业人员达到一定规模时,通常会给组织架构设定 “负责人” 角色,如销售部的部门负责人。部门负责人一般具有极高的管理权限,除了类似 “薪酬” 这样的敏感数据,通常可以管理部门下所有人员的所有业务,最基础的就是 “查看权限”。也就是说,部门负责人拥有对部门及部门下所有人的管辖权限,在看业务数据时,能有权限看部门下所有人的数据,上级部门的部门负责人在某些业务管理时,还具备特殊的操作权限。此外,由于部分企业规模极大,还容易出现 “部门的 HRBP” 这样的角色,HRBP 作为业务方的人事协同管理者,在很多业务中也扮演重要角色。因此,在 B 端软件中,通常会涉及到部门负责人、部门 HRBP、部门助理等与组织架构密切相关的角色。需要注意的是,不同行业对这些角色的叫法可能不同,但关键在于这个角色能拥有对部门及部门下所有人的管理权限。
综上所述,权限设计在 B 端系统中具有至关重要的地位,它是企业管理模式在软件中的映射,同时也存在共性的管理模式。只有充分认识到权限设计的重要性,才能设计出合理、高效的 B 端系统。

二、B 端系统权限的分类

1. 功能权限

功能权限指用户登录系统后可以操作的菜单、页面以及页面元素。不同角色的用户在功能权限上往往存在差异,例如质检员和坐席人员在质检详情页的不同操作权限。功能权限的设计方式主要有以下几种:
一、自主访问控制(DAC)
自主访问控制是由《可信计算机系统评估准则》所定义的访问控制中的一种类型。被操作对象根据访问控制规则,来判断操作主体可对操作对象做哪些操作,比如只读或者是可写的权限。Windows 中的系统权限设计是典型的 DAC 应用,拥有访问权限的用户,可以直接将访问权限赋予其他成员,比如管理员有计算机的完全访问权,标准用户可以使用系统内的大多数软件。在 Windows 系统中,通过高级用户账户设置,赋予成员不同的系统操作权限,从而达到控制成员操作权限的目的。
二、强制访问控制(MAC)
被操作对象及用户两方均有各自的权限标识,用户能否对对象进行操作,取决于权限标识的对照关系。MAC 一般会给用户和资源分级。比如,用户级别分为:初级、高级;文件级别分为:公开、绝密,系统管理员会制定访问策略,如初级用户仅可以访问公开文件,高级用户可以访问全部文件。从而达到不同标识的用户,访问不同标识的操作对象。
三、基于角色的访问控制(RBAC)
  1. RBAC0,基础模型:用户与角色是多对多的关系。一个用户可以拥有若干角色,一个角色也可以赋予若干用户。企业的后台管理系统,通常包含多种管理模块,有面向供应商的管理,面向财务的管理,面向日常运营的管理,为了避免内部信息的交叉传播,以及操作人员可能存在的误操作行为,我们就可以通过 RBAC0 模型,为后台的操作者设置多种角色,并为每个角色赋予不同的业务权限。这样就可以让销售同事只能查阅和修改供应商管理模块,无法查阅公司的财务信息,而财务同事也只能查阅和修改财务报表相关的管理模块,无法干预公司的日常运营,运营同事则只被授予面向产品的运营管理能力,不同岗位各司其职,互不干扰。当一个人既负责销售部,又负责运营部时,就可以为其赋予销售人员、运营人员两个角色,这样他就拥有这两个角色的所有权限。
  1. RBAC1,用户分级模型:相比 RBAC0,需要设计角色间层级关系和角色间继承关系。公司规模越大,对每个岗位的权责要求也更为细致。我们可以通过 RBAC1 模型,为用户提供角色间的继承关系。如销售角色,可以分为销售主管和普通销售 2 个级别,普通销售默认继承销售主管的权限,并支持在销售主管级别的基础上,删减普通销售的权限。这样,通过角色分级,可以控制不同级别权责的差异化,避免出现下级比上级权限大的情况。
  1. RBAC2,角色限制模型:用户和角色为多对多的关系,如果采用责任分离模型,则需要定义角色和角色间的互斥关系,也就是约束规则。有些公司对于 “责任分离” 比较重视,如合同的录入与审核不能为同一个人,销售人员来做合同录入,财务人员来做合同审核,那么一个合同管理模块,如何做到责任分离呢?RBAC2 模型,通过角色互斥可以实现。给一个员工分配了销售人员角色时,就不能再分配财务人员的角色,保证一个员工不会既有销售人员,又有财务人员的角色,约束工作职责。
  1. RBAC3,统一模型:包括了继承和分离两种情况的更为复杂的模型,即既要定义角色间的继承关系,也要维护好角色间的责任分离关系。RBAC3 = RBAC1 + RBAC2,可以解决上述 3 个问题,既能实现角色的分级与继承关系,避免出现下级比上级权限大的情况,又可以定义角色间的互斥关系,保证一个员工不会同时操作互斥的功能。
在设计 B 端系统的功能权限时,可以采用 RBAC 模型,具体步骤如下:
1. 设计合理的角色
合理的角色设计是权限设计的前提。通过业务分析,确定系统中的不同角色及其职责。例如,W 客服平台的 AI 质检系统的角色有:管理员、质检员、坐席、游客。管理员负责系统配置和管理;质检员负责对 AI 质检结果进行检查和确认;坐席可查看自己的质检结果,提出复议;游客可登录系统查看质检模块介绍。
2. 明确需要做权限控制的功能点,以权限表的形式罗列出来
功能权限包括菜单权限、页面权限和页面元素权限。将需要做权限控制的功能点以菜单、页面、页面元素的层级罗列出来。如果菜单、页面有多个层级,则将每个层级都罗列出来。
3. 列出角色,找到权限与角色之间的对应关系,完善权限表
将系统中的角色列在权限表后面,并勾选每个角色拥有的权限,完善角色与权限的对应关系。例如,在质检记录列表页中,管理员和质检员这两个角色可以操作所有筛选条件,而坐席只能操作 “时间段”“客户名称”“客户手机号”“状态” 4 个筛选条件。
关于功能权限设计的几点 Tips:
如果项目初期不需要权限管理,一定记得提醒开发同学,预留相关接口。功能权限设计,也包括页面权限和接口权限,这一点没有经验的产品同学可能注意不到,需要保证没有该模块功能权限的用户直接输入页面地址或调用接口时,也无法访问。

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

【产品】功能权限设计

(一)功能权限设计 – RBAC 模型

1. 引入 “角色” 的意义

在 B 端系统中,引入 “角色” 对于权限管理具有重要意义。以客服部门的 AI 质检系统为例,起初只有一个质检员时,管理员直接给其绑定权限。随着业务量增加,这种方式效率低下。当系统中只有少量用户时,直接为每个用户绑定权限或许可行,但随着用户数量的增多,这种方式会给管理员带来大量重复性工作,极大地降低了工作效率。
引入 “角色” 后,只需给角色分配权限,新账号绑定角色即可拥有相应权限,方便批量操作。通过设置不同的角色,并将相关权限赋予这些角色,在添加新账号时,只需将该账号绑定相应角色,就能拥有该角色所具有的权限。如果需要调整权限,也无需操作每个账号,只需修改该角色绑定的权限即可,所有账号的权限跟着改变。这样极大地提高了管理员的工作效率,使得权限管理更加高效便捷。

2. 设计合理的角色

设计合理的角色是 B 端系统权限设计的关键步骤。通过业务分析确定角色,能够确保系统的权限分配与实际业务需求相匹配。
如在客服平台的 AI 质检系统中,根据业务需求确定了管理员、质检员、坐席、游客等角色。管理员负责系统配置和管理,拥有对系统的最高权限,可以进行各种设置和操作。质检员负责检查确认质检结果,对质检数据进行详细的审查和确认工作。坐席可以查看自己结果并复议,主要关注自己的工作成果和可能出现的问题。游客则只能查看模块介绍,对系统有一个初步的了解。
合理的角色设计能够明确不同用户在系统中的职责和权限范围,避免权限混乱和误操作,提高系统的安全性和管理效率。

3. 明确权限控制的功能点

明确权限控制的功能点是实现精细化权限管理的重要环节。以权限表形式罗列菜单、页面、页面元素层级的功能点,可以清晰地展示每个功能点的权限分配情况。
功能权限包括菜单权限、页面权限和页面元素权限。对于菜单权限,不同角色可能能够访问不同的菜单选项,例如管理员可以访问系统的所有菜单,而游客可能只能看到部分介绍性菜单。页面权限决定了用户能够访问哪些页面,比如质检员可以进入质检结果页面进行操作,而坐席可能只能在特定的页面查看自己的结果。页面元素权限则更加细致,控制用户对页面上具体元素的操作权限,如按钮、输入框等。
将需要做权限控制的功能点以菜单、页面、页面元素的层级罗列出来,如果菜单、页面有多个层级,则将每个层级都罗列出来。这样可以全面地了解系统中各个功能点的权限需求,为后续的权限分配提供清晰的依据。

4. 完善权限表

完善权限表是将角色与权限对应起来的关键步骤。列出角色,找到权限与角色的对应关系,勾选每个角色拥有的权限,可以直观地展示每个角色在系统中的具体权限范围。
例如,在客服平台的 AI 质检系统中,将管理员、质检员、坐席、游客等角色列在权限表后面。在质检记录列表页中,管理员和质检员这两个角色可以操作所有筛选条件,而坐席只能操作 “时间段”“客户名称”“客户手机号”“状态” 4 个筛选条件。在质检详情页中,质检员可以操作多个按钮,如 “添加质检类目”“添加质检项” 等;管理员能操作 “查看质检评论”“查看复议” 2 个按钮;坐席能操作 “查看质检评论”“提出复议” 等 5 个按钮。
通过完善权限表,可以确保每个角色的权限分配准确无误,避免权限漏洞和冲突,提高系统的安全性和稳定性。同时,也方便管理员对权限进行管理和调整,满足业务变化的需求。

四、B 端权限设计的原则与案例

(一)设计原则

1. 最小权限原则

在 B 端权限设计中,最小权限原则至关重要。每个用户应被赋予完成工作所需的最小权限,这可以有效降低安全风险。例如,在一个企业资源计划(ERP)系统中,普通员工可能只需要访问与自己工作相关的模块和数据,如销售员工只需查看客户信息、销售订单等与销售业务直接相关的内容,而不应拥有对财务数据或系统设置等敏感区域的访问权限。这样可以避免因权限过大而导致的误操作或数据泄露风险。

2. 基于角色的权限管理

通过角色进行权限分配是 B 端权限设计的常见方法。角色是一组具有相似职责和权限的用户集合,通过将用户与角色关联,实现权限的标准化和集中化管理,减少管理复杂性。以客户关系管理(CRM)系统为例,可以定义管理员、销售经理、普通销售等角色。管理员拥有系统的最高权限,负责系统配置和管理;销售经理可以查看团队成员的销售数据和业绩报表,并对销售流程进行监督和管理;普通销售则主要负责客户跟进和销售机会的挖掘,拥有对客户信息和销售机会的操作权限。这样,不同角色的用户在系统中拥有不同的权限范围,既满足了业务需求,又提高了权限管理的效率。

3. 领域专用权限

根据不同业务领域提供合适权限是确保用户操作有效性和准确性的关键。不同的业务领域具有不同的需求和特点,因此需要为不同领域的用户提供特定的权限。例如,在一个医疗管理系统中,医生、护士和行政人员的权限就应有所不同。医生需要能够查看患者病历、开具处方等;护士可以执行护理操作记录和患者生命体征监测等权限;行政人员则主要负责医院的日常管理和统计报表的生成,对医疗数据的操作权限相对较少。通过为不同业务领域的用户设置合适的权限,可以提高工作效率,减少错误操作的发生。

4. 弹性权限设计

具备灵活性的权限设计能够快速调整和修改权限设置,适应业务变化。随着企业的发展和业务的调整,用户的权限需求也可能会发生变化。因此,权限设计应具备一定的弹性,能够及时响应这些变化。例如,当企业新开展一项业务时,可能需要为相关人员分配新的权限;或者当某个部门的职责发生调整时,需要对该部门人员的权限进行相应的修改。通过灵活的权限设计,可以确保系统始终能够满足企业的业务需求,提高系统的适应性和可持续性。

(二)设计案例

以派单系统为例,展示不同角色的权限设计思路,包括简单的菜单显示和更灵活的可配置权限设计。
在派单系统中,通常涉及到老板、业务经理和业务员等角色。老板主要负责查看报表和人员角色修改,其菜单显示可能包括系统设置(密码修改、个人信息设置)、员工管理(查看员工信息、修改员工信息、员工角色设置)和报表管理(查看报表)。业务经理负责业务管理(接单后对订单进行派发)和对业务员进行行政管理(增删改查),菜单显示为订单管理(未处理订单、已派发订单、已处理订单)、系统设置(密码修改、个人信息设置)、员工管理(查看下级员工信息、修改下级员工信息)。业务员则负责接单处理和反馈订单信息,菜单显示为订单管理(处理下派订单、提交已完成的下派订单)、系统设置(密码修改、个人信息设置)。
这是一种简单的权限设计思路,通过不同角色的菜单显示来区分其权限范围。但如果系统对扩展性要求较高,就需要更灵活的可配置权限设计。首先将所有的功能全部抽离并罗列出来,比如派单系统的功能可能包括订单管理(不同状态订单的查看、处理、派发等操作)、系统设置(密码修改、个人信息设置等)、员工管理(查看员工信息、修改员工信息、员工角色设置等)、报表管理(查看报表)等。老板角色一开始就具备所有的功能,他可以创建下级角色 — 业务经理,创建的同时给业务经理这个角色分配权限,也可以创建一个归属业务经理的业务员。这样,权限、角色都是可进行灵活配置,扩展性和实用性也更强。
在具体的实现过程中,可以采用类似于技能树的方式进行权限分配。例如,在角色管理中,添加角色并分配相应的权限;在用户管理中,给添加的用户分配角色,从而确定其权限范围。同时,需要注意角色、用户和权限之间的关联性,避免对某一个的删除、修改等操作
收藏 打赏

感谢您的支持,我会继续努力的!

扫码打赏,加速更新更多文章。
常见问题
  • 本站资源版权属 AxureMost.cn 所有。任何非官网途径下载均属于盗版,后台有检测机制一经发现传播,共享,出售会起诉追会本站损失。
查看详情
  • 请比对下载完压缩包的与网盘上的容量。
查看详情
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务