如何通过employeeNumber或自定义属性搜索keycloak用户?
Posted
技术标签:
【中文标题】如何通过employeeNumber或自定义属性搜索keycloak用户?【英文标题】:How to search keycloak users by employeeNumber or by custom attributes? 【发布时间】:2021-03-22 20:37:42 【问题描述】:我想使用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
【问题讨论】:
【参考方案1】:开箱即用,您可以从Keycloak Admin API 为端点执行:
GET /realm/users
人们可以阅读:
Get users 返回用户列表,根据查询过滤 参数
那些(可选)查询参数是:
briefRepresentation(布尔值); 电子邮件(字符串); 第一个(字符串); 名字(字符串); 姓氏(字符串); max(最大结果大小(默认为 100))(整数); 搜索(包含在用户名、名字或姓氏或电子邮件中的字符串); 用户名(字符串)。如您所见,您无法搜索自定义属性。一个不太好的解决方案是获取所有用户 (max=-1),然后通过自定义属性进行过滤。
另一个选项是通过添加您自己的自定义服务提供者接口 (SPI) 并添加您的自定义端点来扩展 Keycloak 功能。在那里,您可以利用UserQueryProvider 接口中的searchForUserByUserAttribute 方法。
【讨论】:
以上是关于如何通过employeeNumber或自定义属性搜索keycloak用户?的主要内容,如果未能解决你的问题,请参考以下文章
如何仅通过向量对的第一个元素或自定义向量三元组使用 std::find?