Keycloak - 代理后的 URL 重置密码电子邮件
Posted
技术标签:
【中文标题】Keycloak - 代理后的 URL 重置密码电子邮件【英文标题】:Keycloak - URL Reset Password email behind a proxy 【发布时间】:2017-08-21 23:16:39 【问题描述】:我们在 RedHat 环境中使用 Keycloak 2.0.0.Final 安装在 nginx 代理 后面。
我们目前正面临 重置密码 功能的问题,该功能使用内部服务器主机而不是操作 URL 中的外部主机发送电子邮件,因为我们落后了代理。
我通过电子邮件收到:https://internal/auth/realms/MYREALM/login-actions/reset-credentials?code=wYhHP(...),但最终用户应该看到https://external/auth/realms/MYREALM/login-actions/reset-credentials?code=wYhHP(...)。否则,整个代理设置都可以正常工作,它基本上是一个 URL 重写功能。
我发现这张票涉及一个类似的案例,但解决方案并不理想:http://lists.jboss.org/pipermail/keycloak-user/2015-October/003428.html
我们可以使用的任何隐藏属性、设置或解决此问题的解决方案吗?
谢谢
【问题讨论】:
【参考方案1】:nginx 从 Host 标头的内容中设置电子邮件 URL 前缀,因此您的 nginx 代理需要配置为完整地传递 Host 标头。
类似这样的:
proxy_pass <your internal keycloak URL or IP address>
...
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
...
如果您的内部 URL 不是 https,您可能还需要设置 X-forwarded-proto
【讨论】:
以上是关于Keycloak - 代理后的 URL 重置密码电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
Keycloak:实现“重置密码”(作为管理员)流程与“忘记密码”(作为用户)相同
用于用户注册、密码重置、忘记密码等的 Keycloak 端点