第1章 RBAC概述与核心术语
1.1 RBAC模型定义
RBAC(Role‑Based Access Control,基于角色的访问控制)是一种将权限授予角色、再将角色授予用户的间接授权模型。其核心思想是在用户与权限之间引入角色这一中间层,实现权限管理的解耦与复用。
传统访问控制(如DAC、MAC)直接为用户分配权限,当用户规模增大时管理成本急剧上升。RBAC通过角色将用户与权限分离:用户关联角色,角色关联权限,权限变更只需调整角色,无需逐个修改用户。
定义要点:RBAC是一种“用户 → 角色 → 权限”三层映射的访问控制策略,支持最小权限原则与职责分离。
1.2 核心术语详解
RBAC模型包含四个基础术语,下表从定义、英文、角色和示例四个维度进行说明:
| 术语 | 英文 | 定义 | 示例 |
|---|---|---|---|
| 用户 | User | 系统访问的独立主体,可以是人、服务账号或设备 | 张三(员工工号 1001) |
| 角色 | Role | 权限的集合,是授权的最小逻辑单元 | “运营编辑”“系统管理员” |
| 权限 | Permission | 对某个资源执行特定操作的许可 | “创建文章”“删除用户” |
| 会话 | Session | 用户与系统之间的一次交互上下文,用户通过会话激活所拥有的角色 | 用户登录后产生的 token 会话 |
四个术语间的关系可概括为:用户建立会话,会话激活角色,角色拥有权限。一个用户可拥有多个角色,一个角色可被多个用户共享,角色与权限之间是多对多的映射关系。
理解关键:会话是RBAC区别于其他模型的重要概念。用户必须通过会话来激活角色,未激活的角色不产生实际权限,这为动态权限控制提供了基础。
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在可管理性与规模化方面具有显著优势,已成为现代企业权限系统的事实标准。