权限控制RBAC模型

作者: AC编程 | 来源:发表于2020-04-06 15:49 被阅读0次

一、什么是RBAC

权限系统提的最多的就是RBAC(Role-Base Access Control基于角色的访问控制)。所谓角色,其实就是权限的集合,某个角色就是某几个权限的结合。其目的是为了简化授权和鉴权的过程。

RBAC模型的核心是在用户和权限之间引入了角色的概念。取消了用户和权限的直接关联,改为通过用户关联角色、角色关联权限的方法来间接地赋予用户权限(如下图),从而达到用户和权限解耦的目的。

RABC示意图

二、传统方式权限设置

将用户直接绑定到权限上去,如下图:

传统方式权限设置
  • 每次去新增用户的时候都需要去挨个点一遍,工作效率不高;
  • 没有一个参考的权限标准;
  • 在大型项目中一般不会去使用这样的权限管理方式

三、基于RBAC的几种权限体系设计

3.1、用户-角色-权限
3.1.1、用户和角色是多对一关系

一个用户只充当一种角色,一种角色可以有多个用户担当。

3.1.2、用户和角色是多对多关系

一个用户可同时充当好几种角色,一种角色可以有多个用户担当。

用户-角色-权限

如上图:对于左边的用户-角色对应,每个人只能同时拥有一种角色,但是同一个角色里边,可能会含有多个用户(如:李四和王麻子都是业务员);而右边的用户-角色对应,是在左边的基础上,增加了一个用户可拥有多种角色的情况(如:小马哥既是经理,也要负责财务的工作)。

3.2、用户-组织-角色-权限

一般公司的业务管理系统,都有数据私密性的要求:哪些人可以看到哪些数据,哪些人不可以看到哪些数据。这个时候,我们就需要把这些东西也考虑到你的权限体系内了。

用户-组织-角色-权限

假设上图是一家公司业务部门的组织架构图,公司要求你基于这个组织架构设计一个业务管理系统,并要求系统需要满足不同用户的数据私密性,比如:“张三”登录时,只能看到“张三”负责的数据;“张三”的领导登录时,能看到“团队A”的所有业务员负责的数据,但看不到其他团队业务员负责的数据等等。

在这种情况下,上一种权限体系就不适用了,但我们可以对其进行一些小改造后,即可达到数据管控的目的,如下图:

用户-组织-角色-权限-2

在“用户-角色-权限”的基础上,我们增加了用户与组织的关联关系,组织决定了用户的数据可视权限。但要想真正达到这个效果,我们还需要做2件事:

1、组织层级划分。如下图,我们需要对组织进行梳理,并划分层级。

2、数据可视权限规则制定。比如:上级组织职能看到下级组织员工负责的数据,而不能看到其他平级组织及其下级组织的员工数据等。

通过以上两点,系统就可以在用户登录时,自动判断要给用户展示哪些数据了!

3.3、用户-组织-岗位-角色-权限

第三种权限体系又是在第二种权限体系上进行优化的,增加了用户与岗位的关联关系,示意图如下:

用户-组织-岗位-角色-权限

增加岗位有以下几点好处:

1、识别用户的主要身份。一个人可能身兼多职(多个角色),但是他的主要职能是固定的,那怎么告诉系统用户的主要职能是什么呢?答案就是:通过岗位!拿上面的小马哥举例:小马哥虽然身兼经理和财务两种身份,但他的本职工作是“经理”,因此,他的系统岗位应该“经理”。当他登录时,系统会识别他的身份为“经理”,只不过这个“经理”刚好兼具了其他岗位的职能而已;

2、通过“组织-岗位”关联,快速甄别用户岗位。公司在不断地发展的过程中,系统的用户角色也会不断增加,当角色达到一定数量以后,管理员每新增一个用户都要花相当的时间去寻找角色。引入岗位后,可将组织和岗位、岗位和角色提前进行关联,配置账号时,管理员只要选定组织,系统就给出与该组织关联的岗位,而这些岗位,又是提前关联好角色的,选择起来,既方便又高效!

相关文章

  • RBAC模型设计

    一、什么是RBAC模型 RBAC(Role-Based Access Control)即:基于角色的权限控制。通过...

  • 权限管理

    基本两种权限模型 ALC 模型 根据对资源的访问权限,进行控制的一种模型 RBAC 模型 (zizaco/entr...

  • RBAC模型概述

    什么是RBAC 注意不是RABC,手抖容易打错。 RBAC(基于角色的权限控制)模型是为了解决系统中的权限管理问题...

  • 权限控制RBAC模型

    一、什么是RBAC 权限系统提的最多的就是RBAC(Role-Base Access Control基于角色的访问...

  • 权限管理

    1.权限模型 迄今为止最为普及的权限设计模型是RBAC模型,基于角色的访问控制(Role-Based Access...

  • Access Control 权限访问控制:DAC/MAC/RB

    Access Control 权限访问控制模型:DAC/MAC/RBAC/ABAC1,DAC 自主访问控制(DAC...

  • 那些年我们一起优化的SQL

    这篇文章介绍下网关层如何集成RBAC权限模型进行认证鉴权,文章目录如下: 什么是RBAC权限模型? RBAC(Ro...

  • RBAC权限控制

    RBAC权限控制 RBAC: Role Based Access Controller ,即基于角色的访问权限...

  • 白话权限体系的设计:当传统的RBAC“遭遇”组织和岗位

    传统RBAC与现实的距离 传统的RBAC(基于角色的访问权限控制)是一个经典的权限管理模型,基本原理是不直接对系统...

  • 权限系统模型

    迄今为止最为普及的权限设计模型是RBAC模型,基于角色的访问控制(Role-Based Access Contro...

网友评论

    本文标题:权限控制RBAC模型

    本文链接:https://www.haomeiwen.com/subject/prrbphtx.html