Azure WebApi - нет доступа из Интернета

У меня вопрос, как я могу ограничить доступ к своему Azure WebApp/WebApi из Интернета. Например, следующая архитектура:

  • Один WebApi (Бэкэнд)
  • Одно веб-приложение (интерфейс)

Пользователь должен вызывать URL-адрес WebApp (Frontend), но он не должен вызывать URL-адрес WebApi из Интернета.

Хорошо, я знаю, что могу ограничить доступ в WebApis через IP-ограничения в web.config. Но нет ли другого решения?

Я думал о чем-то вроде этого:

Azure WebApi и брандмауэр Возможно ли это и какие именно ресурсы мне нужны?

2 ответа

Api не должен иметь внешний IP/DNS, отклонить все запросы, поступающие из Интернета

Согласно вашему описанию, вы не будете получать доступ к веб-API, который является бэкендом через URL, и не хотите использовать фильтры аутентификации в веб-API.

На самом деле, вы можете настроить конфигурацию вашего маршрутизатора для достижения этого. Вы можете использовать следующий код в Global.asax:

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    GlobalConfiguration.Configure(WebApiConfig.Register);
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
}

Это можно сделать, создав внутреннюю среду службы приложений с балансировкой нагрузки. Это дорогостоящий вариант, но он позволяет вам полностью создать приложение службы приложений в вашей VNET и настроить балансировщик нагрузки на отклонение всех общедоступных запросов к внутреннему API.

Если вы просто ищете безопасный доступ к бэкэнд-API, я бы предложил использовать Autle Service Principle.

Включение аутентификации в приложении-службе приложения

Настройка сервисного принципа аутентификации