一、最成熟、最通用的 RBAC 模型(企业标准)

核心五张表(所有系统都长这样)

  1. sys_user(用户表)
  2. sys_role(角色表)
  3. sys_user_role(用户 ↔ 角色 关联)
  4. sys_permission(权限 / 资源表:菜单、按钮、接口)
  5. sys_role_permission(角色 ↔ 权限 关联)

扩展(企业级必加)

  1. sys_menu(菜单表,前端控制导航)
  2. sys_dept(部门表,做数据权限)
  3. sys_tenant(租户表,多租户)

二、成熟的集中式 RBAC 解决方案(4 种大厂都在用)

方案 1:统一权限中心服务(微服务首选)

最成熟、最推荐、企业中台标配

  • 独立微服务:permission-center
  • 提供统一接口:
    • 登录 / 登出
    • 获取用户角色
    • 获取用户权限
    • 校验接口权限
    • 获取用户菜单

所有服务(Java、Python、Go)只调用它,不自己存权限

优点:

  • 真正集中,一处修改,全局生效
  • 支持接口权限、按钮权限、菜单权限、数据权限
  • 微服务架构最标准

方案 2:统一认证授权中心(Keycloak / Auth0 开源成熟方案)

业界最成熟的开源集中 RBAC 方案

  • Keycloak(红帽出品,企业级、免费)
  • 内置完整 RBAC
  • 支持:
    • SSO 单点登录
    • OAuth2.0 / OIDC / JWT
    • 集中用户、角色、权限
    • 多客户端、多系统接入

Java、Python、前端、小程序、第三方系统都能接。

优点:

  • 不用自己开发权限系统
  • 成熟、安全、经过大规模验证
  • 微服务混合生态最优解

## 方案 3:网关统一鉴权 + 集中 RBAC(微服务标配)架构最干净、业务服务零权限代码

架构:

  1. 网关(Spring Cloud Gateway / APISIX / Kong)
  2. 统一权限中心(RBAC 数据)
  3. 所有请求先过网关鉴权
  4. 鉴权通过才转发到后端服务

优点:

  • 后端服务完全不用写权限判断
  • 集中管控、易审计、易扩容

方案 4:成熟框架自带 RBAC(直接拿来用)

这些都是生产级、成熟稳定的:

Java 生态

  • Spring Security + RBAC
  • Sa-Token(国内最流行轻量级权限框架)
  • Apache Shiro
  • Ruoyi / Jeecg / Blade 等后台框架(内置完整集中 RBAC)

Python 生态

  • Django Permission
  • FastAPI + Casbin(强大的集中 RBAC)
  • FastAPI + 自定义 JWT + 中间件(轻量集中 RBAC)

前端通用

  • Vue/React 动态菜单、按钮权限控制(基于后端返回的权限码)

三、成熟 RBAC 必须具备的能力(企业级标准)

菜单权限:控制左侧导航显示哪些菜单✅ 按钮权限:新增、删除、编辑、导入、导出✅ 接口权限:API 级拦截,防止非法调用✅ 数据权限

  • 仅看自己
  • 仅看本部门
  • 全部数据
  • 自定义数据权限✅ 集中管理:用户、角色、权限在一个后台统一维护✅ 统一登录:SSO 单点登录✅ 日志审计:谁在什么时间改了什么权限

四、架构师给你的最终结论

RBAC 是最成熟、最稳定、最通用的集中权限模型,没有之一。

你有三种落地选择:

  1. 最快落地:用 Keycloak(直接开箱即用)
  2. 微服务中台:做一个独立权限中心服务
  3. 快速开发:使用 Ruoyi、Sa-Token、Django 等自带 RBAC 的框架
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐