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

咨询:是否存在Keycloak API用于获取客户端角色下的用户?

获取Keycloak客户端角色下所有用户的API方案

Keycloak官方提供了Admin REST API来实现这个需求,这是获取客户端角色关联用户的标准方式,以下是具体实现步骤和细节:

核心API端点

要查询指定客户端角色下的所有用户,使用以下GET请求端点:

GET /admin/realms/{realm}/clients/{clientId}/roles/{roleName}/users

前置要求

调用该API必须使用具备Realm Admin或对应权限的服务账户令牌:

  • 需先创建一个启用了「服务账户」的客户端,并为其分配realm-admin角色(或更精细的权限,如query-users和view-clients);
  • 通过客户端凭证模式获取Admin API访问令牌。

具体操作步骤

1. 获取Admin API访问令牌

调用令牌端点获取权限凭证:

POST /realms/{realm}/protocol/openid-connect/token

请求参数(表单格式):

  • grant_type: client_credentials
  • client_id: 你的服务账户客户端ID
  • client_secret: 你的服务账户客户端密钥

响应中会返回access_token,后续API请求需携带该令牌。

2. 查询角色关联的用户

带上步骤1获取的令牌,调用角色用户查询接口:
请求头:

Authorization: Bearer {access_token}

可选参数(用于分页或过滤):

  • first: 分页起始索引(默认0)
  • max: 每页返回的用户数量(默认100)
  • search: 模糊搜索用户名/邮箱,缩小结果范围

辅助查询(可选)

如果你不知道目标客户端的ID或角色的具体信息,可以先通过以下API获取:

  • 根据客户端名称查询客户端ID:
    GET /admin/realms/{realm}/clients?clientId={clientName}
    
  • 列出指定客户端下的所有角色:
    GET /admin/realms/{realm}/clients/{clientId}/roles
    

注意事项

  • 普通用户的JWT令牌仅能获取自身的角色信息,无法查询其他用户的关联数据,必须使用具备管理权限的服务账户令牌;
  • API响应返回的是用户基础信息列表,如需获取用户的完整详情,可以结合GET /admin/realms/{realm}/users/{userId}接口单独查询。

内容的提问来源于stack exchange,提问作者BEGÜM Y

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 06:00:47