什么是权限管理系统?深入分析什么是权限管理系统

权限管理是所有后台系统的都会涉及的一个重要组成部分,主要目的是对不同的人访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,隐私数据泄露等问题 。
目前公司采用微服务架构,权限系统自然就独立出来了,其他业务系统包括商品中心、订单中心、用户中心、仓库系统、小程序、多个 APP 等十几个系统和终端 。
1、权限模型
迄今为止最为普及的权限设计模型是RBAC模型,基于角色的访问控制(Role-Based)
1.1 RBAC0模型
RBAC0模型如下:

什么是权限管理系统?深入分析什么是权限管理系统

文章插图
这是权限最基础也是最核心的模型,它包括用户/角色/权限,其中用户和角色是多对多的关系,角色和权限也是多对多的关系 。
用户是发起操作的主体,按类型分可分为2B和2C用户,可以是后台管理系统的用户,可以是OA系统的内部员工,也可以是面向C端的用户,比如阿里云的用户 。
角色起到了桥梁的作用,连接了用户和权限的关系,每个角色可以关联多个权限,同时一个用户关联多个角色,那么这个用户就有了多个角色的多个权限 。有人会问了为什么用户不直接关联权限呢?在用户基数小的系统,比如20个人的小系统,管理员可以直接把用户和权限关联,工作量并不大,选择一个用户勾选下需要的权限就完事了 。
但是在实际企业系统中,用户基数比较大,其中很多人的权限都是一样的,就是个普通访问权限,如果管理员给100人甚至更多授权,工作量巨大 。这就引入了"角色(Role)"概念,一个角色可以与多个用户关联,管理员只需要把该角色赋予用户,那么用户就有了该角色下的所有权限,这样设计既提升了效率,也有很大的拓展性 。
权限是用户可以访问的资源,包括页面权限,操作权限,数据权限:
以上是RBAC的核心设计及模型分析,此模型也叫做RBAC0,而基于核心概念之上,RBAC还提供了扩展模式 。包括RBAC1,RBAC2,RBAC3模型 。下面介绍这三种类型
1.2 RBAC1模型
什么是权限管理系统?深入分析什么是权限管理系统

文章插图
此模型引入了角色继承( Role)概念,即角色具有上下级的关系,角色间的继承关系可分为一般继承关系和受限继承关系 。一般继承关系仅要求角色继承关系是一个绝对偏序关系,允许角色间的多继承 。而受限继承关系则进一步要求角色继承关系是一个树结构,实现角色间的单继承 。这种设计可以给角色分组和分层,一定程度简化了权限管理工作 。
1.3 RBAC2模型
基于核心模型的基础上,进行了角色的约束控制,RBAC2模型中添加了责任分离关系,其规定了权限被赋予角色时,或角色被赋予用户时,以及当用户在某一时刻激活一个角色时所应遵循的强制性规则 。责任分离包括静态责任分离和动态责任分离 。主要包括以下约束:
1.4 RBAC3模型
即最全面的权限管理,它是基于RBAC0,将RBAC1和RBAC2进行了整合
1.5 用户组
【什么是权限管理系统?深入分析什么是权限管理系统】当平台用户基数增大,角色类型增多时,而且有一部分人具有相同的属性,比如财务部的所有员工,如果直接给用户分配角色,管理员的工作量就会很大,如果把相同属性的用户归类到某用户组,那么管理员直接给用户组分配角色,用户组里的每个用户即可拥有该角色,以后其他用户加入用户组后,即可自动获取用户组的所有角色,退出用户组,同时也撤销了用户组下的角色,无须管理员手动管理角色 。
根据用户组是否有上下级关系,可以分为有上下级的用户组和普通用户组:
每个公司都会涉及到到组织和职位,下面就重点介绍这两个 。