You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Azure Functions私有访问Azure VM内.NET MVC API并跳过认证?

可行!利用Azure私有基础设施实现无认证调用

当然可以做到,而且正如你猜测的,借助Azure的私有网络能力,既能跳过认证,又能保证通信的安全性,完全不用把VM的API暴露到公网。下面给你几个靠谱的方案:

方案1:VNet整合 + IP白名单跳过认证

把Azure Functions和你的VM放到同一个**Azure虚拟网络(VNet)**里,这样两者之间的通信完全在Azure私有骨干网内进行,不会走公网。然后在你的.NET MVC API里做个简单的IP白名单校验:

  • 第一步:给Azure Functions配置VNet集成(选择和VM同一个VNet的子网),确保Functions的出站请求是从VNet内的私有IP发出的。
  • 第二步:获取Functions所在子网的IP范围(比如10.0.1.0/24)。
  • 第三步:在MVC API里添加一个自定义授权过滤器,检查请求的来源IP是否在这个白名单范围内,如果是,就跳过认证流程。示例代码大概是这样:
public class SkipAuthForVNetFilter : ActionFilterAttribute
{
    private readonly string[] _allowedIpRanges = new[] { "10.0.1.0/24" };

    public override void OnAuthorization(AuthorizationFilterContext context)
    {
        var clientIp = context.HttpContext.Connection.RemoteIpAddress;
        if (IsIpInRange(clientIp, _allowedIpRanges))
        {
            // 跳过认证,直接允许请求
            return;
        }
        // 其他情况走正常认证流程
        base.OnAuthorization(context);
    }

    private bool IsIpInRange(IPAddress ip, string[] ranges)
    {
        // 可以借助IPNetwork库简化范围校验,也可自行实现逻辑
        foreach (var range in ranges)
        {
            var network = IPNetwork.Parse(range);
            if (IPNetwork.Contains(network, ip))
            {
                return true;
            }
        }
        return false;
    }
}
  • 最后把这个过滤器加到需要跳过认证的API控制器或者Action上即可。

如果想更彻底地隔离流量,可以给VM的API配置Azure Private Link,创建一个私有端点。这样只有在同一个VNet(或者对等VNet)里的Azure Functions才能通过这个私有端点访问API,完全杜绝公网访问的可能。然后同样在API里对来自私有端点的请求跳过认证——因为能通过私有端点访问的只有你授权的Azure资源(比如你的Functions),安全性非常高。

方案3:用托管标识替代“跳过认证”(更安全的最佳实践)

虽然你说想跳过认证,但还是想提一下这个更符合Azure安全规范的方案:给Azure Functions分配一个系统托管标识,然后在你的.NET MVC API里配置Azure AD认证,允许这个托管标识的访问权限。这样不需要跳过认证,而是让Functions用自己的身份安全地访问API,比单纯跳过认证更可控,也更安全。

注意事项

不管用哪个方案,一定要确保VM的API没有暴露公网端点(比如关闭NSG里的公网入站规则),只有私有网络内的流量能访问,这样即使跳过认证也不会有安全风险。

内容的提问来源于stack exchange,提问作者Luis Villavicencio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:44:37