授权执行操作 'Microsoft.Logic/workflows/triggers/listCallbackUrl/action'

authorization to perform action 'Microsoft.Logic/workflows/triggers/listCallbackUrl/action'

我正在记录与 Azure 的集成,供同事以后使用。这是为了获取 AAD 持有者令牌(完成)并使用它来获取逻辑应用程序回调 URL。存在问题,即正确允许客户端应用程序。我没有找到关于在门户中设置的正确范围的文档。另外,我自己没有管理员权限来尝试,所以试错法不是一种选择。

现在,我已经在 Azure 中注册了一个只有默认权限的应用程序。因此,当我尝试所需的操作时,我得到了错误响应:

{ "error": { "code": "AuthorizationFailed", "message": "The client '{Client Id}' with object id '{object id}' does not have authorization to perform action 'Microsoft.Logic/workflows/triggers/listCallbackUrl/action' over scope '/subscriptions/{subscription id}/resourceGroups/{resourceGroup Name}/providers/Microsoft.Logic/workflows/{workflow name}/triggers/manual'." } }

在尝试为应用程序获取正确的权限时,我在 Azure 门户中遇到错误:

You are adding permission(s) that require an admin to consent, users will not be able to use the application until an admin grants permissions to the application.

这是我所期望的,所以我想告诉我的管理员需要授予或委派的确切权限。

可能这可以在 PowerShell 中完成,并且比在 Portal 甚至 CLI 中更容易。我不拘泥于特定的方法,只是寻找有关如何正确配置客户端应用程序的指导或文档。我想我需要通过访问控制 (IAM) 选项卡至少为我们的应用程序授予对资源组的贡献者访问权限。但是,在这个订阅中,我没有"Add"选项,这表明我没有权限。

现在,我正在使用 register your client application with azure ad 上的文档,但在向其他人解释之前无法尝试时,我找不到正确允许注册客户端的步骤。也许有更详细的文档或博客 post 有人知道我还没有找到?

谢谢

在运行时获取回调 url 需要调用 API 操作 Microsoft.Logic/integrationAccounts/assemblies/listContentCallbackUrl/action 的权限。您可以通过几种方式做到这一点:

  • create a custom role 具有所需的 API 访问权限。从最小权限的角度来看,这很好,但您只能使用 200 个自定义角色,并且您需要记录该角色的用途并跟踪后续进展

  • 您可以利用 logic app contributor 的内置角色,它在逻辑应用程序 API 上拥有全权委托。

无论您选择哪种方式,下一步都是将与您的应用程序关联的服务主体(或在 AD 中定义的用户或组帐户)分配给该角色。 Here is a great walkthrough for the role assignment process using the portal or using the CLI,如果你喜欢