繁体   English   中英

如何限制将 Azure Functions 发布到 API 管理的访问权限?

[英]How to restrict access for publish Azure Functions to API Management?

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

我为限制 Function App 访问 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. 在 Function App (Portal) > Networking 下的 Settings > Access Restrictions > 添加了仅允许 APIM Public IP 地址的规则:

在此处输入图像描述

测试: 在此处输入图像描述

在此处输入图像描述

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

请参阅有关仅接受来自 APIM 的函数应用程序的流量的 Microsoft 博客文章。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM