Use case: 由于特定的限制,我需要配置以下配置:
-
Tomcat配置为使用端口8080
-
IIS配置为使用端口443(SSL)
-
IIS通过ARR URL重定向规则重定向到Tomcat
-
Keycloak独立配置为使用端口8443(SSL)
-
通过公共域而不是IP地址访问应用程序(即:www.myserver.com)
将使用IIS代理访问Tomcat应用程序:https://server/myapp
直接使用keycloak URL访问Keycloak身份验证:https://server:8443/auth/ ....
Problem: 当我使用8443安全端口直接访问keycloak时效果很好,但是当我通过IIS代理(443)访问Java应用程序时,IIS / Tomcat会将keycloak身份验证重定向到端口443而不是端口8443 .
Question: 我是否缺少IIS,Tomcat或Keycloak上的任何设置以使tomcat重定向到正确的keycloak 8443端口进行身份验证?
即:当向浏览器添加https://server/myapp URL时,tomcat应用程序将重定向(用于身份验证)到https://server/auth/而不是https://server:8443/auth/
IIS ARR configuration screenshot: IIS ARR settings
IIS Redirect rule configuration screenshot IIS Redirect rule
Deployment use-case screenshot Deployment use case diagram
1 回答
来自Java应用程序的请求在哪里以及它将在何处发生 . 如果您要访问域名,它将首先在443上命中您的IIS代理 .
尝试在IIS中为keycloak添加8443重写规则