Azure应用程序网关重定向http而不是https进行后端重定向

1l5u6lss  于 2022-11-17  发布在  其他
关注(0)|答案(1)|浏览(168)

我有一个blazor应用程序,它使用302重定向来重定向到登录页面。如果从本地网络打开它,它会在http标头中返回:

Status Code: 302
http://myvm/Identity/Account/Login?returnUrl=%2F

它按预期工作。
当从Azure应用程序网关访问此虚拟机时,重定向起作用,但网关仅替换主机,而不替换协议。
例如,我叫:
https://example.com
此域指向Azure应用程序网关。
网关返回

Status Code: 302
http://example.com/Identity/Account/Login?returnUrl=%2F

请注意,它取代了主机,但没有取代协议(应该是https,而不是http)。
我的解决方法是添加一个从https到http的重定向规则。
我不喜欢它,因为网关仍然返回http,但随后执行新规则并重定向到https。
有没有一个优雅的解决方案?

fzwojiic

fzwojiic1#

在我看来,最好的解决方案是在后端响应中重写Location标头。This documentation描述了如何从Azure门户创建重写规则,特别是位置标头。然后创建专门的规则,将http://替换为https://

相关问题