【问题标题】:How to restrict access for publish Azure Functions to API Management?如何限制将 Azure Functions 发布到 API 管理的访问权限?
【发布时间】:2022-06-16 09:59:28
【问题描述】:

我有一个公共 Azure 函数。我可以访问它的 url 并看到应用程序。是否可以限制这一点,以便只有 API 管理服务才能访问此功能?我不想将函数设为私有 (Vnet),因为那样我需要一个非常昂贵的 API 管理(高级计划)。

【问题讨论】:

标签: azure azure-functions azure-api-management apim


【解决方案1】:

我为限制功能应用程序访问 Internet 并仅允许来自 APIM 实例的解决方法之一是:

  1. 使用 HTTP 触发器创建 .NET Azure Function App(最小代码) - 来自门户的消费托管计划:
#r "Newtonsoft.Json"
using System.Net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;
  
public  static  async Task<IActionResult> Run(HttpRequest req, ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
string responseMessage = "Hello Krishna, This HTTP triggered function executed successfully.";
return  new OkObjectResult(responseMessage);
}
  1. 将此函数应用 API 添加到 Azure APIM 实例。
  2. 在函数应用程序(门户)>设置下的网络>访问限制>添加了仅允许APIM公共IP地址的规则:

测试:

  1. 我已将函数授权级别设置为函数,因此匿名用户无法在 URL 中没有函数键代码的情况下访问函数应用程序 URL。
  2. 为了更安全地保护 Function App(例如仅接受来自相同 Azure AD 租户资源的访问),您可以在 Function App 中配置身份验证。

请参阅Accepting traffic only from APIM for the Function App 上的 Microsoft 博客文章。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多