繁体   English   中英

Keycloak 获取用户密码

[英]Keycloak get user password

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

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

通过Rest API,由于明显原因无法获取密码。 理想情况下,在一个安全的环境中,即使是管理员也不应该访问用户的密码。

从您写的评论中:

我可以使用像 boolean isPasswordCorrect(username,password) 这样的方法

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

  • Go 到您的 Realm;
  • 客户;
  • 创建客户端;
  • Access Type设置为公共;
  • 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 object,否则你会得到如下响应:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM