无法通过 Keycloak Rest 创建带密码的用户 API
Failing to create user with password via Keycloak Rest API
我正在尝试从现有数据库迁移用户。密码使用 sha512 加密。
我将 Keycloak 10 与 REST API.
一起使用
我已阅读CredentialRepresentation and y Have try put JSON into the strings for attributes secretData and credentialData。
我的post用户(授权正确)return“错误”:“unknown_error”。
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 open source repo.
中查看
而不是
"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 open source repo.
中查看
最后,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}"
如果我将它们与Character Code Finder进行比较,十进制代码是不同的。
例如我的 } 代码是“125, 8203, 8203, 8203, 8203, 8203, 8203, 8203”,你的是“125”。
PS : 对不起我的英语,我是法国人。
@dreamcrash:非常感谢您抽出宝贵时间
我正在尝试从现有数据库迁移用户。密码使用 sha512 加密。 我将 Keycloak 10 与 REST API.
一起使用我已阅读CredentialRepresentation and y Have try put JSON into the strings for attributes secretData and credentialData。
我的post用户(授权正确)return“错误”:“unknown_error”。
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 open source repo.
中查看而不是
"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 open source repo.
中查看最后,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}"
如果我将它们与Character Code Finder进行比较,十进制代码是不同的。 例如我的 } 代码是“125, 8203, 8203, 8203, 8203, 8203, 8203, 8203”,你的是“125”。
PS : 对不起我的英语,我是法国人。
@dreamcrash:非常感谢您抽出宝贵时间