Azure 应用程序网关不处理请求而只是重定向
Azure Application Gateway does not process request but just redirect
我的问题
我在应用服务前面安装了 Azure 应用程序网关 (AAG)。
Amethystegw 和 amethysteweb1 分别。 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 代码:
其他信息
是的,我测试了运行良好的应用程序服务。
- 标准 V2 层级
- 侦听器类型:基本
- 没有自定义域
- HTTP (80) 端口
规则:
设置:
探针
我测试成功了
我读到这个与我的问题非常相似:
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();
它现在正在运行。
感谢所有帮助过我的人。
我的问题
我在应用服务前面安装了 Azure 应用程序网关 (AAG)。 Amethystegw 和 amethysteweb1 分别。 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 代码:
其他信息
是的,我测试了运行良好的应用程序服务。
- 标准 V2 层级
- 侦听器类型:基本
- 没有自定义域
- HTTP (80) 端口
规则:
设置:
探针
我测试成功了
我读到这个与我的问题非常相似:
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();
它现在正在运行。
感谢所有帮助过我的人。