【问题标题】:Oauth Authentication in Logic Apps逻辑应用中的 Oauth 身份验证
【发布时间】:2017-09-01 09:50:19
【问题描述】:

如何使用 Oauth 身份验证机制对逻辑应用的 HTTP 请求进行身份验证?任何想法和指针都非常感谢。

【问题讨论】:

    标签: oauth oauth-2.0 azure-logic-apps


    【解决方案1】:

    我相信截至目前 (2020-12-11),您可以使用 Active Directory OAuth 来调用逻辑应用 HTTP 触发器

    我必须添加一个带有 https://sts.windows.net/<tenant id> 颁发者声明的 Azure Active Directory 授权策略

    然后,我的测试逻辑应用可以使用 HTTP 操作发出请求,其中身份验证类型设置为“Active Directory OAuth”,权限设置为 https://login.microsoftonline.com,受众设置为 https://management.azure.com,客户端 ID 和密码来自应用注册

    【讨论】:

      【解决方案2】:

      这是一个老话题,但如果有人偶然发现了这个挑战,那么高级答案是

      1. 创建 API 管理
      2. 将 API 管理的 VIP(虚拟 IP)添加到 Logic App Firewall
      3. 在 API 管理中添加 OAuth 令牌策略
      4. 在 API 管理中添加删除授权标头策略
      5. (可选)添加提取声明策略表达式以将调用者详细信息传递给逻辑应用以获得额外逻辑

      如果您有兴趣,我在我的博客https://marczak.io/posts/2019/08/secure-logic-app-with-api-management/ 上对此进行了非常详细的解释

      【讨论】:

      • 不错的答案,但是在逻辑应用程序中是否可以在不添加 APIM 的情况下这样做?
      • 不幸的是不是@SteveC
      【解决方案3】:

      请求触发器仅支持 SAS 密钥,但是您可以将端点放在 API 管理后面,这将允许您进行 Oauth。

      【讨论】:

      • 但是,当然,带有 SAS 密钥的 HTTP 触发器仍然存在,因此知道启用 SAS 的 url 的客户端可以绕过 API 管理...
      • 逻辑应用程序支持 IP 白名单,因此如果您决定将逻辑应用程序端点置于 API-M 之后,您只能将 API-M IP 列入白名单,并且其他调用者不能调用所述逻辑应用程序,即使它们知道 SAS 密钥。
      • 另外,Oauth 请求触发器在我们的积压工作中,但目前没有 ETA。
      • 如何限制 APIM IP 地址?我可以仅限于我的实例吗?
      • @Josh 正确。在逻辑应用页面中,找到“访问控制配置(即将称为“工作流设置”)”。选择“特定 IP 范围”并填写您的 API-M 实例的 IP。
      猜你喜欢
      • 2016-09-06
      • 1970-01-01
      • 2021-11-23
      • 2021-01-12
      • 1970-01-01
      • 1970-01-01
      • 2015-02-02
      • 1970-01-01
      • 2021-05-26
      相关资源
      最近更新 更多