仅向某些用户提供 Keycloak 中的 "Forgot Password" 功能

Provide "Forgot Password" feature in Keycloak to certain users only

我们在门户中使用 Keycloak 12 进行身份验证,有两种不同类型的用户:

  1. 内部用户(从我们的内部 LDAP 读取)
  2. 外部用户(存储在 Keycloak 中但未与 LDAP 同步)

我们现在想使用 Keycloak 提供的“忘记密码”功能。配置功能和邮件服务器后,开箱即用。

但是,我们希望将“忘记密码”功能限制为属于 (2) 的所有用户,即内部用户。不允许这些用户通过 Keycloak 更新他们的密码,因为这是通过另一种机制完成的。

到目前为止,我在文档中找不到任何信息,如果这可能的话?

Keycloak Forgot Password 功能应用于 Realm 级别,因此适用于属于该 Realm 的所有用户。对于 Keycloak,LDAP 只是一个外部存储,用户可以根据其进行身份验证。因此,开箱即用,没有办法(据我所知)Forgot Password 只对 Realm 中的某些用户启用。

即使有可能,IMO 也不会是一个非常用户友好的功能,因为当激活这样的功能时,将在登录页面上向用户显示一个新的 link,以防他们忘记了密码。因此,如果来自 LDAP 的用户单击它,它会显示错误或其他内容?!

或者,您可以在启用 Forgot Password 的另一个领域中配置所谓的 内部用户 的 LDAP。然后将新创建的领域配置为外部 ,用户可以明确地对其进行身份验证。所以在实践中,用户会在正常登录页面借出,外部用户可以正常登录,并且会启用Forgot Password选项。 内部用户 会明确点击外部 IDP 来验证自己。使用外部 IDP 登录与登录普通登录页面的用户体验类似,但是,Forgot Password 选项不会显示。

您可以看到这样的配置示例