当前位置: 首页 > 知识库问答 >
问题:

Quarkus OIDC重定向uri绝对路径

史承福
2023-03-14

我有一个云负载平衡器/虚拟服务器/防火墙,它位于一组Quarkus pod前面,几乎就像一个反向代理。流量通过该公共入口进入,并被重新路由到内部网络。

我们使用Azure B2C登录应用程序,当您直接访问pod或内部负载平衡器时,这一功能非常好。

问题是,当使用外部负载平衡器时,重定向uri位于内部网络的上下文中,无法从公共端访问。

有没有办法将指向外部服务器的重定向uri设置为绝对uri而不是相对uri?文档很清楚它是相对的,但我没有找到任何方法将其重定向到自定义uri。或者,在安全方面,这是一种完全错误的方法吗?我知道我可以尝试重新配置外部负载平衡器,但希望有一种快速的方法来设置重定向uri。我知道这在其他框架中是可能的。

这项工作:

https://pod1:8080

这也有效:

https://internal-load-balancer:8080

这不起作用:

https://external-load-balancer:8080

(重定向uri是内部负载均衡器)

如果有帮助,请提供其他信息。我们正在使用身份验证代码流,quarkus oidc自动将重定向url设置为相对路径。我不确定是否有方法覆盖重定向uri到外部负载平衡器而不是内部负载平衡器。

https://quarkus.io/guides/security-openid-connect-web-authentication#quarkus-oidc_夸克斯。oidc。身份验证。重定向路径

已解决:我必须配置x-转发/反向代理来读取原始源:

https://quarkus.io/guides/security-openid-connect-web-authentication#external-以及对openid connect provider的内部访问

共有1个答案

汪志业
2023-03-14

我必须配置x-forwarded/reverse代理来读取原始源代码。我将此添加到应用程序中。属性:

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标头,而不是查看转发标头(默认值为false),启用x-forwarded-host标头,并覆盖x-forwarded-host属性以使用自定义标头名称。

我的内部负载平衡器有一个错误,它将用内部名称覆盖x-forwarded-host,而不管x-forwarded-host是否已经存在。我还必须配置我的外部负载平衡器,以添加一个额外的自定义头(x-original-host,但名称是任意的),这样我的内部负载平衡器就不会覆盖它。

配置Quarkus后,重定向uri使用新的自定义标头来构建指向外部负载均衡器的重定向uri,并且一切都按预期工作。

https://quarkus.io/guides/security-openid-connect-web-authentication#running-behind-a-reverse-proxy

 类似资料:
  • 问题内容: 我有一个庞大的Django网络应用程序,其中的一个模块(“仪表板”)用node和react编写。用户登录由Django模块处理。 用户应该登录到主应用程序才能访问react仪表板,这部分起作用-代码从浏览器获取用户会话,并且仅在有内容的情况下呈现内容。 我现在想在没有会话的情况下将用户重定向到应用主登录页面,但是我不知道如何使用当前结构(和该血腥的v4路由器)进行操作。 我在Brows

  • 我正在通过这个sdk集成Instagram登录https://github.com/crino/instagram-ios-sdk 我用重定向URI"http://www.webvillee.com/callback"注册了我的应用程序,并获得了客户端ID和秘密ID。 现在,当我想通过应用程序登录时,它显示错误400“重定向URI与注册的重定向URI不匹配”。 我还试图在安全会话中用ig Clie

  • 问题内容: 如何在angularjs中将用户重定向到绝对URL。 例如:我有一个页面,即我当前的网址(http://example.com/submit),一旦用户单击网页中的某个按钮,他就必须重定向到其他网页,例如(’ http: //google.com ‘)。 我尝试使用 但是没有任何效果。 注意: 不应从Web服务器进行重新部署。它是一个REST API。想要在客户端(使用angularj

  • 我正在尝试让Spotify API与AngularJS一起工作。我在授权阶段收到一个无效的重定向URI错误(https://developer.spotify.com/web-api/authorization-guide/). 我在白名单中添加了redirect_uri,当我有一个uri,比如 但当我有一个带有散列的URI时,它就不起作用了 我想使用后者URI的原因是因为前者我得到了一个URI,

  • 我试图通过spotify Android Api在我的Android应用程序中实现spotify,当我试图获取访问令牌时,我得到的是“#”而不是“?”在重定向uri中设置GET参数,如下所示http://192.168.x.xx:8080/callbackspotify.php#access_token=BQA4Ze8sb-pbuvjjinzngb08rzhnngwj94k9dp_QADbo_Aa

  • 我正在使用Spotipy从授权用户那里获取一些spotify数据,但我不知道如何授权我的帐户。 我认为服务器需要在http://www.myapp.com/callback托管一些东西,这是正确的吗?需要返回什么?也许我完全遗漏了一些东西...我对整个必需的重定向URI感到非常困惑... 我正在尝试制作一个没有网站的程序,那么我应该如何处理授权?重定向URI到底应该做什么? 谢谢 编辑: 现在使用