有没有人对 Keycloak 进行导入功能?
Has anyone made import functionality to Keycloak?
我们需要将数百个用户从 csv 文件导入到 Keycloak。我还没有找到任何现成的导入功能来执行此操作。
有没有人制作任何导入例程或至少构建一些骨架? REST API 可能是唯一的方法 - 或者还有其他方法吗?
我最近在 Java 中构建了类似的东西。您可以使用 REST Api,但也有管理客户端。参见 Programmatically adding users in Keycloak for some pointers. It should be trivial to add CSV support for that using e.g. Apache Commons CSV。
基本上你可以添加一个Maven依赖:
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-admin-client</artifactId>
<version>1.4.0.Final</version>
</dependency>
并像这样使用它:
Keycloak kc = Keycloak.getInstance(
"http://localhost:8080/auth",
"master", // the realm to log in to
"admin", "password", // the user
"security-admin-console");
CredentialRepresentation credential = new CredentialRepresentation();
credential.setType(CredentialRepresentation.PASSWORD);
credential.setValue("test123");
UserRepresentation user = new UserRepresentation();
user.setUsername("testuser");
user.setFirstName("Test");
user.setLastName("User");
user.setCredentials(Arrays.asList(credential));
kc.realm("master").users().create(user);
我们需要将数百个用户从 csv 文件导入到 Keycloak。我还没有找到任何现成的导入功能来执行此操作。
有没有人制作任何导入例程或至少构建一些骨架? REST API 可能是唯一的方法 - 或者还有其他方法吗?
我最近在 Java 中构建了类似的东西。您可以使用 REST Api,但也有管理客户端。参见 Programmatically adding users in Keycloak for some pointers. It should be trivial to add CSV support for that using e.g. Apache Commons CSV。
基本上你可以添加一个Maven依赖:
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-admin-client</artifactId>
<version>1.4.0.Final</version>
</dependency>
并像这样使用它:
Keycloak kc = Keycloak.getInstance(
"http://localhost:8080/auth",
"master", // the realm to log in to
"admin", "password", // the user
"security-admin-console");
CredentialRepresentation credential = new CredentialRepresentation();
credential.setType(CredentialRepresentation.PASSWORD);
credential.setValue("test123");
UserRepresentation user = new UserRepresentation();
user.setUsername("testuser");
user.setFirstName("Test");
user.setLastName("User");
user.setCredentials(Arrays.asList(credential));
kc.realm("master").users().create(user);