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

Keycloak如何获取指定角色映射的客户端范围列表?

解决方案:Keycloak获取角色关联的客户端范围及映射操作

1. 直接获取指定角色已映射的客户端范围

你可以使用Keycloak Admin API的以下端点,直接获取指定角色关联的所有客户端范围,无需遍历所有客户端范围逐个检查:

GET /admin/realms/{realm}/roles/{role-id}/scope-mappings/client-scopes

该端点返回的响应包含该角色已映射的客户端范围的完整信息(如ID、名称、描述等),完全满足前端展示需求。

如果不知道角色ID,可先通过以下方式获取:

  • 搜索角色:GET /admin/realms/{realm}/roles?search={role-name}
  • 直接按名称获取:GET /admin/realms/{realm}/roles/{role-name}(注意角色名称含特殊字符时需URL编码)

2. 新增角色到客户端范围的映射

使用POST端点完成新增操作:

POST /admin/realms/{realm}/client-scopes/{client-scope-id}/scope-mappings/realm/roles

请求体需传入包含角色信息的数组(只需ID或名称其中一个字段即可):

[
  {"id": "你的角色ID", "name": "你的角色名称"}
]

3. 移除角色与客户端范围的映射

使用DELETE端点完成移除操作:

DELETE /admin/realms/{realm}/client-scopes/{client-scope-id}/scope-mappings/realm/roles/{role-id}

替换路径中的{client-scope-id}和{role-id}为实际值,即可移除对应映射关系。

注意事项

  • 调用上述API需确保请求携带的AccessToken拥有manage-realm或manage-client-scopes权限,否则会返回权限不足的错误。
  • 所有路径中的占位符(如{realm}、{role-id})需替换为你Keycloak实例中的实际值。

内容的提问来源于stack exchange,提问作者Paolo Leggiadro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:03:15