如何从Azure函数调用受保护的API



有一个Azure Web App服务,我必须在该服务上调用API get方法。web应用服务在身份提供者保护下,调用者必须是Azure函数.

我收到以下消息Azure功能已开始工作:"您没有权限查看此目录或页面。">该消息已从Azure Web应用程序(由Azure身份提供程序保护)发送

你们可以意识到,Azure函数没有调用受保护的Azure Web应用程序服务的权限。原因对我来说很清楚,web应用程序服务受到Azure身份提供程序的保护。

如何调用get方法在这种情况下,Azure功能的Web应用程序服务?

方法是使用托管身份

你给你的Azure函数一个系统分配的标识。

然后将权限授予Azure Web应用程序上系统分配的标识。

见:https://learn.microsoft.com/en-us/azure/app-service/overview-managed-identity?tabs=portal%2Chttp

我如何理解这应该工作是,你必须启用托管身份你的Azure函数。这将在Azure Active Directory中创建一个托管应用程序(服务主体)。

那么你将不得不授予此托管应用程序权限来调用Azure Web应用程序。在你的Azure函数中,你必须添加一些实现来获取令牌为您的Azure Web应用程序使用您之前创建的托管身份。使用该令牌,您可以创建包含API访问令牌的REST请求。

下面是。net

的代码示例

最新更新