如何在keycloak中列出服务帐户用户

问题描述 投票:0回答:1

有没有办法使用 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
下看不到它。当通过翻转客户端上启用的服务帐户来创建这些用户时,也没有相应的创建和更新事件。

keycloak keycloak-rest-api
1个回答
0
投票

没有端点可以列出所有服务帐户用户。

您必须遍历所有客户端并找到那些配置了服务帐户的客户端。

这是一个 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

© www.soinside.com 2019 - 2024. All rights reserved.