Azure 应用程序网关不处理请求而只是重定向

Azure Application Gateway does not process request but just redirect

我的问题

我在应用服务前面安装了 Azure 应用程序网关 (AAG)。 Amethystegwamethysteweb1 分别。 AAG 在 VNET1 上。

amethysteweb1 是一个真正的 .NET 应用程序,而不仅仅是默认的 IIS 页面。

从 AAG IP 浏览时,例如 20.223.179.174,它会在应用程序服务上重定向 url:

https://amethysteweb1.azurewebsites.net/

因此,如果我为 VNET1 在 Amethystegw 上设置访问限制,我会收到 403:

注意:我也尝试只设置我的 public AAG IP

如果我激活 WAF 规则它不起作用,因为一切似乎都无法通过 AAG。

我需要的

我该怎么做才能有正常的行为?

为什么 Backend Health 显示 307 代码:

其他信息

是的,我测试了运行良好的应用程序服务。

规则

设置:

探针

我测试成功了

我读到这个与我的问题非常相似:

Azure App Service behind Azure Application Gateway

您需要在应用程序中处理重定向替换,至少对于 .net 5 或 6 我们已经在 Startup.该配置值包含所需的重定向,例如“https://{your url from app gateway}/signin-oidc”

    services.Configure<OpenIdConnectOptions>(OpenIdConnectDefaults.AuthenticationScheme,
     options => {
         Task RedirectToIdentityProvider(RedirectContext ctx) {
             var redirectUri = Configuration.GetValue<string>("AzureAdB2C:RedirectUri");
             if (!string.IsNullOrWhiteSpace(redirectUri)) {
                 ctx.ProtocolMessage.RedirectUri = redirectUri;
             }
             return Task.FromResult(0);
         }

         var previousEvent = options.Events.OnRedirectToIdentityProvider;
         options.Events.OnRedirectToIdentityProvider = (context) => { previousEvent(context); return RedirectToIdentityProvider(context); };
     });

我找到了解决方案。

Web 应用程序是强制将 HTTP 重定向到 HTTPS 的 .NET 应用程序。

我刚删除:

app.UseHttpsRedirection();

它现在正在运行。

感谢所有帮助过我的人。