概述
授权模型一旦与实现和实际分配脱节,就会同时出现越权与漏权。把角色、权限与预期策略写成可评审的文档,测试最小权限、跨租户与管理员路径等边界,审查实际分配中的权限蔓延,再据此调整,可让模型与事实重新对齐。
关键步骤
- 记录角色、权限与预期策略。
- 测试边界:最小权限角色、跨租户访问、管理员路径。
- 审查实际分配以发现权限蔓延。
- 调整角色与测试以闭合缺口。
验证
- 故意移除检查时边界测试会失败。
- 没有用户拥有模型无法解释的权限。
- 跨租户访问被拒。
- 角色目录版本更新。
决策点
对象级与租户级规则需 RBAC 结合属性条件,纯 RBAC 无法表达归属;角色变更应由具名审批人完成并分离职责。
适用范围
本条目围绕「授权模型评审工作流」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。
// boundary test: user in another tenant must not read this object
const res = await api.get(`/orders/${otherTenantOrder}`, asTenantA);
expect(res.status).toBe(404);