首页 > 解决方案 > 令牌端点中的 keycloak 密码哈希

问题描述

这就是我正在做的事情:我有一个 REST API 调用(登录),它接受用户名和密码,并使用它调用以下 API:

auth/realms/<realm-name>/protocol/openid-connect/token

我还在 POST 数据中传递了客户端 ID、用户名和密码。并得到正确的结果。没有问题。

但是,我想在上面的 REST API 调用中发送密码时对密码进行编码,而不是使用实际文本。事实上,即使有人调用我已实现的 REST API 调用,我也希望对密码进行编码。

请建议如何做到这一点。我尝试只传递一个散列值,但它不起作用。

提前致谢。阿南德

标签: oauthoauth-2.0base64keycloakkeycloak-rest-api

解决方案


通过 HTTPS 在 POST 请求的正文中发送密码是可以的。散列密码不会给您带来太多的安全性:如果您担心请求的主体被截获,截取散列仍然可以让攻击者以用户身份登录。

如果您担心安全性,我宁愿尝试使用 OIDC 流程,因为它应该是:

授权服务器在启用 [the Resource Owner Password Credentials Grant] 类型时应特别小心,并且仅在其他流程不可行时才允许

来源:OAuth 2.0 RFC

如果您的应用程序是单页应用程序,则更喜欢使用隐式流程,或者更好的是授权代码流程


推荐阅读