反向代理后面的 keycloak 导致错误重定向

问题描述 投票:0回答:1

你好开始构建一个应用程序并使用本地 docker keycloak 对其进行了测试,并且运行良好。

但是生产 keycloak 服务器(两者都有相同的版本 24.0.3)在 apache2 反向代理后面运行。这是配置:

    ProxyPass "/"  "http://localhost:8080/"
    ProxyPassReverse "/"  "http://localhost:8080/"
    HostnameLookups Off
    RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
    RequestHeader set "X-Forwarded-SSL" expr=%{HTTPS}
    UseCanonicalName Off
    ProxyPreserveHost On

问题是,输入凭据后,keycloak 不会重定向回客户端应用程序,而不是重定向回他自己的主机。 所以网址看起来像这样

https://public.authserver/login/oauth2/code/my-realm?state=V1p3odUrEhJFClMvx6WmlZxVQCjLCjG82VHCPw-K
它应该是
https://localhost:8080/login/oauth2/code/my-realm?state=V1p3odUrEhJFClMvx6WmlZxVQCjLCjG82VHCPw-K

服务器使用以下命令启动:

/opt/keycloak/keycloak-24.0.3/bin/kc.sh start --proxy-headers forwarded

你能告诉我可能是什么问题吗?我还得到了另一个使用 apache2-openid-connect 插件和相同 public.authserver 的应用程序,这工作正常。

谢谢您的帮助

apache2 keycloak reverse-proxy
1个回答
0
投票

问题是,反向代理覆盖了 keycloaks 响应中的位置标头。 我需要删除

ProxyPassReverse "/"  "http://localhost:8080/"
线并且它起作用了。

© www.soinside.com 2019 - 2024. All rights reserved.