Как ограничить доступ к Azure Web App по значению входящего заголовка?

Я пытаюсь заблокировать доступ к своему веб-приложению Azure, следуя приведенным здесь инструкциям - https://docs.microsoft.com/en-us/azure/frontdoor/front-door-faq.

Первый шаг, который я сделал через портал Azure, но я не уверен, где делать второй шаг (отфильтруйте значения для входящего заголовка 'X-Forwarded-Host'). Это через портал? или через Host Filtering в самом приложении? или через WAF?

3 ответа

С марта 2020 года Azure Frontdoor отправляет X-Azure-FDID заголовок с уникальным значением вашего экземпляра Frontdoor.

Я написал подробное сообщение в блоге о том, как использовать это для ограничения доступа к вашему веб-приложению: https://henrihietala.fi/limit-access-to-your-azure-web-app-from-your-azure-front-door-only/

Ну, служба приложений сама по себе не предоставляет никаких услуг по ограничению доступа на основе значений заголовков. Служба приложений может фильтровать трафик только по IP-адресу.

Я просто добавил промежуточное программное обеспечение для этого:

    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);
                }
            }           
        }
    }

В качестве исходной ссылки входящий заголовок X-Forwarded-Host был отправлен Front Door. Front Door Service включает заголовки из входящего запроса, если они не удалены из-за ограничений. Передняя дверь также добавляет следующие заголовки:

Подробнее читайте здесь.

Другие вопросы по тегам