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

如何通过Keycloak REST API在/userinfo响应中获取用户组信息

解决Keycloak REST API调用/userinfo无法获取groups的问题

1. 调整Token请求的Scope参数

你当前的curl请求仅使用openid scope,而keycloak-js适配器可能默认请求了额外scope(如profile)来获取用户组信息。修改curl命令,添加必要的scope:

curl -d 'client_id=myclient' -d 'username=username' -d 'password=password' -d 'grant_type=password' -d 'scope=openid profile' -d 'client_secret=xxxxxxxxxxxxxxxxxxxxxxxxx' 'http://192.168.43.29:8080/realms/aurcc/protocol/openid-connect/token'

2. 配置Keycloak客户端的协议映射器

Keycloak默认不会自动将用户组返回至/userinfo接口,需手动添加映射器:

  • 登录Keycloak管理控制台,切换到目标Realm(aurcc)
  • 进入「客户端」页面,找到myclient并进入详情页
  • 切换到「映射器」标签页,点击「创建」按钮
  • 配置映射器参数:
    • 映射器类型选择「组」
    • 名称填写自定义标识(如user-groups)
    • Token Claim Name填写groups
    • Claim JSON Type选择JSON(返回数组格式)
    • 勾选「Add to userinfo」选项
    • 保存配置

3. 检查客户端的「Full Scope Allowed」设置

若上述调整无效,检查客户端权限配置:

  • 在myclient的「设置」标签页中,找到「Full Scope Allowed」选项
  • 将其设置为「On」,客户端会自动获取所有可用权限范围,无需手动指定scope

4. 验证Token内容

用JWT解析工具解码获取到的accessToken,确认其中是否包含groups声明:

  • 若Token中无groups,回到步骤2检查映射器配置
  • 若Token中有groups但/userinfo未返回,确保请求/userinfo时正确携带Token(请求头Authorization: Bearer <your-access-token>)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:25:27