Neo*_*Neo 4 keycloak keycloak-rest-api
在我的项目中,我需要从 Rest API 获取当前用户密码。
我搜索了 keycloak 4.8.3 最终文档,但找不到它。使用管理员用户,我可以在不知道当前密码的情况下更改密码。但我登录的用户可以是管理员,也可以不是。我发现出于安全原因,keycloak 不允许我这样做。总结一下,有没有办法激活该设置,或者有没有办法使用 Rest API 获取密码?谢谢。
更新:从Keycloak 17 Quarkus 发行版/auth开始,该路径已被删除。因此,您可能需要从该答案中显示的端点调用中删除 。/auth
通过 Rest API,由于显而易见的原因,人们无法获取密码。理想情况下,在安全设置中,即使是管理员,也不应该访问用户的密码。
从您写的评论中:
我可以使用像 boolean isPasswordCorrect(username,password) 这样的方法
一种方法是在您的 Realm 上创建一个客户端,如下所示:
Access Type为公开;Direct Access Grants Enabled为开;现在,代表您要检查密码是否正确的用户向新创建的客户端请求令牌:
如您所见,端点是:
<KEYCLOAK_HOST>/auth/realms/<REALM_NAME/protocol/openid-connect/token
Run Code Online (Sandbox Code Playgroud)
身体是:
client_id : <The client ID of the newly create client>
username : <The username>
password : <The password to be tested>
grant_type : password
Run Code Online (Sandbox Code Playgroud)
如果密码正确,您将得到一个令牌对象,否则您将得到以下响应:
{
"error": "invalid_grant",
"error_description": "Invalid user credentials"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13466 次 |
| 最近记录: |