一、什么是「权限设计」
“权限设计”是中后台的底层设计,用于明确操作人员可在平台内能做什么;即什么样的人,可以做什么样的事。
1.1.权限的意义
让使用者在有效的限制范围内访问被授权的资源。 让管理者基于系统的安全规则与策略,控制不同用户合理访问对应资源。
1.2.权限的应用
角色权限管理:角色权限管理顾名思义是根据用户角色类型进行权限分配;一个角色对应一组权限组,一个用户可能有多个角色。适用于中后台逻辑复杂功能模块繁多,需要对系统按权限进行切割的应用场景。 版本管理:部分中后台存在商业化诉求,基于前者的角色权限分配(也有可能不存在角色区分),再将完整的系统进行功能切割,将整个系统按功能切割为普通版、进阶版,甚至更多版本;这些版本功能范围基本处于一个包含关系。
1.3.权限设计要求
系统安全:基于系统的安全规则和策略进行设计,同时需要降低用户操作错误导致的风险概率。 关系明确:需要界定权限的边界与关系,遵循一定的规则与用户进行关联。 拓展性高:需要确保权限管理的拓展性,系统的能力建设是持续的,用户也是不断流动的;保持高拓展性以此降低变更对安全性、稳定性的影响。
1.4.权限设计的工作范畴
界面设计:权限查询、管理与授权等一系列页面设计。 业务梳理:权限构成、赋予以及行使的逻辑、元素的梳理。 数据验证&管理:数据管理层面,最终目标是可被表达成一个运算则式,体验方案的合理性与拓展性,验证设计的有效性。 底层架构开发:偏向于开发层面的系统底层架构设计与研发。
二、怎么做「权限设计」
业务梳理
2.1.准备工作:权限模型的了解与选择
2.1.1.RBAC0模型
用户:是发起操作的主体,例如:后台管理系统的用户、OA系统的内部员工、面向C端的用户。 角色:用于连接了用户和权限的桥梁,每个角色可以关联多个权限,同时一个用户也可以关联多个角色,那么这个用户就有了多个角色的多个权限。 权限:用户可以访问的资源,包括:页面权限、操作权限、数据权限。
* 2.1.2.ACL模型
* 2.1.3.RBAC1模型:基于 RBAC0 加入角色继承
设为⭐️星标,回复“流程图”领交互UX流程图源文件组件库
* 2.1.4.RBAC2 模型:基于 RBAC0 引入角色约束控制
互斥关系角色: 同一用户只能分配到一组互斥角色集合中至多一个角色,互斥角色是指各自权限互相制约的两个角色。例如:设计部有交互设计师和视觉设计师两个角色,他们如果在系统中为互斥角色,那么用户不能同时拥有这两个角色,体现了职责分离原则。 基数约束: a.一个角色被分配的用户数量受限;b.一个用户可拥有的角色数目受限;c.同一个角色对应的访问权限数目受限;以此控制高级权限在系统中的分配。 先决条件角色: 简单理解即如果某用户想获得上级角色,必须得先获得其下一级的角色,以此为一个先决条件。
2.2.开始梳理:基于RBAC模型盘点要素
2.2.1.第一步:盘点角色
参考组织本身的岗位划分:绝大多数情况下,系统中的工作职责与实际工作岗位有较为紧密的相关性,我们可以参考已有的岗位来盘点系统中的角色。