我们已决定将KeyCloak用于我们的身份和访问管理解决方案,而不是完全在我们的Java EE Web应用程序中实现它。我们正在创建一个多租户解决方案,并且希望通过我们的工作流以编程方式创建安全领域/用户/组,而不是利用KeyCloak的自我注册功能或Web UI,以便我们可以进行诸如获取信用卡详细信息之类的事情等等。我知道我们可能可以利用admin REST APIs来完成此操作,但是我不确定除了手动编码REST调用之外,是否还有更简单的方法可以做到这一点。 KeyCloak是否提供我们可以使用的管理客户端库?还是我们自己坚持为admin API实现REST客户端?
答案 0 :(得分:1)
我在KeyCloak Java Admin Client周围找到了一些信息。 This gist有很多有用的示例,展示了如何管理用户,领域等。
答案 1 :(得分:0)
Keycloak Java adapters专注于使用而不是配置。您需要实现自己使用必需的参数进行必要的调用。 admin-cli是一种用于这种类型的工具的工具,但我认为这对您的情况没有用。
答案 2 :(得分:0)
Keycloak kc = KeycloakBuilder.builder()
.serverUrl("https://localhost:8443/auth")
.realm("master")
.username("admin")
.password("admin")
.clientId("Mycli")
.resteasyClient(new ResteasyClientBuilder().connectionPoolSize(10).build())
.build();
CredentialRepresentation credential = new CredentialRepresentation();
credential.setType(CredentialRepresentation.PASSWORD);
credential.setValue("test123");
UserRepresentation user = new UserRepresentation();
user.setUsername("testuser2");
user.setFirstName("Test2");
user.setLastName("User2");
user.setEmail("aaa@bbb.com");
user.setCredentials(Arrays.asList(credential));
user.setEnabled(true);
user.setRealmRoles(Arrays.asList("admin"));
// Create testuser
Response result = kc.realm("my-realem").users().create(user);
if (result.getStatus() != 201) {
System.err.println("Couldn't create user.");
System.exit(0);
}else{
System.out.println("Testuser created.... verify in keycloak!");
}