2. RBAC 基础概念:用户、角色、权限、会话、约束的语义与关系

RBAC 模型的核心由五个基础概念构成——用户(User)、角色(Role)、权限(Permission)、会话(Session)和约束(Constraint)。这五个概念共同定义了“谁在什么条件下能对什么资源执行什么操作”的完整语义。本章从架构视角拆解每个概念的边界、分层职责、交互链路及落地要点,为后续模型设计奠定语义基础。

2.1 概念边界:每个元素的外延与内涵

概念 语义定义 外延边界(包含什么) 内涵约束(不含什么)
用户 系统可识别的主体,可独立发起操作请求 自然人账号、服务账号、API 客户端、设备身份 用户不直接拥有权限;用户不属于角色
角色 权限的逻辑集合,授权的最小策略单元 岗位角色(如“财务审核员”)、项目角色、临时角色 角色不直接映射到具体人员;角色不包含会话状态
权限 对受保护资源的操作许可 读/写/执行操作、API 端点访问、数据域范围 权限不携带用户上下文;权限不包含授权决策逻辑
会话 用户登录后建立的临时上下文,管理角色激活状态 登录令牌、Web 会话、API 密钥上下文、SSO Ticket 会话不存储权限;会话不持久化角色分配
约束 控制角色分配与角色激活的策略规则 职责分离(SoD)、基数限制、前提条件、时间窗口 约束不定义具体权限;约束不直接绑定用户
边界要点: 用户是主体,角色是策略中介,权限是操作许可,会话是运行时上下文,约束是规则阀门。五个概念各司其职,不可互相替代。

2.2 分层结构:概念间的依赖与层级

RBAC 概念遵循三层依赖结构,底层为上层提供能力,上层调用底层服务:

  1. 持久层(静态定义):用户、角色、权限及其分配关系(用户-角色分配 URA、角色-权限分配 RPA)。数据存储在持久化介质中,变更频率低。
  2. 运行时层(动态激活):会话承载用户登录后的角色激活状态,每次请求在会话上下文中判断已激活的角色集。生命周期短,与用户登录态绑定。
  3. 策略层(规则约束):约束横跨持久层与运行时层,对 URA 和角色激活施加前提条件、互斥规则和基数限制。策略层不存储数据,仅提供判决逻辑。

下图展示了五个概念之间的核心关系与数据流向:

RBAC 核心概念关系图 用户 User 角色 Role 权限 Permission 会话 Session 约束 Constraint 分配 拥有 激活 ← 上一章 📖 返回目录 下一章 →