0

尝试使用设备代码身份验证在 Postman 中使用 Microsoft Graph API 获取 AzureChina 区域中的组织详细信息

我在邮递员中遵循的步骤如下

  1. 使用 power-shell 客户端 ID 创建设备代码 https://login.chinacloudapi.cn/common/oauth2/v2.0/devicecode?client_id=1950a258-227b-4e31-a9cf-717495945fc2&scope=https://microsoftgraph.chinacloudapi.cn /。默认

  2. 使用收到的短代码 https://microsoft.com/deviceloginchina从浏览器以全局管理员身份登录

  3. 获取访问令牌https://login.chinacloudapi.cn/common/oauth2/v2.0/token 使用

    • grant_type = urn:ietf:params:oauth:grant-type:device_code
    • client_id = 1950a258-227b-4e31-a9cf-717495945fc2
    • device_code= "从第一个请求收到的设备代码"
  4. 现在尝试使用 API https://microsoftgraph.chinacloudapi.cn/v1.0/organization使用上述步骤中收到的访问令牌获取组织详细信息

此请求失败并出现以下错误

{
    "error": {
        "code": "Authorization_RequestDenied",
        "message": "Insufficient privileges to complete the operation.",
        "innerError": {
            "date": "2021-02-02T13:47:13",
            "request-id": "c94777b2-2af5-4827-812d-6399f9621ee3",
            "client-request-id": "c94777b2-2af5-4827-812d-6399f9621ee3"
        }
    }
}

如果能指出获取组织详细信息的失败原因,将会很有帮助

笔记 :

  1. 如果我使用 AZ cli 实用程序创建访问令牌并在邮递员中使用它,我可以在邮递员中正确获得响应
  2. 获取组织 api 也适用于 graph explore (china)

【解码访问令牌截图】【1】:https ://i.stack.imgur.com/npKG7.png

4

2 回答 2

0

AZURE_CLI_CLIENT_ID = "04b07795-8ddb-461a-bbee-02f9e1bf7b46"

有效(已针对 Azure 中国、Azure 公有云进行了测试)

AZ CLI(Microsoft Python 实用程序/库)使用相同的

https://azuresdkdocs.blob.core.windows.net/$web/python/azure-identity/1.1.0/_modules/azure/identity/_constants.html

于 2021-02-05T08:36:51.180 回答
0

正如您的错误消息所述,您没有读取组织信息的权限。根据你的token截图,你目前只有读取审计日志数据的权限。

因此,您需要授予应用程序的Organization.Read.All 委托权限,并授予管理员权限。最后,您将能够调用 api 来读取组织信息。

于 2021-02-03T08:41:18.697 回答