使用 MSI 从 ADF 调用 Azure 函数

Calling Azure Function from ADF using MSI

我正在尝试使用 MSI 从 ADF 调用函数应用程序。 我为 ADF 启用了托管身份,并为 Function 应用程序启用了 AAD authentication/authorization。

现在,当我从 ADF(具有基础规范)进行网络调用时

我收到以下错误。

我什至将 ADF 添加为 Function App 的贡献者。 我一定是遗漏了什么,但不确定到底是什么

首先,请确保您在使用 Azure AD 身份验证配置函数应用程序时 select 编辑了 Create New AD App 选项,然后 azure 会自动为您完成所有配置,这将减少不必要的麻烦。还要记住将函数的 Authorization level 设置为 Anonymous,因为我们使用 Azure AD 身份验证配置了函数应用程序。

你的情况是Resource错误导致的,应该是函数app对应的AD App的Application ID URI,即https://<functionapp-name>.azurewebsites.net(这是如上所述,当您 select Create New AD App 时由 azure 自动配置。

除此之外,你应该注意,如果你只是执行上述步骤,你的AAD租户中的所有服务主体(MSI本质上是服务主体)/用户都可以访问function app,如果你只是想让你的MSI访问function app,那么你需要利用Azure AD App role, I have posted the details ,如果你不介意这个,忽略第2步和第3步,它也会起作用。