后台产品设计(1):权限系统

权限是什么,简单理解是一个人能做什么事,通过各种授权,把这个人用到的功能赋予他权限。再更进一步思考,不仅仅要规定一个人能做什么事,还要规定一个人不能做什么事,有限制的做什么事,看什么内容,不能看什么内容。再上升一个层级,抽象到角色,一个角色能做什么,不能做什么,有限制的做什么,能看到什么,不能看到什么,有条件的看到什么。

后台产品设计(1):权限系统

而这种权限的设计,又依赖于公司组织和职责的划分,公司能否将同一个岗位的人的岗位职责明确,就很大程度的影响产品的权限设计和规划;例如公司的销售体系,销售经理是否能抽象出一个权限范围,而不是A经理能做这个,B经理不能,这种高度个性化的职责划分。

我们都希望组织能够有类似的抽象,可是很可惜,大多数组织或公司,都是两种情况并存的,即既有按照岗位或角色共性的权限,又有特殊情况,授予某些个人特殊的权限;

因此权限系统的设计,要兼容两种情况,如果把某个人也看成一个角色,那么就可以做统一设计了;

权限的本质其实是数据库:包含两大类,一类是文档型数据库,代表是IBM的Lotus,整个权限体系底层设计的非常牛B,上层应用也特别简单;另外一类是关系型数据库,最流行的MySQL等,数据权限做的可以,只是业务系统权限完全要自行设计。

权限系统最底层,应该就是员工帐号管理了,很多公司关于员工帐号管理比较混乱,一个系统一个帐号,密码还不能一样,信息倒是真安全了,但是体验真的很差,相信改密码或密码初始化的访问量一定很高;我的建议是帐号使用一套,核心系统(例如工资)可以适当增加安全,例如增加手机验证码。

具体说来整个权限体系的设计,包含三个大的模块:功能权限、数据权限,权限监控;权限的对象是角色或用户,权限系统通过灵活的权限与角色的对应配置,实现复杂多变的业务场景。

下图就是权限系统设计的基本框架:

权限配置系统,主要实现的功能就是将用户与角色的对应,角色与权限的对应,建立起多对多的关系,并且要能够支持随时修改或自动更新。

下面我将分别介绍权限系统的三大模块:

后台产品设计(1):权限系统

1、功能权限

功能权限的设计目标是解决哪些人有哪些功能操作,功能操作包含链接、按钮等页面中用户交互控件,将每个操作控件抽象成为配置对象,就能够实现页面中最细粒度的权限控制。

设计的时候分为前、后端控制,一般来说前端控制即可,对于安全性要求较高的场景,可以接入后端控制。即用户访问页面的时候,首先获取该页面与该用户的权限对应关系,按照配置显示或隐藏响应的按钮控件。

2、数据权限

数据权限比较容易理解,就是用户能看哪些数据。普遍分为两种数据,一种是列表数据,一种是字段级数据。

列表数据是最常用的一种形式,对于后台产品,基本框架都是列表加详情页的设计方式,列表数据权限就是控制用户能看到列表中多少数据,什么样的数据;例如销售人员能看到自己的客户,主管能看到所有下属员工的数据。

字段数据控制会更细致严格一些,及时能够看到列表数据,进入到详情页后,有些字段也是需要控制的,例如用户手机号码等敏感数据,控制要求更加严格。

3、行为监控

行为监控也是权限系统的重要组成部分,对于信息安全有着很重要的作用,而且必须要在产品设计之初就考虑进去,否则后期会带来很大麻烦。

行为监控分为两个维度,一个是行为监控,一个是日志记录。前者顾名思义,行为监控,即监视和控制。简单说来就是对于用户所有系统中的操作行为都有记录,从而在事前控制用户不能有超过异常的行为。

例如,对于用户来讲,能看到的数据都是自己有权限看到的,但是在权限范围内,也要控制行为,如果用户每天查看用户信息上千条或连续查看用户信息N多天,就很有异常,常规的工作不会有这种异常操作,这个时候就需要做限制,每天职能查看最多100条数据。

这是事前控制,即风险发生之前尽量避免,日志记录就是事后回溯使用,一般是发生风险后通过日志查找犯罪嫌疑人,进而做进一步处理。

很多企业能做到日志记录以及审计,但很少有人会考虑事前控制,相对来说,事前控制更为重要。

接下来说说权限对象,角色和用户。

角色是指一类具有同样权限的人的组合,一般来说是同一岗位类型的人,亦或是具备相同工作内容的人。

用户就是某一个用户,一般来说,用户也可以理解为一个角色,只是一对一的关系而已。

角色的设计可以依据企业的组织结构,和岗位类型,组织结构解决的是上下级关系,岗位定义的是同一工作内容的人的集合。

最后说说运营,好的产品设计离不开好的运营,系统设计得足够灵活,会是运营工作的双刃剑,很方便,但是门槛高,要提前规划好如何配置,既灵活又能方便维护。

我的建议是细化到最细粒度,即用户和角色可以多对多,但是角色和权限务必要一对一,虽然配置起来会很复杂,但是磨刀不误砍柴工,前期复杂一点,后续维护会带来意想不到的便捷。

结束语,完善的权限管理体系固然重要,但是防患于未然更重要,太多的企业都是这样的过程,企业初创时期和高速发展时期,为了快速的发展,牺牲掉了很多合规的工作,允许风险存在,然后到了稳定时期,人员组织越来越复杂,才开始注意权限管控,然后开始梳理历史数据,修改产品。提前规划,提前设计,老话说得好磨刀不误砍柴工。

其实最根本的还是人心,提升员工的风险意识与职业道德水平,教育好员工才是根本。

业界动态

如何正确的去做后台管理设计?

2020-11-8 9:39:37

业界动态

如何成为一名好的职场管理者?

2020-11-8 9:53:29

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索