Azure 逻辑应用 HTTP 请求身份验证范围

问题描述 投票:0回答:3

我们有一个 API 作为 Azure Web 应用程序托管在 Azure 中,我们需要按计划通过 http 触发它。

我们的 API 要求随每个请求发送有效的 Azure AD 访问令牌。

Azure Logic Apps 为我们提供了使用 Azure AD 对请求进行身份验证的选项。但是,我们没有看到在请求中包含范围的选项。如果我们发送没有指定范围或角色的请求,我们会收到以下错误:

System.UnauthorizedAccessException: IDW10201: Neither scope or roles claim was found in the bearer token.

enter image description here

当 API 的访问令牌中需要范围/角色时,我们如何验证来自 Azure 逻辑应用程序的 http 请求?

azure azure-active-directory azure-web-app-service azure-logic-apps
3个回答
1
投票

感谢@Skin的建议!

以下是对这个问题的未来访问者有效的方法:

导航到 Azure 门户中的逻辑应用 > 选择“逻辑应用代码视图”> 将以下内容添加到“身份验证”:

enter image description here

  • 观众:“api://
  • 客户ID:“
  • scope: "api:///.default"(界面中没有这块)
  • secret:“您在 aad 应用程序中为逻辑应用程序生成的秘密 注册”
  • 租户:“您的租户 ID”

0
投票

Azure 逻辑应用程序(标准)http 连接器不支持 OAuth2,因此使用“scope”参数获取令牌的唯一方法是首先向 /token 端点发出 HTTP 请求,然后使用获得的令牌进行调用到您受保护的 API。

这是整体流程:

example1

这就是我使用令牌进行身份验证的调用的方式:

example2

您可以在这里阅读更多内容: https://learn.microsoft.com/en-us/answers/questions/1178938/how-to-use-oauth-2-0-authorization-in-logic-apps-h


-1
投票

参数“Audience”是范围。根据您构建目标 api 的方式以及令牌中受众的预期,您可能会看到类似: api:///.default 的内容,但您应该最了解它。 例如。当您调用 Graph MS 时,您的范围/资源/受众是:https://graph.microsoft.com/.default,但不同的 API 对范围有不同的需求。

© www.soinside.com 2019 - 2024. All rights reserved.