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.