【问题标题】:Trigger Azure AD Protected API hosted in Azure Web Apps from Power Automate从 Power Automate 触发 Azure Web 应用中托管的受 Azure AD 保护的 API
【发布时间】:2022-02-21 15:05:00
【问题描述】:

我们在 Azure 中托管了一个作为 Azure Web 应用程序的 Web API。此 API 需要来自我们的 Azure AD 的访问令牌来进行身份验证。此 API 在客户端应用程序通过 http 触发时起作用。但是,我们还需要触发此 API 以按计划运行,并认为 Power Automate 将是一个有用的工具,因为我们可以安排经过身份验证的 http 请求(但对替代解决方案持开放态度)。

这是我们考虑的基本流程:

我们已在 Azure AD 中将 Power Automate 流注册为应用程序注册,我们获得了有效的访问令牌,但是,当我们调用 API 时,我可以从 Application Insights 看到我们收到未经授权的错误,因为范围和角色在令牌声明中指定。我们如何从 Power Automate 调用这个受 Azure AD 保护的 API?

注意

  1. 我们没有使用 azure 函数来安排这项工作,因为我们 需要一个可预测的 IP,我们已经有一个 Azure 应用服务 计划托管此 API。

  2. 我们需要此 API 按计划运行,但也可以通过以下方式触发 http

【问题讨论】:

    标签: azure azure-active-directory azure-web-app-service power-automate


    【解决方案1】:

    我们已经在本地环境中对此进行了测试,它运行良好。以下陈述基于我们的分析。

    1. 我们创建了一个 Web 应用程序(使用 .NET 6 作为运行时堆栈和 Windows 操作系统运行),启用应用程序洞察力并发布了一个示例 Web 应用程序,该应用程序具有来自我们本地 Visual Studio 代码 2022 的 2 个页面(主页、隐私) .

    2. 为了从 Power-automate HTTP 触发器调用其中一个 Web 应用程序页面(隐私),我们启用了对 Web 应用程序的身份验证,该 Web 应用程序已在 Azure AD 中使用 User.Read 作为委托权限创建了应用程序注册。

    3. 启用身份验证后,我们可以毫无问题地从 power-automate 调用 Web 应用隐私页面。电源自动化触发的所有请求也在应用洞察中显示成功。

    这是供参考的示例输出:

    在下面的屏幕截图中,我们使用 HTTP 触发器调用了 webapp 并请求成功,即使在应用程序洞察中也是如此。

    注意: 我们建议您检查您是否在 power-automate 的 HTTP 触发器中提供了正确的客户端 ID、秘密值和应用注册权限 (User.Read)。

    【讨论】:

      猜你喜欢
      • 2020-02-19
      • 2017-11-02
      • 2020-06-11
      • 2019-12-03
      • 1970-01-01
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      • 2014-10-29
      相关资源
      最近更新 更多