使后端API仅可通过Azure API管理访问

Shu*_*ing 5 azure azure-api-management azure-web-app-service azure-functions

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

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

Red*_*man 8

最近我也遇到了同样的问题。最后我通过使用“IP 限制”功能找到了解决方案。请参阅以下步骤:

1) 转到 Azure 门户中的 API 管理概述页面,复制 VIP。 API 管理概览页面

2) 在您的 Web APP > 网络中 联网

3) 粘贴您的 VIP 贴vip

  • 不幸的是IP改变了;例如,以下是 Microsoft 关于 API 管理 IP 变更的公告:https://blogs.msdn.microsoft.com/apimanagement/2018/05/31/potential-change-to-api-management-ip-addresses/ (2认同)

Poo*_*eld 6

Microsoft 的解决方案:如何在 Azure API 管理中使用客户端证书身份验证来保护后端服务

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

您可以使用自签名证书,而不是使用受信任的 CA 签名证书 ($$)。我选择实现一个 Azure Key Vault,我在其中生成了一个新证书,将其下载为 *.PFX 文件,并将其上传到我的 API 管理实例中,如本文所述。


Nei*_*eil 5

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

以下是选项:

ps 在我的情况下,我想要 IP 限制,因为它允许在 API 管理网关上保留所有身份验证。


JJ.*_*JJ. 0

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

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