托管标识可用于 API 管理服务和 Azure 函数之间的通信吗?

Is managed identity available for communication between API Management service and Azure functions?

我有一个 Azure API 管理服务与 Azure 函数运行时 v1 通信。目前,当我部署新版本的 Function App(在 Azure Devops 中使用 CI/CD 管道,并使用内置的 Microsoft 任务)时,功能键(包括主键)发生变化。因此,API 管理层的 api 在函数请求中注入的密钥不再有效,我收到 401 - 未经授权。因此,我目前正在执行一项任务,以便在我部署 Function App 时随时更新这些密钥。 API 管理提供了启用托管标识的功能,但是当我尝试在 Function App 中为 API 管理创建角色分配时,在系统分配的托管标识下,我没有API 管理服务的选项。所以我认为不可能在两个服务之间设置这个角色分配,对吧?如果没有,那么是否有任何解决方法的建议,以避免管理 API 管理服务和 Azure Functions 之间通信的密钥?

谢谢

更新

现在可以通过利用 authentication-managed-identity policy.

使用托管身份

是的。此处不能使用托管标识。

一种替代方法是使用 IP restriction using the APIM Instances IP which guaranteed to be static 保护您的函数应用程序,只要它不被重新创建并将该函数设置为匿名函数即可。

请注意,您也可能在从门户访问该功能时遇到问题,如果需要,您必须允许您正在使用的计算机的 public IP 访问。

另一种选择是

您可以尝试使用 cache policies.

缓存此访问令牌