Quarkus OIDC 重定向 uri 绝对路径
Quarkus OIDC redirect uri absolute path
我有一个云负载 balancer/virtual server/firewall
位于 Quarkus
pods 的集合前面,几乎充当反向代理。流量通过该 public 入口点进入并重新路由到内部网络。
我们正在使用 Azure B2C 登录应用程序,当您直接访问 pod 或内部负载平衡器时,它运行良好。
问题是,当使用外部负载平衡器时,重定向 uri 位于无法从 public 端访问的内部网络上下文中。
有没有办法将我们外部服务器的重定向 uri 设置为绝对 uri 而不是相对 uri?文档很清楚它是相对的,但我没有看到任何方法将它重定向到自定义 uri。或者在安全方面这是一种完全错误的方法?我知道我可以尝试重新配置外部负载平衡器,但想要一种快速设置重定向 uri 的方法。我知道这在其他框架中是可能的。
这个有效:
https://pod1:8080
这也有效:
https://internal-load-balancer:8080
这行不通:
https://external-load-balancer:8080
(redirect uri is the internal-load-balancer)
如果有帮助,请提供其他信息。我们正在使用授权代码流,quarkus-oidc
自动将重定向 url 设置为相对路径。我不确定是否有办法将重定向 uri 覆盖到我们的外部负载均衡器而不是内部负载均衡器。
已解决:
我必须配置 x-forwarded/reverse 代理才能读取原始来源:
我必须配置 x-forwarded/reverse 代理才能读取原始来源。
我将其添加到 application.properties:
quarkus.http.proxy.proxy-address-forwarding=true
quarkus.http.proxy.allow-forwarded=false
quarkus.http.proxy.enable-forwarded-host=true
quarkus.http.proxy.forwarded-host-header=X-ORIGINAL-HOST
这使应用程序可以查看 x-forwarded headers,而不查看转发的 header(默认为 false),启用 x-forwarded-host header,并覆盖 x-forwarded-host 属性 以使用自定义 header 名称。
我的内部负载平衡器有一个错误,它会用内部名称覆盖 x-forwarded-host,而不管 x-forwarded-host 是否已经存在。我还必须配置我的外部负载均衡器以添加额外的自定义 header(x-original-host 但名称是任意的)所以我的内部负载均衡器不会覆盖它。
配置 Quarkus 后,重定向 uri 使用新的自定义 header 构建指向外部负载均衡器的重定向 uri,一切都按预期工作。
https://quarkus.io/guides/security-openid-connect-web-authentication#running-behind-a-reverse-proxy
我有一个云负载 balancer/virtual server/firewall
位于 Quarkus
pods 的集合前面,几乎充当反向代理。流量通过该 public 入口点进入并重新路由到内部网络。
我们正在使用 Azure B2C 登录应用程序,当您直接访问 pod 或内部负载平衡器时,它运行良好。
问题是,当使用外部负载平衡器时,重定向 uri 位于无法从 public 端访问的内部网络上下文中。
有没有办法将我们外部服务器的重定向 uri 设置为绝对 uri 而不是相对 uri?文档很清楚它是相对的,但我没有看到任何方法将它重定向到自定义 uri。或者在安全方面这是一种完全错误的方法?我知道我可以尝试重新配置外部负载平衡器,但想要一种快速设置重定向 uri 的方法。我知道这在其他框架中是可能的。
这个有效:
https://pod1:8080
这也有效:
https://internal-load-balancer:8080
这行不通:
https://external-load-balancer:8080
(redirect uri is the internal-load-balancer)
如果有帮助,请提供其他信息。我们正在使用授权代码流,quarkus-oidc
自动将重定向 url 设置为相对路径。我不确定是否有办法将重定向 uri 覆盖到我们的外部负载均衡器而不是内部负载均衡器。
已解决: 我必须配置 x-forwarded/reverse 代理才能读取原始来源:
我必须配置 x-forwarded/reverse 代理才能读取原始来源。 我将其添加到 application.properties:
quarkus.http.proxy.proxy-address-forwarding=true
quarkus.http.proxy.allow-forwarded=false
quarkus.http.proxy.enable-forwarded-host=true
quarkus.http.proxy.forwarded-host-header=X-ORIGINAL-HOST
这使应用程序可以查看 x-forwarded headers,而不查看转发的 header(默认为 false),启用 x-forwarded-host header,并覆盖 x-forwarded-host 属性 以使用自定义 header 名称。
我的内部负载平衡器有一个错误,它会用内部名称覆盖 x-forwarded-host,而不管 x-forwarded-host 是否已经存在。我还必须配置我的外部负载均衡器以添加额外的自定义 header(x-original-host 但名称是任意的)所以我的内部负载均衡器不会覆盖它。
配置 Quarkus 后,重定向 uri 使用新的自定义 header 构建指向外部负载均衡器的重定向 uri,一切都按预期工作。
https://quarkus.io/guides/security-openid-connect-web-authentication#running-behind-a-reverse-proxy