Keycloak通过哈希

时间:2016-10-30 16:22:32

标签: rest change-password keycloak

Keycloak'reset-password'REST API中使用的CredentialRepresentation包含散列算法,散列密码,散列迭代等字段。 这意味着我可以通过散列密码及其所有散列规范,而不是将纯文本密码传递给服务。这正是我想要做的,因为传递一个纯文本密码感觉不对。

当我尝试在没有纯文本值的情况下调用服务时,我收到400错误,错误消息显示缺少纯文本值。有没有办法只传递哈希密码?

1 个答案:

答案 0 :(得分:2)

传入明文密码(当然是通过HTTPS)允许keycloak使用领域的哈希算法策略对其进行哈希处理。

如果要传递散列密码值,迭代和算法,则还需要提供实现PasswordHashProviderFactory和PasswordHashProvider的散列SPI。我不认为这可以通过reset-password API获得,但可以使用Update User API(我没有对此进行过测试)。

不是手动指定新密码,更好的安全措施是使用PUT /admin/realms/{realm}/users/{id}/execute-actions-email管理员调用"UPDATE_PASSWORD"作为必需操作。这会导致Keycloak向用户发送一封电子邮件,提供直接设置新密码的链接。