如何通过Keycloak 19.x API列出服务账户用户?
批量列出Keycloak 19.x服务账户用户的方法
Keycloak 19.x没有直接批量获取所有服务账户用户的单一API,但可以通过组合两个接口实现需求:
步骤1:筛选启用了服务账户的客户端
首先调用客户端列表接口,通过clientCredentials=true参数过滤出所有开启服务账户的客户端:
GET /admin/realms/{realm}/clients?clientCredentials=true
请求返回的结果里,只需保留每个客户端的id字段即可。
步骤2:批量获取对应服务账户用户
对步骤1得到的每个客户端ID,调用以下接口获取其关联的服务账户用户:
GET /admin/realms/{realm}/clients/{client-id}/service-account-user
从返回的用户数据中,直接提取id和username字段就是你需要的信息。
注意事项
- 调用这些接口需要拥有
realm-admin角色权限,确保请求携带有效的管理员令牌。 - 服务账户用户的用户名默认格式为
service-account-{client-id},也可以通过这个特征在普通用户列表接口中过滤,但这种方式不如组合接口可靠——因为用户名可能被自定义修改。
内容的提问来源于stack exchange,提问作者Pawel Zieminski
相关产品推荐
相关产品推荐

