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"
}
在我的项目中,我需要从 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"
}