【Spring】RBAC模型

1、定义

  • RBAC(Role-Based Access Control,基于角色的访问控制)是一种流行的访问控制策略。
  • 通过将权限分配给角色,然后将角色分配给用户或用户组,来实现对资源的访问控制。
  • 这种方法提供了更灵活、可管理和可扩展的访问控制机制。

2、核心概念

  1. 用户(User):系统中的个体,可以是人、软件代理或其他系统。
  2. 角色(Role):一组权限的集合,通常与特定的职位或职责相关联。例如,一个“经理”角色可能具有查看报告、批准请求和分配任务的权限。
  3. 权限(Permission):对系统资源(如文件、数据库记录、Web 页面等)的访问和操作能力。权限可以是读、写、执行等。
  4. 会话(Session):用户与系统进行交互的一段时间。在会话期间,用户的角色和权限是有效的。
  5. 继承(Inheritance):角色之间可以存在继承关系,即一个角色可以继承另一个角色的所有权限。这允许创建具有层次结构的角色,如“高级经理”继承“经理”的权限。

举个例子:登录功能的用户-角色-权限关系

图片来源:RBAC角色权限设计-阿里云开发者社区

3、RBAC模型四级分级

3.1 RBAC0(基础模型)

  • 描述:RBAC0是RBAC模型的核心和基础,它定义了用户、角色和权限之间的基本关系。
  • 组成
    • 用户(Users):系统中的个体,如员工、客户等。
    • 角色(Roles):代表一组权限的集合,通常与组织的职位或职责相对应。
    • 权限(Permissions):对系统资源的访问和操作权限。
  • 特点
    • 用户和角色之间是多对多的关系,即一个用户可以有多个角色,一个角色也可以被多个用户所拥有。
    • 角色和权限之间也是多对多的关系,即一个角色可以有多个权限,一个权限也可以被多个角色所拥有。

3.2 RBAC1(角色分层模型)

  • 描述:RBAC1在RBAC0的基础上引入了角色层次的概念,允许角色之间存在继承关系。
  • 组成
    • 除了RBAC0的组成外,还引入了角色继承的概念。
  • 特点
    • 子角色可以继承父角色的所有权限,同时也可以在父角色的基础上增加或删除权限。
    • 角色继承关系通常反映了组织中的职位层级关系。

3.3 RBAC2(角色限制模型)

  • 描述:RBAC2在RBAC0的基础上增加了对角色和权限的约束,以支持更复杂的访问控制需求。
  • 组成
    • 除了RBAC0的组成外,还引入了以下约束:
      • 互斥角色:一个用户不能同时拥有两个或多个互斥关系的角色。
      • 基数约束:限制一个用户可拥有的角色数量,或一个角色可被分配的用户数量。
      • 先决条件约束:用户获得高级角色之前必须先拥有低级角色。
  • 特点
    • 通过引入约束,RBAC2能够更好地支持职责分离和权限管理的要求。

3.4 RBAC3(统一模型)

  • 描述:RBAC3是RBAC1和RBAC2的整合,同时包含了角色分层和角色限制的特性。
  • 组成
    • 包括RBAC1和RBAC2的所有组成和特性。
  • 特点
    • RBAC3是RBAC模型中最全面、最复杂的级别,适用于需要高度灵活性和复杂访问控制策略的场景。
    • 通过角色分层和角色限制的结合,RBAC3能够支持更精细的权限管理和访问控制需求。

4、工作流程

  图片来源:RBAC——基于角色权限的模型-CSDN博客

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值