如何获取有效访问令牌以从 Postman 调用 Azure REST API

How to get valid access token to call Azure REST API from Postman

我希望能够为容器实例、容器注册表和存储帐户等 creating/reading 资源调用 Azure rest APIs。

在我的 Azure AD 中,我为我的应用程序注册了一个应用程序并获得了 clientID、secret 和 tenantId。

我已调用以下 API 来获取令牌:

https://login.microsoftonline.com/{{tenantId}}/oauth2/token

资源,client_id,client_secret 和 grant_type

作为 POST 请求中的正文参数

我从这里收到的令牌不能正常工作。我收到以下错误:

{
    "error": {
        "code": "AuthorizationFailed",
        "message": "The client 'ff70fcft-21ub-4a7f-8h20-3f405c5d17e0' with object id 'ff70fcff-22bb-4a7f-9f20-3f405c1e17e0' does not have authorization to perform action 'Microsoft.ContainerInstance/containerGroups/read' over scope '/subscriptions/afb6001a-XXXX-4c39-XXXX-9706012c30ba/resourceGroups/app2/providers/Microsoft.ContainerInstance/containerGroups/app2' or the scope is invalid. If access was recently granted, please refresh your credentials."
    }
}

但是,当我从浏览器的网络选项卡复制访问令牌时,它工作正常。

我认为应用注册有问题,因为它感觉应用和我的资源当前断开连接。

谁能帮我解决这个问题?

更新:

您似乎没有向注册的应用程序授予 Azure 订阅访问权限。

步骤如下:

1.All 服务->订阅->选择您的订阅-> 点击访问控制

2.Click 添加以向您注册的应用程序添加角色分配

3.Get访问令牌再次访问api,它将起作用。

参考:https://docs.microsoft.com/en-us/azure/role-based-access-control/role-assignments-portal#overview-of-access-control-iam

更新:

请选择正确的订阅。