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