我的问题是,如何限制从Internet访问我的Azure WebApp / WebApi。 例如以下架构:
用户应调用WebApp(前端)的URL,但不应该从互联网上调用WebApi的URL。
好的我知道我可以通过web.config中的IP限制来限制WebApis中的访问。但是没有其他解决方案吗?
我想到了这样的事情:
Azure WebApi and Firewall 这是可能的,我需要什么资源?
答案 0 :(得分:0)
Api不应该有外部IP / DNS,拒绝来自互联网的所有请求
根据您的描述,您不会通过网址访问后端的网络API,也不希望在网络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);
}
答案 1 :(得分:0)
您可以通过创建internally load balanced App Service Environment来实现此目的。这是一个昂贵的选择,但它允许您完全在VNET中创建App Service应用程序,并配置您的负载均衡器以拒绝对后端API的所有公共请求。
如果您只是想保护对后端API的访问,我建议您使用Service Principle Auth。