我正在尝试使用手动触发器从 Azure API 管理调用逻辑应用程序(标准)工作流。 我想使用系统为 APIM 分配的托管标识(而不是使用 SAS)进行令牌身份验证。 我已将逻辑应用贡献者角色分配给 APIM 逻辑应用范围的托管标识。 我正在尝试使用 authentication-management-identity 策略来检索令牌,但我不知道 resource 应设置为什么来请求逻辑应用程序的正确范围。
我还尝试使用正确的权限在 Entra Id 中配置应用程序注册,以便我可以使用客户端凭据流来获取逻辑应用程序的令牌,但我不知道应用程序注册需要什么权限那。 我可以检索令牌,但它没有任何值得注意的声明,因为我没有提供范围。
我找到了大量有关如何将 oAuth2.0 与逻辑应用程序(消费)结合使用的信息,但我找不到与逻辑应用程序(标准)相关的任何信息。 我尝试应用我为逻辑应用程序(消耗)找到的信息,但我怀疑我需要在令牌调用中请求的范围是不同的。
此特定用例用于从 APIM 调用逻辑应用程序(标准),但我对有关如何从没有 SAS 的任何客户端使用 oAuth2.0 调用逻辑应用程序(标准)的任何信息感兴趣。
为了从 APIM 调用标准逻辑应用程序,您需要将 Http 请求 URL 分成两部分,如本博客所示,因为目前仅消费逻辑应用程序支持直接导入。
在这种情况下,您应该在 APIM 中使用
https://afreeen-la-1.azurewebsites.net:443/api/test/triggers/When_a_HTTP_request_is_received/invoke?api-version=2022-05-01
,如下所示。
第 1 部分 - https://afreeen-la-1.azurewebsites.net:443/api/
第二部分 - 测试/触发/When_a_HTTP_request_is_received/invoke?api-version=2022-05-01
在 Microsoft Entra ID 中注册新应用程序或使用现有应用程序。
在上面创建的操作的入站部分添加给定的策略。
<policies>
<inbound>
<base />
<authentication-managed-identity resource="{ClientId of the Entra App}" />
</inbound>
</policies>
然后,导航到逻辑应用程序的身份验证刀片,并使用给定的详细信息添加身份提供商。
如果您不想指定客户端应用程序 ID,也可以选择 允许来自任何应用程序的请求选项。
按照这些步骤,我可以在不使用 SAS 的情况下调用 APIM 中的标准逻辑应用程序。