Azure API 管理和身份验证

Azure API Management and authentication

我们有一个简单的 asp.net 核心服务。我们想通过某种密钥保护向订阅者公开它。但是我们如何保护asp.net核心api服务不被直接使用呢?您通常如何确保只有 API 管理才能调用服务和订阅者只能通过 API 管理?

我假设你已经理解了Protect a web API backend in Azure API Management by using OAuth 2.0 authorization with Azure AD

你想要的是限制用户只能通过 APIM 访问你的 API。

有几个选项:

  • 在 APIM 中设置某个 header/value 并在您的后端检查 API.
  • 在您的网站API中配置IP限制并将其设置为您APIM的VIP。

看到类似的 post here.

更新:

在此基础上添加另外两个方法

  • 使用 client certificate authentication 保护 back-end 服务 在 Azure API 管理中
  • 将APIM和后端API放在同一个VNET中(停止从外部访问) 保护 API.