SuperAPI AI 工具集

rbac-implementation

安全与审计

查看项目

更新于 10-15 22:19

技能介绍

用途:实现或审计基于角色的访问控制(RBAC),适用于角色、权限、管理员限制、路由保护、权限检查等需求。核心模型为“用户→角色→权限→资源+动作”,支持扁平角色、基于权限(角色映射权限集)和层级角色三种方式,建议非简单应用采用基于权限的方案。

主要能力:提供数据库 schema 设计(扁平角色用 users.role 字段;权限方案用 roles、permissions、role_permissions 表);建议先编写权限矩阵作为唯一事实来源;可将权限嵌入 JWT(登录时获取,RS256 签名,15 分钟过期),权衡是刷新前权限略有滞后,需即时撤销则每次请求查库。

使用方式:服务端提供 requireAuth、requireRole、requirePermission 中间件,路由级显式门控,优先用权限检查而非角色名检查;数据层按 org_id/owner_id 限定查询范围作为第二道防线;客户端权限检查仅用于隐藏 UI,不构成安全边界。角色分配端点仅限管理员,用户资料更新需字段白名单,用 VALID_ROLES 校验。

适用场景:Web 应用的角色与权限管理、管理后台限制、API 路由保护、多租户数据隔离。

限制与注意:客户端检查可被 curl 绕过;避免仅路由中间件而无数据归属检查;避免客户端可写的角色来源;超级管理员不应跳过检查;权限矩阵需文档化。审计清单涵盖权限矩阵、路由门控、JWT 权限来源、数据范围、角色分配安全、客户端逻辑、令牌刷新与角色值校验。参考文件含 patterns.md 与 stack-examples.md(Node/Express+Prisma、Python/FastAPI 完整示例)。