java - 从Java代码中搜索Keycloak中的用户

标签 java spring-boot keycloak

我正在使用 Spring Boot、Keycloak 10、java 8 和 keycloak-admin-client jar。我能够获取用户、他的组和角色。

当谈到搜索时,我看到不同的搜索方法选项,例如我可以:

 List<UserRepresentation> search = getKeycloakInstance().realm("my-realm").users()
                .search("username");

https://www.keycloak.org/docs-api/10.0/javadocs/org/keycloak/admin/client/resource/UsersResource.html

但是我需要做的是编写几个方法:

  • 按角色搜索(因此搜索具有某些角色的用户)

  • 按群组和群组属性搜索

  • 以“包含”方式按文本(名字、姓氏、电子邮件)搜索:mytext

  • 按角色和文本搜索

  • 按 ID 列表(用户的 UUID)搜索

我在 keycloak-admin-client 中没有看到这种可能性,或者我应该使用什么来代替 keycloak-admin-client ?

最佳答案

不幸的是,keycloak-admin-client 没有提供很多搜索选项。

如何按角色查找用户:

RoleResource roleResource = getKeycloakInstance().realm("realm_name")
                          .roles().get("role_name");  
roleResource.getRoleUserMembers();

如何查找组中的所有用户:

getKeycloakInstance().realm("realm_name").groups().group("your_group").members();

如何通过用户名、名字、姓氏、电子邮件查找用户:

getKeycloakInstance().realm("my-realm").users()
            .search("username", "lastName", "email");

如果您觉得合适,请尝试使用Keycloak Admin REST API以获得更多的搜索机会。

关于java - 从Java代码中搜索Keycloak中的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62149363/

相关文章:

keycloak - 向领域设置添加更多属性

java - 从 KeycloakPrincipal 获取用户区域设置

java - 什么时候拥有 Hibernate 二级缓存的 CPU yield 超过初始命中

java - 错误 : parse xml using java

java - 如何在 Java 中正确解码 SAML 请求(HTTP 重定向)?

java - 本地化 Spring Boot 验证消息中的消息参数未解析

spring-boot - Spring Data JPA "Couldn' t find PersistentEntity"for List<String>

java - 如何在 Spring Boot 中创建一对多关系

java - 分配给稀疏文件的 block 数

ldap - 将 LDAP 特定属性映射到 Keycloak 角色