1

我想使用employeeNumber 搜索keycloak 用户。我尝试检查 keycloak 文档,但没有找到任何基于employeeNumber/自定义属性进行搜索的 API。我正在使用下面的 API 来搜索具有管理员访问权限的用户。

http://localhost:8080/auth/admin/realms/Demo-Realm/users/?firstName=akshay

也试过

http://localhost:8080/auth/admin/realms/Demo-Realm/users/?search=akshay

4

1 回答 1

1

开箱即用,您可以从端点的Keycloak Admin API执行:

GET /{realm}/users

可以读到:

获取用户 返回用户列表,根据查询参数过滤

那些(可选)查询参数是:

  • 简要表示(布尔值);
  • 电子邮件(字符串);
  • 第一个(字符串);
  • 名字(字符串);
  • 姓氏(字符串);
  • max(最大结果大小(默认为 100))(整数);
  • 搜索(包含在用户名、名字或姓氏或电子邮件中的字符串);
  • 用户名(字符串)。

如您所见,您无法搜索自定义属性。一个不太好的解决方案是获取所有用户(max=-1),然后通过自定义属性进行过滤。

另一种选择是通过添加您自己的自定义服务提供者接口 (SPI) 并添加您的自定义端点来扩展 Keycloak 功能。在那里,您可以利用UserQueryProvider接口中的searchForUserByUserAttribute方法。

于 2020-12-11T12:34:41.023 回答