KeyCloak 忘记密码 电子邮件 link

KeyCloak Forgot password Email link

我们正在使用 keycloak 实施身份验证。专门针对忘记密码选项:当用户单击忘记密码选项并提供用户名时,将向他们的 ID 发送一封电子邮件,其中包含 link 以重置密码。

我的问题专门针对link: 在电子邮件中发送的 link 如下所示: https://:/auth/realms//login-actions/reset-credentials?code= 但是提到的确实是一个在/etc/hosts中可以找到的内部物理主机名,但是外部用户是访问不到的,所以我们需要替换这个host:port号。

.ftl 文件中的代码在 themes/base/email/html/password-reset.ftl 下如下所示: ${msg("passwordResetBodyHtml",link, link过期, realmName)} 虽然从管理控制台弄清楚 linkExpiration 和 realmName 的值在哪里(它们在管理控制台的领域设置下),但我无法找出 "link" 的配置方式和位置。有人可以帮忙吗?

我查阅了其他线程并做了一些发现,发现了这个 link:(,但它确实在谈论我们尚未配置的 NginX 代理。

在与 Redhat 团队多次讨论后解决了这个问题。以下是遵循的步骤

  1. 我们使用的是 RH SSO 7。0.x:添加了 proxy-address-forwarding=true,如下所示。

服务器没有启动,因为这个标签在 Keycloak 7 中不可用。0.x。正如 Redhat 所证实的那样。

  1. 是否升级到 RH SSO 7.2.0 并且相同的标志添加有效。忘记密码电子邮件内容有 https:///auth/realms/archcap-au/login-actions/action-token?key=

变更前:

    header=x-forwarded-host= <External Host>
    header=Host= <Internal host:8443>

更改后:

    header=x-forwarded-host= <External Host>
    header=Host= <External Host>

标签将保留转发的主机 header。