如何阻止直接访问 Azure 应用服务中托管的 API



我有一个托管在 Azure 应用服务中的后端 API。 我想使用 Azure API 管理作为此后端 API 的前端,并已在 Azure 中成功配置了此管理。 我已将 API 管理配置为在访问此后端 API 时使用 OAuth,当客户端通过 Azure API 管理终结点访问 API 时,该 API 管理有效,但如何防止用户直接访问后端 API 终结点,以便仅允许来自 API 管理终结点的调用?

有几个不同安全级别的选项:

  1. 共享密钥 - 在 APIM 中设置具有特定值的特定标头,并在后端检查该值。
  2. 托管标识 - 可以在 APIM 服务中启用托管标识,并将其令牌发送到后端,以便能够对其进行验证。
  3. IP
  4. 筛选器 - 在后端检查 APIM IP 作为源。
  5. 客户端证书身份验证 - 将客户端证书身份验证上传到 APIM,并将其附加到后端的每个请求。在后端检查该证书。
  6. VNET - 将 APIM 和后端放入同一 VNET 中,并阻止从外部到后端的访问。

我个人使用IP限制取得了巨大的成功。 APIM 被赋予一个静态 IP,因此您可以在"根 API"中设置仅允许 APIM 调用的 IP 限制。 如果直接调用根 API,则会导致 403。

如果您不希望 403 来自根 API,则可以使用策略来更改它,或者您可以在 APIM 级别设置身份验证,您将在点击该 403 之前获得 401。

最新更新