权限设计,设计模型分析(DAC,MAC,RBAC,ABAC) 之 RBAC

RBAC(基于角色的访问控制)模型通过角色关联用户和权限,简化权限管理,适用于中小型组织。RBAC分为RBAC0、RBAC1、RBAC2、RBAC3四种,分别在基础、角色分层和约束方面进行扩展。ABAC(基于属性的访问控制)则更为灵活,根据用户、系统、环境等多种属性动态控制访问权限,适用于大型组织和复杂场景,提供细粒度的权限管理。
摘要由CSDN通过智能技术生成

一、什么是RBAC模型

RBAC是Role-Based Access Control的缩写,意为:基于角色的权限控制。通过角色关联用户,角色关联权限的方式间接赋予用户权限。

如下图:

 为什么不直接给用户分配权限,还多此一举的增加角色这一环节呢?

        其实是可以直接给用户分配权限,只是直接给用户分配权限,少了一层关系,扩展性弱了许多,适合那些用户数量、角色类型少的平台。

对于通常的系统,比如:存在多个用户拥有相同的权限,在分配的时候就要分别为这几个用户指定相同的权限,修改时也要为这几个用户的权限进行一一修改。有了角色后,我们只需要为该角色制定好权限后,将相同权限的用户都指定为同一个角色即可,便于权限管理。

对于批量的用户权限调整,只需调整用户关联的角色权限,无需对每一个用户都进行权限调整,既大幅提升权限调整的效率,又降低了漏调权限的概率。

二、RBAC模型的分类

RBAC模型可以分为:RBAC0、RBAC1、RBAC2、RBAC3 四种。其中RBAC0是基础,也是最简单的,相当于底层逻辑,RBAC1、RBAC2、RBAC3都是以RBAC0为基础的升级。

一般情况下,使用RBAC0模型就可以满足常规的权限管理系统设计了。

2.1 RBAC0模型

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

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

那么,什么时候该使用多对一的权限体系,什么时候又该使用多对多的权限体系呢?

如果系统功能比较单一,使用人员较少,岗位权限相对清晰且确保不会出现兼岗的情况,此时可以考虑用多对一的权限体系。其余情况尽量使用多对多的权限体系,保证系统的可扩展性。如:张三既是行政,也负责财务工作,那张三就同时拥有行政和财务两个角色的权限。

2.2 RBAC1模型

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

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值