我们有一个 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.
当 API 的访问令牌中需要范围/角色时,我们如何验证来自 Azure 逻辑应用程序的 http 请求?
Azure 逻辑应用程序(标准)http 连接器不支持 OAuth2,因此使用“scope”参数获取令牌的唯一方法是首先向 /token 端点发出 HTTP 请求,然后使用获得的令牌进行调用到您受保护的 API。
这是整体流程:
这就是我使用令牌进行身份验证的调用的方式:
您可以在这里阅读更多内容: https://learn.microsoft.com/en-us/answers/questions/1178938/how-to-use-oauth-2-0-authorization-in-logic-apps-h
参数“Audience”是范围。根据您构建目标 api 的方式以及令牌中受众的预期,您可能会看到类似: api://