Keycloak 迁移哈希密码

use*_*726 8 migration single-sign-on keycloak

我正在尝试将用户从旧的 Drupal 6 CMS 迁移到 Keycloak。我想使用旧密码迁移用户,然后为其个人资料分配“更新密码”所需的操作。

然而,迁移密码似乎有问题,因为我只能以散列形式访问它们。

密码使用 MD5 算法进行哈希处理,不使用盐。我尝试根据此页面迁移它们: https://lists.jboss.org/pipermail/keycloak-user/2015-December/004212.html

这是我发送到 Keycloak REST API 的 JSON:

{
  "hashedSaltedValue" : "password-hash",
  "algorithm" : "restcomm-md5",
  "type" : "password",
}
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的事情的列表

  • 包含 NULL 哈希值
  • 包含 0 hashIteration 值
  • Base64 对哈希进行编码
  • 将哈希值转换为二进制,然后进行 Base64 编码

有没有人有幸让这个功能发挥作用?

Nic*_*ode 8

以下curl命令帮助我迁移旧的散列密码。替换{hashedSaltedValue}为您的散列密码和{salt}盐。

 token="..."
 curl 'http://keycloak-http/auth/admin/realms/testrealm/users/f:60f0ff50-2cc5-492d-8222-04ac0a9964e1:217b93e8-2830-4392-83e3-9feceea94575' \
    -X PUT \
    -H "Authorization: $token" \
    -H "Content-Type: application/json" \
    --data '{"credentials": [ { "algorithm": "pbkdf2-sha512", "hashedSaltedValue": "{hashedpassword}", "hashIterations": 30000, "type": "password", "salt":"{salt}"}]}'
Run Code Online (Sandbox Code Playgroud)


Mic*_*der 7

参数hashedSaltedValue等已弃用,keycloak 10 及更高版本将记录弃用警告。

定义了一个新的CredentialRepresentation ,您可以将 JSON 放入属性SecretDatacredentialData的字符串中。