有没有办法使用 Keycloak API (19.x) 列出服务帐户用户?
我可以使用
GET /admin/realms/{realm}/users
列出用户,并且我可以使用 GET /admin/realms/{realm}/users/{service-account-user-id}
访问服务用户帐户用户,如果我从用户登录事件中获得这样的 ID,但有没有办法列出这些?
我需要的只是他们的 ID 和用户名值。
我查看了可用的 Keycloak REST API 文档,但在
/admin/realms/{realm}/users
或 /admin/realms/{realm}/clients
下看不到它。当通过翻转客户端上启用的服务帐户来创建这些用户时,也没有相应的创建和更新事件。
没有端点可以列出所有服务帐户用户。
您必须遍历所有客户端并找到那些配置了服务帐户的客户端。
这是一个 Java 工作示例,使用 Keycloak 管理客户端:
public void listAll() {
final RealmResource realmResource = ...;
final List<ClientRepresentation> clients = realmResource.clients().findAll();
for (final ClientRepresentation client : clients) {
if (!client.isServiceAccountsEnabled()) {
continue;
}
final UserRepresentation serviceAccountUser = realmResource.clients().get(client.getId()).getServiceAccountUser();
final String userId = serviceAccountUser.getId();
final String userName = serviceAccountUser.getUsername());
...
}
}
请来自 Cloud-IAM