只能通过Azure API管理访问后端API

时间:2016-04-21 08:58:52

标签: azure azure-functions azure-web-app-service azure-api-management

我在Azure中部署了多个Web API而未应用身份验证,因此任何人都可以访问Internet,从而可以访问Web API。

现在我想对Web API应用身份验证,而不是在不同的Web API中实现相同的身份验证逻辑,我发现Azure API网关(API管理)是一种潜在的解决方案。通过Azure API管理文档,我了解到我可以应用validate-jwt之类的策略来验证对后端Web API的请求。但是,后端Web API的端点仍可供用户使用。那么,我该如何隐藏它们呢?通过定义子网络或Azure API管理有这个功能吗?

6 个答案:

答案 0 :(得分:4)

最近我也遇到了这个问题,最后我通过使用“ IP限制”功能找到了解决方案,请参阅以下步骤: 1)转到Azure门户中的“ API管理概述”页面,复制VIP。 enter image description here

2)在您的Web APP中>网络 enter image description here

3)现在将贵宾过去 enter image description here

答案 1 :(得分:1)

Microsoft的解决方案:How to secure back-end services using client certificate authentication in Azure API Management

使用这种方法,任何在没有所需证书的情况下访问后端服务的尝试都将导致403 - Forbidden响应。

与使用受信任的CA签名证书($$)相比,可以使用自签名证书。我选择实现一个Azure Key Vault,在其中生成一个新证书,将其下载为* .PFX文件,然后按照本文中的描述将其上传到我的API管理实例中。

答案 2 :(得分:0)

Azure API管理无法修改您的后端服务。它的作用仅限于代理。

您必须对每个Web API应用身份验证,或将防火墙配置为仅接受来自Azure APIM的请求。

答案 3 :(得分:0)

或者您可以使用:

  1. 基本身份验证
  2. 相互证书身份验证
  3. VPN
  4. 保护Azure API管理服务与后端服务的通信。

答案 4 :(得分:0)

了解如何在Azure API Management上设置TLS,以便与后端API的所有连接都必须通过API代理。

答案 5 :(得分:0)

这是@ PramodValavala-MSFT的回答
https://github.com/MicrosoftDocs/azure-docs/issues/26312#issuecomment-470105156

以下是选项:

p.s。就我而言,我想要IP限制,因为它允许将所有身份验证保留在API管理网关上。