Keycloak传token获取用户全部分组的GET请求端点是哪个
Keycloak 18.0.2 版本获取用户所属全部分组的API方案
直接调用官方管理员接口即可,不需要额外二次递归处理数据:
- 请求方法:
GET - 默认部署配置下的接口路径:
http(s)://你的Keycloak服务地址/auth/admin/realms/{目标realm名称}/users/{目标用户ID}/groups
调用注意事项
- 调用前需要先获取具备权限的管理员Access Token,发起请求的身份需要拥有对应realm下的
view-users权限,否则会返回403禁止访问错误。 - 路径参数里的
{目标用户ID}是Keycloak为用户生成的UUID格式唯一标识,不是用户名,不要传错参数。
常用可选查询参数
max:单页返回的最大分组条数,默认值通常为100,如果用户所属分组数量较多建议手动传更大的值(比如1000),避免结果被截断拿不全。first:分页偏移量,从0开始,分组数量超过max值时用这个参数做分页查询。search:字符串类型,传值后会按分组名称做模糊匹配,过滤返回结果。
请求示例
# 替换对应占位符即可直接调用 curl -X GET "https://你的keycloak域名/auth/admin/realms/my-realm/users/xxxx-xxxx-xxxx-xxxx/groups?max=1000" \ -H "Authorization: Bearer 你的管理员访问令牌"
注意:Keycloak 18.0.2 默认API前缀带
/auth,如果你部署时修改过上下文路径,把路径里的/auth替换成你实际配置的前缀即可。接口返回的结果是JSON数组,会包含用户直接加入、以及通过子组继承关联的所有分组信息,不需要额外递归查询上级分组,直接遍历数组就能拿到全量归属分组数据。
不要混淆调用GET /{realm}/groups接口,这个接口是查询整个realm下全部分组列表的,不是指定用户的所属分组。
内容的提问来源于stack exchange,提问作者Illyrian
相关产品推荐
相关产品推荐

