NestJS 权限系统重构:从 RBAC 到策略引擎
针对租户组织复杂、权限变更频繁的问题,文章给出可维护的权限抽象方案。
1. 现状痛点
旧系统仅基于角色控制接口访问,无法表达“同角色不同数据范围”的细粒度授权,权限冲突与误配问题频发。
2. 架构调整
- 保留 RBAC 做基础权限门禁。
- 新增策略层定义资源条件、组织范围与操作约束。
- 将鉴权链路拆分为身份校验、角色判定、策略执行三个阶段。
- 为高风险接口增加审计日志和拒绝原因追踪。
3. 落地过程
先双轨运行新旧权限服务,对关键接口做灰度比对。策略配置统一入库并提供可回滚版本,降低变更风险。
4. 效果评估
- 权限配置工单下降 46%
- 越权类线上事故连续两个季度为 0
- 新业务接入权限模型平均耗时减少 35%
5. 经验总结
权限模型的关键不是“设计多复杂”,而是“是否可观测、可测试、可回滚”。上线前必须准备完整回归矩阵。