如何解决Keycloak 获取用户密码
在我的项目中,我需要从 Rest API 获取当前用户密码。
我搜索了 keycloak 4.8.3 最终文档,但找不到。使用管理员用户,我可以在不知道当前密码的情况下更改密码。但是我的登录用户可以是管理员也可以不是。我发现由于安全原因,keycloak 不允许我这样做。总结一下有没有办法激活该设置,或者有没有办法通过 Rest API 获取密码? 谢谢。
解决方法
通过 Rest API,由于显而易见的原因无法获得密码。理想情况下,在安全设置中,即使管理员是管理员,也不应访问用户的密码。
来自你写的评论:
我可以使用 boolean isPasswordCorrect(username,password) 之类的方法
一种方法是在您的 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对象,否则你会得到如下响应:
{
"error": "invalid_grant","error_description": "Invalid user credentials"
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。