Keycloak - 代理/前端 Url / Javascript 客户端重定向问题

Keycloak - Proxy / Front End Url / Javascript client redirect issue

我正在尝试将 Keycloak 用于未来的一些项目,它对我来说仍然很新,所以我正在努力阅读文档并在线搜索问题,但我目前对一件事感到困惑 - 我有我添加为客户端的 vuejs 应用程序 (127.0.0.1:3001),我在 IIS 中设置了反向代理 (idp.mc.local) 然后在 Windows 上使用密钥斗篷 运行 (127.0.0.1:8080) 上的 docker 容器,当我尝试登录时,相反被重定向回 vuejs 客户端我只是被重定向到状态值在 url 中的反向代理的根,如下面的屏幕截图中的网络日志所示:

Network logs showing incorrected 'Location' redirect

如果我没有为领域设置前端 url 并绕过代理/挂钩我的 vuejs 客户端通过 Keycloak 直接登录 127.0.0.1:8080,它正确地重定向到 127.0.0.1:3001/#state...,如下所示:

Network logs showing correct 'Location' redirect

我找不到任何方法来解决这个问题,我认为领域的前端 url 应该说明代理地址?我不明白为什么 Keycloak 会在登录过程结束时重定向到它而不是我的客户端应用程序 url,redirect_uri 被 keycloak 忽略并且出于某种原因让我回到我的代理域的根。如果我真的手动访问 127.0.0.1:3001/#state... 并从错误的重定向中复制状态值,我就成功登录了。

这让我感到困惑,如有任何帮助,我们将不胜感激!

答案确实是与 IIS 相关的问题,应用程序请求路由/ARR 的设置是问题所在。需要的是编辑 IIS 应用程序请求路由的设置并取消选中选项:

Reverse rewrite host in response headers 如下图所示:

IIS ARR Checkbox to untick

希望这对在某些时候可能遇到相同问题的其他人有所帮助!