首页 > 解决方案 > 托管标识是否可用于 API 管理服务和 Azure 函数之间的通信?

问题描述

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

谢谢

标签: azureazure-api-managementazure-security

解决方案


更新

现在可以通过利用authentication-managed-identity策略来使用托管身份。


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

一种替代方法是使用 APIM Instances IP 通过IP 限制保护您的函数应用程序,只要不重新创建它就保证是静态的,并将函数设置为匿名函数。

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

另一种选择是

您可以尝试使用缓存策略缓存此访问令牌。


推荐阅读