Azure functions 如何限制Azure功能应用程序';s仅访问AD B2C API连接器?

Azure functions 如何限制Azure功能应用程序';s仅访问AD B2C API连接器?,azure-functions,azure-ad-b2c,Azure Functions,Azure Ad B2c,我已经设置了一个函数应用程序,目的是在“创建用户之前”步骤中通过我的AD B2C API连接器调用它。我想确保此函数只能以这种方式调用。我不知道最好的方法是什么。我看到的一个场景是,使用API管理,我可以要求后端使用用户名/pw来访问所述函数,并且在我的API连接器中,我可以指定相同的u/pw,从而进行身份验证。但这似乎不是生产的最佳方案。理想情况下,我会: 将网络访问限制为仅从API连接器从何处发送请求的ip/域 需要来自API连接器的证书而不是用户名/pw 关于第#1点,我不知道该怎么做,因

我已经设置了一个函数应用程序,目的是在“创建用户之前”步骤中通过我的AD B2C API连接器调用它。我想确保此函数只能以这种方式调用。我不知道最好的方法是什么。我看到的一个场景是,使用API管理,我可以要求后端使用用户名/pw来访问所述函数,并且在我的API连接器中,我可以指定相同的u/pw,从而进行身份验证。但这似乎不是生产的最佳方案。理想情况下,我会:

  • 将网络访问限制为仅从API连接器从何处发送请求的ip/域
  • 需要来自API连接器的证书而不是用户名/pw
  • 关于第#1点,我不知道该怎么做,因为我不知道ip是什么(我猜有几个,可能会有变化),所以也许有一种不同的方式来限制只有我的B2C租户才能访问该功能

    关于第#2点,我认为作为API连接器的一部分,我可以告诉它使用一个证书,在撰写本文时,该证书正在预览中。问题是,唯一的选择是手动上传证书,这意味着每次更新Let's Encrypt证书(90天)时,我都必须手动更改此设置。似乎没有办法像APIM和功能应用程序那样将这个钩子挂到密钥库中,以自动获取最新的证书

    那么,在生产中,锁定对功能应用程序的访问的首选/安全方式是什么?该功能应用程序的唯一目的是作为B2C用户流API连接器中的一个步骤的一部分

  • 不可能,AAD B2C调用REST API的IP范围可以覆盖整个Azure DC IP范围

  • 您需要使用CI/CD管道:

  • 下面是通过Graph API将证书上载到策略密钥的参考,您可以将其集成到管道中


    您可以将此功能与KeyVault相结合,自动生成证书,让您的管道接收证书,并部署到AAD B2C。

    谢谢,我明天会尝试一下,如果它对我有效,我会向您报告!不过看起来很有希望。