簡體   English   中英

無法通過 Keycloak 創建帶密碼的用戶 Rest API

[英]Failing to create user with password via Keycloak Rest API

我正在嘗試從現有數據庫遷移用戶。 密碼使用 sha512 加密。 我將 Keycloak 10 與 REST API 一起使用。

我已閱讀CredentialRepresentation並嘗試將 JSON 放入屬性secretDatacredentialData的字符串中。

我的帖子用戶(具有正確的授權)返回“錯誤”:“未知錯誤”。

POST <someDomain>/auth/admin/realms/assure/users
{
"firstName": "test_encrypte",
"lastName":"test_encrypte", 
"email":"jeremy.rafflin@mail.fr", 
"credentials": [{
    "type":"password",
            "credentialData" : "{\"value\":\"fdVjg7Ed/dck1eSGobCHG4JtObyE3BNE3xZhCuuJ0PpmGB4d/OO+t0C5PwYhtOnUV++X2Jh0xmNdNu+sTkt4Bw==\",\"salt\":\"98cj35ZuYZR7S6N.MvZ2lA/UYfWAztXfF.nm/hFIQso\"}",
    "secretData": "{\"algorithm\":\"sha512\",\"hashIterations\":1}"
}],
"username":"encrypt",
"emailVerified": false,
"enabled": true,
"attributes": {"assureId":"10406440"}
}

我獨立使用keycloak。

我的請求

您的 JSON 有一些問題,首先不是:

"secretData": "{\"algorithm\":\"sha512\",\"hashIterations\":1}"

這是:

"credentialData": "{\"algorithm\":\"sha512\",\"hashIterations\":1}"

你可以查看Keycloak 開源倉庫

而不是

"credentialData" : "{\"value\":\"fdVjg7Ed/dck1eSGobCHG4JtObyE3BNE3xZhCuuJ0PpmGB4d/OO+t0C5PwYhtOnUV++X2Jh0xmNdNu+sTkt4Bw==\",\"salt\":\"98cj35ZuYZR7S6N.MvZ2lA/UYfWAztXfF.nm/hFIQso\"}",

實際上是:

"secretData" : "{\"value\":\"fdVjg7Ed/dck1eSGobCHG4JtObyE3BNE3xZhCuuJ0PpmGB4d/OO+t0C5PwYhtOnUV++X2Jh0xmNdNu+sTkt4Bw==\",\"salt\":\"98cj35ZuYZR7S6N.MvZ2lA/UYfWAztXfF.nm/hFIQso\"}",

你可以查看Keycloak 開源倉庫

最后,salt 值必須是 base 64 編碼的,而不是

98cj35ZuYZR7S6N.MvZ2lA/UYfWAztXfF.nm/hFIQso\

它一定要是:

OThjajM1WnVZWlI3UzZOLk12WjJsQS9VWWZXQXp0WGZGLm5tL2hGSVFzbw==

您要找的Json是:

{
  "firstName": "test_encrypte",
  "lastName": "test_encrypte",
  "email": "jeremy.rafflin@ageo.fr",
  "credentials": [
    {
      "type": "password",
      "secretData": "{\"value\":\"fdVjg7Ed/dck1eSGobCHG4JtObyE3BNE3xZhCuuJ0PpmGB4d/OO+t0C5PwYhtOnUV++X2Jh0xmNdNu+sTkt4Bw==\",\"salt\":\"OThjajM1WnVZWlI3UzZOLk12WjJsQS9VWWZXQXp0WGZGLm5tL2hGSVFzbw==\"}",
      "credentialData": "{\"algorithm\":\"sha512\",\"hashIterations\":1}"
    }
  ],
  "username": "encrypt",
  "emailVerified": false,
  "enabled": true,
  "attributes": {
    "assureId": "10406440"
  }
}

有關信息,我發現了問題:這兩行不相同:

credentialData": "{​​​​​​​\"algorithm\":\"sha512\",\"hashIterations\":1}​​​​​​​"

"credentialData": "{\"algorithm\":\"sha512\",\"hashIterations\":1}"

如果我將它們與字符代碼查找器進行比較,十進制代碼是不同的。 例如我的}代碼是“125、8203、8203、8203、8203、8203、8203、8203”,你的是“125”。

PS:對不起我的英語,我是法國人。

@dreamcrash:非常感謝您的寶貴時間

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM