【问题标题】:How to verify old password with Keycloak Admin Java API?如何使用 Keycloak Admin Java API 验证旧密码?
【发布时间】:2018-06-22 06:06:17
【问题描述】:

我有使用 Keycloak 3.1.x 的应用程序,该应用程序使用以下依赖项与 Keycloak 进行远程交互:

<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-admin-client</artifactId>
    <version>3.4.1.Final</version>
</dependency>

应用程序正在使用 Spring Boot,在 Controller 中我们得到两个参数:

  1. 旧密码
  2. 新密码

现在在后端,我们必须验证旧密码是否与存储在 Keycloak 中的密码匹配,然后最终应用新密码。

我知道有一个端点/auth/admin/{realm}/account 允许用户更改他的密码,但我需要后端的那个功能。

依赖项在后台使用 RestClient,从我在 https://issues.jboss.org/browse/KEYCLOAK-943 中发现的内容来看,Keycloak 不为 account 控制台提供 REST API。

有人知道是否可以通过 Keycloak Admin API 验证旧密码吗?

编辑:

也许有办法获取用户的旧密码并尝试获取新令牌?如果失败,则表明旧密码错误。

【问题讨论】:

  • 实际上这是您正在寻找的 jboss jira 任务 [issues.jboss.org/browse/… 不幸的是他们没有正确响应它
  • @DevDio,我有完全相同的问题。这有什么更新吗?
  • 现在是 2020 年,我也有同样的问题。我们现在有解决方案吗?
  • 现在是 2021 年,我也有同样的问题。我们现在有解决方案吗?

标签: java spring security spring-boot keycloak


【解决方案1】:

没有 api 方法,但您可以通过在 realms/{realm}/protocol/openid-connect/token 上获取令牌请求来验证密码

【讨论】:

  • 此解决方案可行。但如果您已经启用了 2FA,则无法为给定用户获取令牌。
猜你喜欢
  • 2021-07-08
  • 2012-12-25
  • 1970-01-01
  • 1970-01-01
  • 2012-10-03
  • 2013-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多