You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google认证RBAC配置:如何让令牌返回用户组与角色信息

问题核心说明

首先纠正个概念偏差:你提到应用接收的JSON Web Key是公钥验证材料,实际承载用户身份信息的是签名后的JWT令牌。
Google原生OIDC实现本身不支持直接在返回的JWT中注入自定义用户组、角色声明,你找不到对应配置项不是操作遗漏,是这部分能力本来就没开放,和Keycloak这类自托管IdP的产品逻辑完全不一样。
你之前申请各类scope后授权页有变化但令牌无对应信息,是因为Google的组、角色相关scope仅授予对应API的调用权限,不会自动把相关字段写入OIDC流程返回的令牌中,不属于配置错误。

可落地的实现方案

方案1:Google Workspace 租户场景(企业/团队版账号)

如果你的用户全是同租户下的Google Workspace账号,可以按如下流程实现:

  • 在Google Cloud控制台为你的OIDC客户端开通Admin SDK API
  • 授权流程中追加申请 https://www.googleapis.com/auth/admin.directory.group.readonly 只读组权限scope
  • 用户完成OIDC认证拿到令牌中的sub(用户唯一标识)后,调用Admin SDK的组列表接口,查询该用户所属的全部用户组
  • 在应用侧基于查询到的组信息做权限映射,匹配管理员/只读权限

注意:普通@gmail.com结尾的个人Google账号没有目录服务能力,该方案不适用。

方案2:身份代理层映射(兼容你现有Keycloak逻辑,推荐)

不需要修改你已经在应用侧配好的权限映射规则,直接复用你现有Keycloak能力即可:

  • 在Keycloak中添加Google作为身份提供商,完成OIDC对接配置
  • 在Keycloak侧配置身份提供者映射规则:用户通过Google登录后,可选择拉取Google Workspace组信息,或直接在Keycloak中为Google身份源的用户按规则分配角色、组
  • 应用仍然对接Keycloak作为OIDC提供商,Keycloak会按你之前的配置,把角色、组信息写入返回给应用的JWT中,和你之前用Keycloak本地账号的体验完全一致

这个方案同时支持个人Google账号、Workspace账号,角色和组的映射规则完全自主可控,不受Google原生OIDC的声明限制。

内容的提问来源于stack exchange,提问作者JohnEye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 23:18:33