美文网首页产品汪笔记
基于RBAC的权限管理

基于RBAC的权限管理

作者: 霸王花发发 | 来源:发表于2019-07-16 16:11 被阅读0次

    RBAC简介

    RBAC是什么:

    是Role—Based—Access—Control的缩写,基于角色的访问控制。

    通过将权限赋给角色,再将角色赋给用户。

    为什么会有RBAC:

    已知传统的访问控制是将对系统的各种操作权限直接赋给用户,这种情况可以适用于团队不大的情况,但是随着团队的扩张,系统的功能的丰富,对权限管理的操作会越来越复杂。

    举个例子,我们项目团队原来只有5个人,那这5个人的访问控制直接由后台操作即可。随着人数增加,我们在后台增加了权限管理,创建用户的时候直接赋予权限。但是,当我们团队扩张到15人之后,对权限控制开始出现麻烦了,第一种情况,每次有新人来的时候需要去修改新增权限;第二种情况,每次后台有新增的功能,需要对相关的用户进行添加。有时候看得管理员眼花缭乱,于是基于角色的权限控制诞生了。

    使用这种方式有什么好处?

    1.扩展性

    在团队中,有多个人拥有同一种权限的时候,不必重复添加,只需要将这种权限赋给角色即可,减少重复工作。

    2.提高调整效率

    使用传统方式调整,可能会漏掉或者错给权限,基于角色,只需要确定每一种角色的权限即可,每次更改用户的角色就可以实现职位对接。

    RBAC模型的分类

    (1)RBAC0

    基础的用户、角色、权限模型。

    两种情况:

    多对一:一个用户只充当一个角色,一个角色可以赋给多个用户

    多对多:一个用户可以拥有多个角色,一个角色可以赋给多个用户

    适用场景:系统功能较单一、适用人员不多、兼岗情况较少,权限较为清晰。

    (2)RBAC1

    引入继承概念,角色下面有子角色,权限下面有子权限;

    子角色的权限不可高于父角色。

    适用场景:责权体系呈树状,如:销售总监——销售主管——销售经理——销售人员。

    (3)RBAC2

    基于RBAC0的模式,增加了角色互斥、先决条件角色、基数约束、运行时互斥等。

    角色互斥:一个用户不能分配到一组互斥的角色中的多个角色。

    先决条件角色:想要获得更高权限的角色,必须先获取这个级别下一级的角色。

    基数约束:一个角色可以被分配的用户数量有限。

    运行时互斥:一个用户拥有多个角色,但是在运行时,不可以同时使用这两种角色的权限。

    (4)RBAC3

    统一模型,综合了RBAC0、RBAC1、RBAC2.

    案例:

    本次我做的是一个RBAC0模型的权限管理,用于管理系统后台的权限分配问题。

    第一步,设想基本流程。

    ,基本流程

    第二步,开始作图

    项目结构图:

    项目结构图

    角色管理:

    角色管理

    创建角色:

    创建角色

    在看了后台的功能后,改变了权限分配的展现方式(因为是真实后台,所以只展示一部分):

    查看人员:

    查看人员

    用户管理:

    用户管理

    新增管理员:

    新增管理员

    编辑:

    编辑

    修改密码:

    修改密码

    收工!

    相关文章

      网友评论

        本文标题:基于RBAC的权限管理

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