在我的 Keycloak 设置中,我有多个客户端范围和角色:
现在我需要获取分配给特定角色(例如“访客”)的范围列表,以将其呈现在前端并允许用户映射新范围或删除映射范围。
有一个 keycloak 端点来接收这个列表吗?根据我的理解,获取此信息的唯一方法是使用 GET /admin/realms/{realm}/client-scopes 获取客户端范围的完整列表,然后使用 GET /admin/realms/ 迭代每个范围 id {realm}/client-scopes/{client-scope-id}/scope-mappings/clients/{client} 检查角色是否在映射的角色中。但这完全没有效率......
我现在正在为此苦苦挣扎一段时间......我希望有一个解决方案。
谢谢大家。
Copilot 建议我使用端点 GET admin/realms/{realm}/clients/{client-id}/scope-mappings,但此端点似乎只返回客户端和角色之间的映射,并且没有引用范围(尽管端点名称...)
不幸的是,Keycloak 不提供直接端点来列出分配给特定角色的范围。但是,您可以使用 GET /admin/realms/{realm}/roles-by-id/{role-id} 端点来获取有关角色的详细信息。如果角色是复合角色,则响应将包括所有关联的角色和权限(范围)。或者,您可以使用 GET /admin/realms/{realm}/clients/{client-id}/scope-mappings 检索客户端的所有范围映射,并将它们与您的角色交叉引用。