KeyCloak 忘记密码 电子邮件链接

Har*_*rry 5 url hyperlink reset-password keycloak

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

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

.ftl 文件中的代码在 themes/base/email/html/password-reset.ftl 下如下所示: ${msg("passwordResetBodyHtml",link, linkExpiration, realmName)} 虽然从管理控制台中找出了linkExpiration 和 realmName(它们在管理控制台中的 Realm Settings 下),我无法找出“链接”的配置方式和位置。有人可以帮忙吗?

我查找了其他线程并做了一些发现,并找到了这个链接:( Keycloak - 代理后面的 URL 重置密码电子邮件,但它确实谈到了 NginX 代理,我们还没有配置它。

Har*_*rry 2

经过与 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>
Run Code Online (Sandbox Code Playgroud)

更改后:

    header=x-forwarded-host= <External Host>
    header=Host= <External Host>
Run Code Online (Sandbox Code Playgroud)

该标签将保留转发的主机标头。