Tomcat (8080) 在带 Keycloak (8443) 身份验证的 IIS (443) 后面:tomcat 重定向到 443 端口而不是 8443 上的 keycloak

Tomcat (8080) behind IIS (443) with Keycloak (8443) authentication: tomcat redirects to keycloak on 443 port instead of 8443

用例: 由于具体限制,我需要配置如下配置:

将使用 IIS 代理访问 Tomcat 应用程序: https://server/myapp

Keycloak 身份验证将直接使用 keycloak URL 进行访问: https://server:8443/auth/.....

问题: 当我直接使用 8443 安全端口访问 keycloak 时效果很好,但是当我通过 IIS 代理 (443) 访问 Java 应用程序时,IIS/Tomcat 将 keycloak 身份验证重定向到端口 443 而不是端口 8443 .

问题: IIS、Tomcat 或 Keycloak 上是否有任何我缺少的设置,无法使 tomcat 重定向到正确的 keycloak 8443 端口以进行身份​​验证?

即: 将 https://server/myapp URL 添加到浏览器时,tomcat 应用程序正在重定向(用于身份验证)到 https://server/auth/而不是 https://server:8443/auth/

IIS ARR配置截图: IIS ARR settings

IIS重定向规则配置截图 IIS Redirect rule

部署用例屏幕截图 Deployment use case diagram

but when I access the Java application via IIS proxy (443), the IIS/Tomcat is redirecting for the keycloak authentication to port 443 instead of port 8443.

Java 应用程序的请求来自哪里,它将去往哪里。如果你是去域名的话,它会先在443上命中你的IIS代理。

尝试在 IIS 中为 keycloak 添加 8443 重写规则