用户api中的密钥斗篷返回服务



嗨,我使用Keycapt API来获取启用状态的用户GET /auth/admin/realms/Test/users?enabled=true

接收不在Keycloft 中的用户卡上的用户

例如:[ {"username": "service-account-test" ...}, {"username": "service-account-test2" ...} ]

如何摆脱它?

前缀为service-account-的用户由Keycapture为每个启用了OAuth2流client credentials的客户端自动创建,该客户端在Keycapture中用选项Service Accounts Enabled表示。

因此,您可以使用端点查询客户端列表

GET /{realm}/clients

筛选以仅获取字段"serviceAccountsEnabled"设置为true的客户端。

然后,您可以使用该列表来筛选您不想要的用户,因为您知道这些用户的名称为service-account-clientID,其中clientID是启用了服务帐户的客户端的clientID。

只需使用黑名单来减少返回的用户列表。端点不支持任何否定的查找逻辑(请参阅端点规范(。

示例:

Map<String,String> users = /* from rest API - map only as example /*
String[] blacklist = {"service-account-test", "service-account-test2"};
for(String blacklistEntry : blacklist) users.remove(blacklistEntry);

运行时对此的影响充其量应该可以忽略不计。

相关内容

  • 没有找到相关文章