如何通过传入的 header 值限制对 Azure Web App 的访问?
How do you restrict access to Azure Web App by incoming header value?
我正在尝试按照此处的说明锁定对我的 Azure Web 应用程序的访问 - https://docs.microsoft.com/en-us/azure/frontdoor/front-door-faq#how-do-i-lock-down-the-access-to-my-backend-to-only-azure-front-door。
我通过 Azure 门户完成了第一步,但我不确定在何处执行第二步(过滤传入 header 'X-Forwarded-Host' 的值)。是通过门户吗?还是通过应用程序本身的主机过滤?还是通过 WAF?
Well App服务本身不提供任何基于header值限制访问的服务。应用服务只能过滤 IP 地址上的流量。
作为提供者 link,传入的 header X-Forwarded-Host 由 Front Door 发送。 Front Door Service 包括来自传入请求的 headers,除非由于限制而被删除。 Front Door 还添加了以下 headers:
阅读更多详情here。
我最后只是添加了一些中间件来执行此操作:
public class XForwardedHostMiddleware
{
private readonly RequestDelegate _next;
public XForwardedHostMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task InvokeAsync(HttpContext context, IHostingEnvironment environment, IConfiguration configuration)
{
var forwardedHost = context.Request.Headers["X-Forwarded-Host"].ToString();
if (forwardedHost != "ex.ample.com")
{
await context.Response.WriteAsync("Blocked");
}
else
{
await _next(context);
}
}
}
}
自 2020 年 3 月起,Azure Frontdoor 发送 X-Azure-FDID
header,其中包含您的 Frontdoor 实例的唯一值。
我写了一篇详细的博客 post 关于如何利用它来限制对您的网络应用程序的访问:https://henrihietala.fi/limit-access-to-your-azure-web-app-from-your-azure-front-door-only/
我正在尝试按照此处的说明锁定对我的 Azure Web 应用程序的访问 - https://docs.microsoft.com/en-us/azure/frontdoor/front-door-faq#how-do-i-lock-down-the-access-to-my-backend-to-only-azure-front-door。
我通过 Azure 门户完成了第一步,但我不确定在何处执行第二步(过滤传入 header 'X-Forwarded-Host' 的值)。是通过门户吗?还是通过应用程序本身的主机过滤?还是通过 WAF?
Well App服务本身不提供任何基于header值限制访问的服务。应用服务只能过滤 IP 地址上的流量。
作为提供者 link,传入的 header X-Forwarded-Host 由 Front Door 发送。 Front Door Service 包括来自传入请求的 headers,除非由于限制而被删除。 Front Door 还添加了以下 headers:
阅读更多详情here。
我最后只是添加了一些中间件来执行此操作:
public class XForwardedHostMiddleware
{
private readonly RequestDelegate _next;
public XForwardedHostMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task InvokeAsync(HttpContext context, IHostingEnvironment environment, IConfiguration configuration)
{
var forwardedHost = context.Request.Headers["X-Forwarded-Host"].ToString();
if (forwardedHost != "ex.ample.com")
{
await context.Response.WriteAsync("Blocked");
}
else
{
await _next(context);
}
}
}
}
自 2020 年 3 月起,Azure Frontdoor 发送 X-Azure-FDID
header,其中包含您的 Frontdoor 实例的唯一值。
我写了一篇详细的博客 post 关于如何利用它来限制对您的网络应用程序的访问:https://henrihietala.fi/limit-access-to-your-azure-web-app-from-your-azure-front-door-only/