1. 权限模型选型总览:RBAC与ABAC核心定义、适用范围、课程交付物

权限模型是现代软件架构中的信任边界。RBAC(Role-Based Access Control)和ABAC(Attribute-Based Access Control)是两种主流建模方案。本课程交付两份核心资产:选型方案(决策树+评分表)和架构蓝图(组件分层+数据流图)。本章划定二者的定义边界与适用场景。

1.1 核心定义

维度 RBAC(基于角色的访问控制) ABAC(基于属性的访问控制)
核心思想 权限通过角色绑定,用户与角色关联,角色与权限关联 权限通过策略引擎动态计算主体、资源、环境属性的布尔组合
授权判断 hasRole(user, "admin") → 允许 evaluate(attr(user), attr(resource), attr(context)) → 允许/拒绝
粒度 粗到中粒度(通常到功能级) 细粒度(可到行/列/字段/操作)
静态/动态 偏静态,角色变更低频 动态,属性变更实时生效

1.2 适用范围边界

决策边界原则:当用户、资源、环境三个维度中任意两个需要组合判断时,ABAC的复杂度开始优于RBAC。角色超过50个或权限规则超过200条时,RBAC维护成本急剧上升,应考虑ABAC。
  • RBAC 适用场景:企业后台管理、HRMS、ERP、CMS、运维工单系统——组织架构稳定、角色可预定义。
  • ABAC 适用场景:云资源访问控制、多租户SaaS、医疗影像共享、金融交易风控——属性组合复杂或需要上下文感知。
  • 混合模式:大多数生产系统采用RBAC为主体,在资源级接入ABAC扩展。本课程第24章专门分析混合架构。

1.3 课程交付物

  1. 选型方案(PDF + 决策表):
    • 组织特征评估矩阵(人员规模、变动频率、审计粒度)
    • 技术栈兼容性评分(现有IAM/SSO/RBAC中间件)
    • 成本与风险量化(开发人月、策略维护运维成本)
  2. 架构蓝图(DrawIO+组件说明):
    • 系统层级与信任边界(Layer / Trust Boundary)
    • 组件职责卡(Component Responsibility Card)
    • 数据流与控制流图(Data Flow / Control Flow)
    • 信任链路与策略决策点(PDP / PEP / PIP)
提示:本课程所有交付物均附带验收标准。第1章验收节点:你应能清晰说出RBAC/ABAC的核心定义差异,并画出它们各自的适用范围分组图(即下方SVG结构)。

1.4 选型总览框架图

下图展示RBAC与ABAC在系统架构中的位置边界、核心组件以及课程交付物的产出关系。箭头方向代表数据流或控制依赖,分组框体现分层与职责边界。

权限模型选型总览框架 RBAC 域(Role-Based) 用户-角色映射 角色-权限矩阵 适用:组织结构固定、角色数<50 授权元模型:S(Subject)- R(Role)- P(Permission) ABAC 域(Attribute-Based) 属性源(PIP) 策略决策点(PDP) 适用:多租户、动态属性、细粒度 授权元模型:主体属性 × 资源属性 × 环境属性 交付物A:选型方案 决策树+评分表+风险矩阵 交付物B:架构蓝图 分层图+组件职责+数据流 信任边界 互补交付 第1章核心交付:理解RBAC与ABAC的定义边界、适用场景与课程输出物 选型不是二选一,而是根据信任链路决定RBAC/ABAC的插入位置

1.5 风险点与落地起点

选型风险识别:
  • 过度设计:用户数<500且角色数<20时引入ABAC,策略空转、维护困难。
  • 角色爆炸:强行用RBAC覆盖细粒度权限,导致角色数>100,角色继承混乱。
  • 交付物空洞:未定义验收标准前撰写选型方案,导致方案无法落地。

落地第一步:请基于组织现状填写“权限模型特征评分表”(本课程附录A),获取RBAC/ABAC初始得分。该评分表将作为后续选型方案的输入基线。

# 特征评分表示例(简化字段)
{
  "user_count": 1200,
  "role_count": 18,
  "resource_types": 30,
  "attr_complexity": "中(部门+区域+时间)",
  "audit_requirement": "每操作记录"
}
# 输出:建议以RBAC为主,资源级扩展ABAC。