Как получить сведения об организации в регионе AzureChina с помощью API-интерфейсов Microsoft Graph в Postman с использованием аутентификации кода устройства?

Попытка получить сведения об организации в регионе AzureChina с помощью API Microsoft Graph в Postman с использованием аутентификации кода устройства

Шаги, которым я следую, указаны ниже в почтальоне.

  1. Создайте код устройства, используя идентификатор клиента Power-shell https://login.chinacloudapi.cn/common/oauth2/v2.0/devicecode?client_id=1950a258-227b-4e31-a9cf-717495945fc2&scope=https://microsoftgraph.chinacloudapi.cn/.default

  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. Get organization api также работает с графическим исследованием (китай)

[Снимок экрана декодированного токена доступа] [1]: https://i.stack.imgur.com/npKG7.png


person Mahesh Surkar    schedule 02.02.2021    source источник
comment
Используйте jwt.ms для анализа вашего токена доступа и предоставления снимков экрана.   -  person Carl Zhao    schedule 03.02.2021
comment
Ссылка на изображение для снимка экрана с декодированным токеном доступа: i.stack.imgur.com/npKG7.png   -  person Mahesh Surkar    schedule 03.02.2021
comment
Попробуйте предоставить своему приложению Organization.Read.All разрешение на делегирование.   -  person Carl Zhao    schedule 03.02.2021


Ответы (2)


Как говорится в сообщении об ошибке, у вас нет разрешения на чтение информации об организации. Согласно снимку экрана вашего токена, в настоящее время у вас есть разрешение только на чтение данных журнала аудита.

Таким образом, вам необходимо предоставить Organization.Read.All разрешение на делегирование для приложения и предоставить согласие администратора на это разрешение. Наконец, вы сможете вызвать api, чтобы прочитать информацию об организации.

person Carl Zhao    schedule 03.02.2021
comment
1. Я использую идентификатор приложения: 1950a258-227b-4e31-a9cf-717495945fc2, который является встроенным приложением для Azure Power Shell, и не нашел это приложение на портале Azure для изменения / предоставления разрешений. - person Mahesh Surkar; 03.02.2021
comment
2. В дальнейшем мне нужно будет использовать это приложение Azure Power Shell 1950a258-227b-4e31-a9cf-717495945fc2 для создания Post API для создания нового приложения Tenant с использованием API: microsoftgraph.chinacloudapi.cn/v1.0/applications - person Mahesh Surkar; 03.02.2021

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

Работает (проверено для Azure China, Azure Public Cloud)

AZ CLI (утилита / библиотека Microsoft Python) использует то же

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

person Mahesh Surkar    schedule 05.02.2021