【问题标题】:Calling Azure Function from ADF using MSI使用 MSI 从 ADF 调用 Azure 函数
【发布时间】:2021-03-02 12:59:44
【问题描述】:

我正在尝试使用 MSI 从 ADF 调用函数应用。 我为 ADF 启用了托管身份,并为 Function 应用启用了 AAD 身份验证/授权。

现在,当我从 ADF(使用底层规范)进行网络调用时

我收到以下错误。

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

【问题讨论】:

  • 函数上的 AAD 可能正在评估 ADF 的 MSI。要测试 FunctionApp 中的功能,请浏览至 Function Keys(如果没有添加新功能)。否则复制密钥并将 ADF 中的 url 构建为 https://<funtionapp>.azurewebsites.net/api/<function>?code=<code>
  • 感谢您的意见@koushik。这确实可能有效,但目的是启用安全集成,而不必使用/公开密钥。因此,寻找能够通过 MSI 进行身份验证的东西。
  • @JosephXu 是的,他们是!显然我错过了一些东西。能否请您分享步骤...这将非常有帮助。然后我可以试一试

标签: azure function azure-data-factory azure-function-app azure-managed-identity


【解决方案1】:

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

你的情况,错误是Resource错误造成的,应该是函数应用对应的AD App的Application ID URI,即https://<functionapp-name>.azurewebsites.net(这个是azure在选择@的时候自动配置的987654330@如上所述)。

此外,您应该注意,如果您只是执行上述步骤,那么您的 AAD 租户中的所有服务主体(MSI 本质上是一个服务主体)/用户都可以访问函数应用,如果您只是想让你的MSI访问函数应用,那么你需要利用Azure AD App role,我已经发布了详细信息here,如果你不介意这个,忽略第2步和第3步,它也可以工作.

【讨论】:

  • 感谢您提供帮助。它确实解决了这个问题。错误是错误的资源。用https://<functionapp-name>.azurewebsites.net 替换它后,它工作得很好!
猜你喜欢
  • 2020-02-22
  • 2020-02-24
  • 2018-10-04
  • 2017-04-21
  • 1970-01-01
  • 2018-02-22
  • 1970-01-01
  • 2021-12-24
  • 2021-01-18
相关资源
最近更新 更多