第1章 RBAC概述与核心术语

1.1 RBAC模型定义

RBAC(Role‑Based Access Control,基于角色的访问控制)是一种将权限授予角色、再将角色授予用户的间接授权模型。其核心思想是在用户与权限之间引入角色这一中间层,实现权限管理的解耦与复用。

传统访问控制(如DAC、MAC)直接为用户分配权限,当用户规模增大时管理成本急剧上升。RBAC通过角色将用户与权限分离:用户关联角色,角色关联权限,权限变更只需调整角色,无需逐个修改用户。

定义要点:RBAC是一种“用户 → 角色 → 权限”三层映射的访问控制策略,支持最小权限原则与职责分离。

1.2 核心术语详解

RBAC模型包含四个基础术语,下表从定义、英文、角色和示例四个维度进行说明:

术语 英文 定义 示例
用户 User 系统访问的独立主体,可以是人、服务账号或设备 张三(员工工号 1001)
角色 Role 权限的集合,是授权的最小逻辑单元 “运营编辑”“系统管理员”
权限 Permission 对某个资源执行特定操作的许可 “创建文章”“删除用户”
会话 Session 用户与系统之间的一次交互上下文,用户通过会话激活所拥有的角色 用户登录后产生的 token 会话

四个术语间的关系可概括为:用户建立会话,会话激活角色,角色拥有权限。一个用户可拥有多个角色,一个角色可被多个用户共享,角色与权限之间是多对多的映射关系。

理解关键:会话是RBAC区别于其他模型的重要概念。用户必须通过会话来激活角色,未激活的角色不产生实际权限,这为动态权限控制提供了基础。
RBAC核心概念关系图 身份域 会话与角色域 权限域 用户 (User) 会话 (Session) 角色 (Role) 权限 (Permission) 角色层级 Role Hierarchy 约束 Constraints 核心关系:用户 → 会话 → 角色 → 权限 角色层级支持权限继承;约束用于控制角色分配与激活(如互斥角色、基数限制)。

1.3 模型发展历史与NIST标准

RBAC的概念最早由David Ferraiolo和Richard Kuhn在1992年提出,随后经历了从理论到标准的演进:

  • 1992年 – Ferraiolo & Kuhn 在NIST提出RBAC基础框架。
  • 1996年 – Sandhu等人提出RBAC96模型族,包含RBAC0~RBAC3四个层次。
  • 2004年 – NIST发布ANSI INCITS 359-2004标准,统一RBAC参考模型。
  • 2012年至今 – RBAC被广泛集成到Spring Security、AWS IAM、Kubernetes RBAC等企业级系统中。

NIST标准将RBAC划分为四个递增层次,每个层次在上一层次基础上增加能力:

模型层次 全称 核心特征 适用场景
RBAC0 Core RBAC 用户-角色-权限 三层映射 + 会话管理 中小型系统基础权限控制
RBAC1 Hierarchical RBAC 在RBAC0基础上引入角色层级,子角色继承父角色权限 组织层级分明的企业应用
RBAC2 Constrained RBAC 在RBAC0基础上增加约束规则(互斥角色、基数限制、先决条件) 金融、医疗等合规性要求高的系统
RBAC3 Combined RBAC 同时支持角色层级与约束规则,是RBAC1与RBAC2的合并 大型企业级统一权限平台
常见误解:RBAC3 并不是 RBAC1 + RBAC2 的简单叠加,而是需要在模型层面同时处理层级继承与约束冲突(如互斥角色不能出现在同一继承链上)。工程实现时需额外校验。

1.4 RBAC 与 AC / DAC / MAC 的对比

为帮助理解RBAC的定位,下表对比了四种主流访问控制模型:

模型 授权主体 策略特征 管理复杂度 典型场景
DAC 资源所有者 所有者自行决定谁可访问资源 低(个人) 文件系统(Linux chmod)
MAC 系统安全员 基于标签与安全级别强制访问 高(全局) 军事、政府机密系统
ACL 管理员 直接为每个资源列出可访问的用户/组 中(资源级) 网络设备、防火墙规则
RBAC 管理员 通过角色间接授权,策略与用户解耦 中低(角色级) 企业应用、云平台、SaaS

RBAC相较DAC/MAC/ACL的核心优势在于:权限管理成本不随用户数线性增长。新增用户只需分配角色,权限变更只需修改角色配置,无需触及每个用户或每个资源。

1.5 本章小结

  • RBAC通过用户 → 角色 → 权限三层结构解耦授权逻辑。
  • 四个核心术语——用户、角色、权限、会话——构成了RBAC的语义基础,其中会话是实现动态角色激活的关键。
  • NIST标准定义了RBAC0~RBAC3四个层次,从基础映射到层级与约束,工程中常从RBAC0起步逐步演进。
  • 与DAC、MAC、ACL相比,RBAC在可管理性与规模化方面具有显著优势,已成为现代企业权限系统的事实标准。