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
用例:
由于具体限制,我需要配置如下配置:
- Tomcat 配置为使用端口 8080
- IIS 配置为使用端口 443 (SSL)
- IIS 通过 ARR + URL 重定向规则重定向到 Tomcat
- Keycloak 独立配置为使用端口 8443 (SSL)
- 通过 public 域而不是 IP 地址访问应用程序(即:www.myserver.com)
将使用 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 重写规则
用例: 由于具体限制,我需要配置如下配置:
- Tomcat 配置为使用端口 8080
- IIS 配置为使用端口 443 (SSL)
- IIS 通过 ARR + URL 重定向规则重定向到 Tomcat
- Keycloak 独立配置为使用端口 8443 (SSL)
- 通过 public 域而不是 IP 地址访问应用程序(即:www.myserver.com)
将使用 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 重写规则