RBAC模型设计

作者: 栋哥哥darre_li | 来源:发表于2019-11-29 15:34 被阅读0次

    一、什么是RBAC模型

    RBAC(Role-Based Access Control)即:基于角色的权限控制。通过角色关联用户,角色关联权限的方式间接赋予用户权限。

    二、RBAC模型的分类

    RBAC模型可以分为:RBAC0、RBAC1、RBAC2、RBAC3 四种。

    1、RBAC0模型

    最简单的用户、角色、权限模型。这里面又包含了2种:

    用户和角色是多对一关系,即:一个用户只充当一种角色,一种角色可以有多个用户担当。

    用户和角色是多对多关系,即:一个用户可同时充当多种角色,一种角色可以有多个用户担当。

    2、RBAC1模型

    相对于RBAC0模型,增加了子角色,引入了继承概念,即子角色可以继承父角色的所有权限。

    3、RBAC2模型

    基于RBAC0模型,增加了对角色的一些限制:角色互斥、基数约束、先决条件角色等。

    角色互斥:同一用户不能分配到一组互斥角色集合中的多个角色,互斥角色是指权限互相制约的两个角色。案例:财务系统中一个用户不能同时被指派给会计角色和审计员角色。

    基数约束:一个角色被分配的用户数量受限,它指的是有多少用户能拥有这个角色。例如:一个角色专门为公司CEO创建的,那这个角色的数量是有限的。

    先决条件角色:指要想获得较高的权限,要首先拥有低一级的权限。例如:先有副总经理权限,才能有总经理权限。

    运行时互斥:例如,允许一个用户具有两个角色的成员资格,但在运行中不可同时激活这两个角色。

    4、RBAC3模型

    称为统一模型,它包含了RBAC1和RBAC2,利用传递性,也把RBAC0包括在内,综合了RBAC0、RBAC1和RBAC2的所有特点。

    三、什么是权限

    1、页面权限:

    所有系统都是由一个个的页面组成,页面再组成模块,用户是否能看到这个页面的菜单、是否能进入这个页面就称为页面权限。

    如下图:

    客户列表、客户黑名单、客户审批页面组成了客户管理这个模块。对于普通用户,不能进行审批操作,即无客户审批页面权限,在他的账号登录后侧边导航栏只显示客户列表、客户黑名单两个菜单。

    2、操作权限

    用户凡是在操作系统中的任何动作、交互都是操作权限,如增删改查等。

    3、数据权限:

    一般业务管理系统,都有数据私密性的要求:哪些人可以看到哪些数据,不可以看到哪些数据。

    简单举个例子:某系统中有销售部门,销售专员负责推销商品,销售主管负责管理销售专员日常工作,经理负责组织管理销售主管作业。

    如下图:

    按照实际理解,‘销售专员张三’登录时,只能看到自己负责的数据;销售主管2登录时,能看到他所领导的所有业务员负责的数据,但看不到其他团队业务员负责的数据。

    要实现数据权限有多种方式:

    1.   可以利用RBAC1模型,通过角色分级来实现。

    2.  在‘用户-角色-权限’的基础上,增加用户与组织的关联关系,用组织决定用户的数据权限。

    具体如何做呢?

    组织层级划分:

    ②数据可视权限规则制定:

    上级组织只能看到下级组织员工负责的数据,而不能看到其他平级组织及其下级组织的员工数据等。

    相关文章

      网友评论

        本文标题:RBAC模型设计

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