Keycloak获取用户密码

Keycloak get user password

在我的项目中,我需要从 Rest 获取当前用户密码 API。

我搜索了 keycloak 4.8.3 最终版文档,但找不到。使用管理员用户,我可以在不知道当前密码的情况下更改密码。但是我的登录用户可以是管理员,也可以不是。我发现 keycloak 出于安全原因不允许我这样做。总结一下,有没有办法激活该设置,或者有没有办法用 Rest API 获取密码? 谢谢。

通过其余部分 API,由于显而易见的原因无法获取密码。理想情况下,在安全设置中,即使是管理员也不应该访问用户的密码。

来自您写的评论:

I could use method like boolean isPasswordCorrect(username,password)

一种方法是在您的 Realm 上创建一个客户端,如下所示:

  • 进入你的领域;
  • 客户;
  • 创建客户端;
  • Access Type设置为public;
  • Direct Access Grants Enabled设置为开启;
  • 保存;

现在从新创建的客户端请求一个令牌,代表您要检查密码是否正确的用户:

如您所见,终点是:

<KEYCLOAK_HOST>/auth/realms/<REALM_NAME/protocol/openid-connect/token

正文是:

client_id : <The client ID of the newly create client>
username : <The username>
password : <The password to be tested>
grant_type : password

如果密码正确你会得到一个token对象,否则你会得到如下响应:

{
    "error": "invalid_grant",
    "error_description": "Invalid user credentials"
}