Keycloak迁移哈希密码

时间:2019-09-03 11:55:44

标签: 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",
}

以下是我尝试过的事情

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

有人有幸获得此功能的支持吗?

3 个答案:

答案 0 :(得分:1)

以下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}"}]}'

答案 1 :(得分:1)

已弃用参数 hashedSaltedValue 等,并且密钥斗篷10及更高版本将记录弃用警告。

有一个新的CredentialRepresentation定义,您可以在其中将JSON放入属性secretDatacredentialData的字符串中。

答案 2 :(得分:0)

Keycloak重置密码api是您要使用的东西? 我相信使用“重置密码” api只能接受纯文本密码,这意味着您不能使用已散列的密码值重置密码。

如果使用创建用户api,则可以将哈希值添加为密码。

我将Aerobase与Keycloak一起使用,并尝试使用reset-password api更新密码,它不适用于哈希密码,它仅适用于纯文本密码,然后存储哈希密码。

如果有人成功使用哈希密码重置了密码,请在此处发表评论!

相关问题