在keycloak中创建用户时指定用户ID

xan*_*nld 8 keycloak

我正在研究从遗留系统到 keycloak 的迁移过程。基于这里的一些想法:https : //github.com/Smartling/keycloak-user-migration-provider我们希望在登录时通过从一些专用端点查找用户凭据在 keycloak 中创建用户帐户我们的遗留系统。

作为其中的一部分,我需要用户 ID 与旧系统中的相同。

是否可以创建具有指定 ID 的用户而不是依靠 keycloak 来自动生成它?

Jer*_*son 9

在尝试通过 API 创建用户时遇到此问题,我查看了用户服务的代码。由于用户的创建方式,目前似乎无法设置用户 ID。

来自https://github.com/keycloak/keycloak/blob/master/services/src/main/java/org/keycloak/services/resources/admin/UsersResource.java 中的代码,特别是在https://github 上。 com/keycloak/keycloak/blob/7cfe6addf01676939206e034a87c791460031032/services/src/main/java/org/keycloak/services/resources/admin/UsersResource.java#L115首先使用用户名创建用户,然后更新。我相信 id 不是可更新的字段。因此目前是不可能的。

  • 我可以确认,使用最新的 Keycloak 服务器和客户端无法为新用户设置 id,尽管 keycloak 讨论组建议这样做:https://keycloak.discourse.group/t/rest-api-create- user-no-user-identifier-in-response/1964/2 – id 被忽略并生成新的 UUID (4认同)