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

如何通过RESTful API获取Keycloak中用户的自定义属性?

获取用户自定义属性的方法

要从OpenID Connect的userinfo接口获取用户自定义属性,需在Keycloak后台完成属性映射配置,并确保请求令牌包含正确权限,具体步骤如下:

1. 配置用户属性到UserInfo的映射

  • 登录Keycloak管理控制台,进入目标Realm
  • 进入「客户端」页面,选择你正在使用的客户端
  • 切换到「映射器」标签,点击「创建」按钮
  • 映射器类型选择「用户属性」,填写以下信息:
    • 名称:自定义标识(如「自定义属性映射」)
    • 用户属性:后台用户配置中自定义属性的键名(例如my_custom_attr)
    • Token Claim Name:返回结果中要显示的字段名(可与用户属性键名一致)
    • 勾选「添加到用户信息」,按需勾选「添加到ID令牌」
    • 保存配置

2. 获取包含正确Scope的Access Token

在获取Access Token时,必须包含profile或自定义关联的Scope(如果映射器指定了特定Scope),示例请求:

curl \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=password" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "username=foo@example.com" \
  -d "password=USER_PASSWORD" \
  -d "scope=openid profile" \
  'https://$URL/auth/realms/$REALM/protocol/openid-connect/token'

3. 重新调用UserInfo接口

使用新生成的Access Token执行原请求,返回的JSON数据中就会包含你配置的自定义属性字段:

curl \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $NEW_ACCESS_TOKEN" \
  'https://$URL/auth/realms/$REALM/protocol/openid-connect/userinfo'

内容的提问来源于stack exchange,提问作者Bob van Luijt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 05:39:53