繁体   English   中英

如何使用Keyclaok Rest API为用户获取更多/可选数据?

[英]How to get more/optional data for users using keyclaok rest api?

我们将Keycloak用于SSO,特别是我们能够使用REST API /admin/realms/{realm}/users获取Keycloak领域中的基本用户详细信息,我们得到的响应是UserRepresentation ,它似乎已经提供了同样适用于realmRolesclientRoles ,但默认情况下不是必需的/ false。

我们有一个获取所有用户角色的新要求,我看到要获得这些角色还需要公开其他API: /auth/admin/realms/realm/users/user-id/role-mappings/realm/ ,但这意味着触发另一个请求,如果我们有2k用户,则意味着再增加2k个请求。

我的问题是,由于UserRepresentation也具有realmRolesclientRoles属性,但默认情况下似乎是可选的,我如何在触发请求/admin/realms/{realm}/users启用这些属性,并避免获取角色的额外请求。

恐怕不可能在一个请求中获得所需的数据:仅通过查看在UsersResource中获取所有用户的源代码,您会看到realmRolesclientRoles从未被填充。

话虽如此,您可以做一件事- 通过实现SPI编写自己的REST资源 实际上,过去我在组资源方面存在类似的问题,最终我编写了自己的资源。 在这种情况下,您将只需要使用一种方法来编写自定义资源-使所有用户都具有角色。 您可以只复制粘贴当前的keycloak逻辑并添加额外的位或扩展内置的UsersResource。 但是,这不是一个简单的方法-从长远来看,您将需要维护自己的代码,并且如果某些界面会发生更改,升级到最新的密钥库可能不是那么简单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM