API管理服务和Azure功能之间的通信是否可以使用托管身份?

时间:2019-04-02 15:24:26

标签: azure azure-api-management azure-security

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

谢谢

1 个答案:

答案 0 :(得分:1)

是的。托管身份不能在此处使用。

一种替代方法是使用IP restriction(只要不重新创建)的APIM实例IP使用guaranteed to be static保护您的函数应用,并将该函数设置为匿名函数。

请注意,您也可能无法从门户网站访问该功能,如果需要,您还必须允许其所使用的计算机的公共IP进行访问。

另一种选择是

您可以尝试使用cache policies缓存此访问令牌。