权限管理的“前世今生”
什么是权限管理?百度百科解释道:权限管理,一般指根据系统设置的安全规则或者安全策略 ,用户可以访问而且只能访问自己被授权的资源,不多不少。
何为“不多不少”?简单来讲,就是“用户”可以“做什么”,以及可以“做到什么程度”,都是通过权限管理来控制。
一、“前世”的权限缩影
在我们的生活当中,大到国家、政府,小到企业、家庭,到处都透露着“权限”的缩影。
以企业为例,不同的员工,所对应的岗位职责(也就是权限)也不同:
- 人力资源部经理张三负责公司的员工招聘工作,岗位职责是招人及员工管理;
- 而李四作为人力资源部的一名人事助理,其岗位职责则是员工信息的档案管理。
以上举例,局限于岗位职责。还有一些更加丰富、更加细腻的权限管理。比如:
- 张三是北京分公司的人力资源部经理,他只能够管理北京分公司员工和北京分公司下属的子公司(海淀子公司、朝阳子公司等)的员工;
- 王五是海淀子公司的人力资源部经理,他也只能够管理海淀子公司的员工。
这些岗位职责和资源(也称为数据)直接相关,又称为数据级权限管理。
二、“今生”的权限写照
1、现实与权限管理的映射关系
在互联网行业中,权限管理系统中的角色一般跟企业的组织架构是一致的:企业组织架构中的员工在什么岗位要做什么事情,跟权限管理系统中的用户是什么角色被允许进行什么操作,是一种对应关系。
所以企业架构中的员工、岗位、职责和资源 ,分别对应了权限管理系统中的用户、角色、权限和数据。
2、权限管理的分类
从控制力度来看,可以将权限管理分为两大类:
- 功能级权限管理;
- 数据级权限管理。
从控制方向来看,也可以将权限管理分为两大类:
- 从系统获取数据,比如查询订单、查询客户资料;
- 向系统提交数据,比如删除订单、修改客户资料。
系统层面的权限管理,主要还是从控制力度上来进行设计。
三、如何进行权限系统设计
权限系统主要由三大部分构成:用户管理、角色管理、权限管理。
1、用户管理设计
账号作为一个用户登录系统的唯一身份标识,其主要通过用户管理进行维护,一般包含有列表页面、详情页面、新增页面。
可以先设想下用户管理大概需要用到哪些字段?梳理完的信息结构图如下:
注:这里以最小可行性的字段设计为例,不同的企业所需要的字段要素会有所增减。
- 用户编号:作为用户的唯一标识,一般由系统自动生成,由低到高递增;
- 用户名:用户用于登录的账号,一般支持字母、数字和下划线,需区分唯一性;
- 密码:账号登录密码,支持字母、数字和特殊字符,需区分大小写;
- 角色:数据来源于“角色管理”中已维护的角色,可支持多选。
“角色”为什么要支持多选?咱们下面再讲。
为什么这里不设计一个详情页面?因为字段较少,列表已经能显示下所有的字段要素,所以没必要再新增一个详情页面。只有当列表页显示不下所有字段要素的时候,才有必要设计一个详情页来展示所有的用户信息。
现在信息结构图有了,接下来就可以开始设计原型,设计完的页面如下:
(原型:用户管理)
(原型:新增用户)
2、角色管理设计
系统中用户的权限是通过角色来控制,角色可以理解为具备一定权限的用户组,也叫权限的集合,划分角色的好处是可以大大降低用户权限分配的重复性工作量。
“角色管理”的信息结构图如下:
- 角色编号:角色的唯一标识,一般由系统自动生成,由低到高递增;
- 角色名称:主要用于识别,可限制不可出现相同的角色名称;
- 上级:选择所属上级角色,用于搭建组织架构。
根据信息结构图所设计的页面如下:
(原型:角色管理)
(原型:新增角色)
做到这里,“角色管理”还称不上结束,因为还差一个最关键的“权限”。
3、权限管理设计
上文中已经讲过,“权限”分为“功能权限”和“数据权限”。
“功能权限”可粗可细,粗可以到菜单级别,细则可达到功能按钮级别。
“数据权限”有两种处理方式:
- 一种是自动继承组织架构关系,这种不涉及页面配置,由程序根据用户的从属关系自动关联。比如:销售部经理可以查看整个部门的销售数据,而销售部的普通员工则只能看到自己的销售数据;
- 另一种则是由人工自行配置,划分所需要查看的数据权限。
那么,“角色管理”的信息结构图,加上“权限”后显示如下:
(橙色为新增“权限”部分)
在企业中,一个员工可以身兼多个岗位,一个岗位也可能有多个员工,所以员工和岗位是多对多的关系,由此可以得出“用户”和“角色”之间也是多对多的关系。一个“角色”可以分配多个“权限”,同样一个“权限”可以分配给多个“角色”使用,故“角色”和“权限”之间也是多对多的关系。
如果一个用户拥有多个角色,那这个用户的权限则取的是这多个角色权限的并集。
“角色管理”的页面加上“权限”后如下:
(原型:角色管理)
(原型:配置数据权限)
(原型:配置功能权限)
另外,页面上的功能权限展示,建议与系统模块、菜单页面的顺序来排列好,便于用户理解。
到此,权限系统差不多就设计完了,后续系统在不断的更新迭代时,权限系统也需要做对应的调整。大到功能模块的增、删,小到功能命名的变更,权限系统都需要做到同步变更,以求一一对应。
四、总结
权限管理对于B端产品来说必不可少,权限管理具体应该做到什么程度,跟企业运营息息相关。在设计权限系统时,一定要结合企业发展,提前做好规划,才能满足业务需求。
作者:WOWdesign,研究设计价值最大化,涉及用户体验、品牌体验、空间体验。
本文作者 @WOWdesign 。
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!