2

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

  • Tomcat 配置为使用端口 8080
  • IIS 配置为使用端口 443 (SSL)
  • IIS 通过 ARR + URL 重定向规则重定向到 Tomcat
  • Keycloak 独立配置为使用端口 8443 (SSL)
  • 通过公共域而不是 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 设置

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

部署用例截图 部署用例图

4

1 回答 1

1

但是当我通过 IIS 代理 (443) 访问 Java 应用程序时,IIS/Tomcat 将密钥斗篷身份验证重定向到端口 443 而不是端口 8443。

Java 应用程序的请求来自哪里,它要去哪里。如果您要访问域名,它将首先在 443 上访问您的 IIS 代理。

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

于 2018-07-22T18:35:18.273 回答