Что такое Microsoft Graph

Не так давно у Microsoft был (хотя он попрежнему есть 🙂 ) целый набор модулей PowerShell для многих её облачных сервисов: Azure AD, Exchange Online, Skype for Business Online, SharePoint Online и т.д. Однако, время не стоит на месте и число облачных сервисов в Azure неуклонно растет. Вместе с ростом количества сервисов растет и потребность в инструментах управления. Разработчики так же вынуждены были использовать API каждого продукта в отдельности. Именно потребность в единой точке управления всеми облачными сервисами и призван закрыть сервис Microsoft Graph. Он позволяет через свои API методы получить доступ ко многим сервисам и объектам в Azure – будь то пользователь Azure AD или его календарь в почтовом ящике Exchange Online.

Graph довольно сильно облегчил жизнь не только разработчикам, но и администраторам Azure.

Ниже мы кратко поговорим об общей архитектуре сервиса, а также какие инструменты есть в нашем распоряжении для работы с сервисом Microsoft Graph.

Общее описание сервиса Microsoft Graph

В этом разделе мы познакомимся с кратким описание сервиса Graph. С подробным описанием сервиса можно ознакомится в документации на сайте Microsoft.

Сам по себе сервис Graph выступает в роли единой точкой входя для работы со многими объектами Azure: пользователи, устройства, календари, почта и т.д. Основные компоненты сервиса приведены ниже:

  • Microsoft Graph API. Именно через API мы можем получить доступ к управлению большим количеством разнообразных объектов – от чтения атрибутов пользователя в Azure AD до отправки писем через Exchange Online.
  • Microsoft Graph connectors. Позволяет еще больше расширить сервис Microsoft Graph через подключение дополнительные источников данных к нему.
  • Microsoft Graph Data Connect. Этот сервис также позволяет работать с объектами, как и Graph API, но с более расширенными возможностями.

Далее мы будем говорить только о первом компоненте – Microsoft Graph API: как к нему можно подключиться и рассмотрим пару примеров с запросами на выборку данных.

Инструменты работы с Microsoft Graph

Для работы с Microsoft Graph API существует несколько инструментов. Каждый из них имеет свои достоинства и недостатки. Лично мне, если нужно что-то быстро посмотреть (и без сложных условий фильтрации) вполне нравится Graph Explorer. Для более сложных случаев использую Postman, но его требуется устанавливать отдельно. Однако, если у вас под рукой только PowerShell, то через него тоже можно работать с Graph API.

Graph API доступен для очень многих языков программирования. Полный перечень приведен в документации.

Graph Explorer

Пожалуй, наиболее простой способ. Из преимуществ этого способа стоит отметить, что не требуется устанавливать дополнительные приложения или регистрировать приложение в Azure AD (чтобы получить токен доступа).

Из минусов – вам необходим браузер и в Graph Explorere вы можете работать только с Graph API.

Развернутая документация по использованию Graph Explorer доступна по этой ссылке.

Для того, чтобы запустить Graph Explorer нужно:

1. Перейти по ссылке для доступа к сервису – https://developer.microsoft.com/en-us/graph/graph-explorer

2. Аутентифицироваться под вашей учетной записью.

Либо вы можете работать под “синтетической” учетной записью. Для данной записи настроен некий набор объектов, к которым вы можете получать доступ выполняя соответствующие запросы.

Пример 1. Получение данных своего профиля пользователя

В левом нижнем углу вам доступен перечень запросов, которые вы можете отправить к Graph API.

Когда вы выберите соответствующий запрос, то его преднастроенные значения перенесутся в основную обасть Graph Explorer.

Мы видим URL, к которому будет отправлен запрос (https://graph.microsoft.com/v1.0/me/), версию API (v1.0), а также метод (GET – поскольку мы получаем данные).

Нажав кнопку Run query мы отправим запрос к сервису. Ответ мы получим в формате JSON.

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
    "@odata.id": "https://graph.microsoft.com/v2/dcd219dd-bc68-4b9b-bf0b-4a33a796be35/directoryObjects/48d31887-5fad-4d73-a9f5-3c356e68a038/Microsoft.DirectoryServices.User",
    "businessPhones": [
        "+1 412 555 0109"
    ],
    "displayName": "Megan Bowen",
    "givenName": "Megan",
    "jobTitle": "Auditor",
    "mail": "MeganB@M365x214355.onmicrosoft.com",
    "mobilePhone": null,
    "officeLocation": "12/1110",
    "preferredLanguage": "en-US",
    "surname": "Bowen",
    "userPrincipalName": "MeganB@M365x214355.onmicrosoft.com",
    "id": "48d31887-5fad-4d73-a9f5-3c356e68a038"
}

В рабочей области снизу мы также можем посмотреть код ответа (200 OK в нашем случае) и дополнительную служебную информацию, если она нам нужна.

При желании мы может импортировать JSON в Excel и далее уже выполнить необходимую нам аналитику. Особенно, если мы, например, выполнили запрос для получения всех наших устройств в Azure AD и нам необходимо выполнить некоторый анализ данных в определенном разрезе.

Пример 2. Обновление атрибута своего профиля пользователя

Давайте попробуем не просто получить данные, а, например, обновить атрибут пользователя.

Раздел документации по работе с объектом пользователя приведен вот тут.

Давайте более детально разберем сам запрос:

Метод для обновления данных – PATCH. Версия API – v1.0. URL адрес запроса – https://graph.microsoft.com/v1.0/me.

Тело запроса (в форме JSON):

{
    "jobTitle": "IT Admin"
}

Далее нажимаем кнопку Run query.

Пример успешного ответа.

Если вы получили ответ вида – 403 – You need to consent to the permissions on the Modify permissions (Preview) tab, то необходимо Graph Explorer выдать необходимы разрешения.

Поскольку в нашем запросе выше мы пытались обновить атрибут jobTitle пользователя (PATCH запрос к URL https://graph.microsoft.com/v1.0/me), то необходимо выдать соответствующие разрешения.

Так же нужно выдать разрешения: User.ReadWrite, User.ReadWrite.All, User.ManageIdentities.All, Directory.ReadWrite.All, Directory.AccessAsUser.All.

Теперь, если мы отправим GET запрос на URL https://graph.microsoft.com/v1.0/me, то получим следующий ответ:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
    "@odata.id": "https://graph.microsoft.com/v2/6896d8e0-4548-4790-95af-3fb133d29bad/directoryObjects/c6acb340-6de4-4c14-b6a0-21acba9014d8/Microsoft.DirectoryServices.User",
    "businessPhones": [],
    "displayName": "adm",
    "givenName": null,
    "jobTitle": "IT Admin",
    "mail": "adm@yourdomain.onmicrosoft.com",
    "mobilePhone": null,
    "officeLocation": null,
    "preferredLanguage": "en-US",
    "surname": null,
    "userPrincipalName": "adm@yourdomain.onmicrosoft.com",
    "id": "c6acb340-6de4-4c14-b6a0-21acba9014d8"
}

Как видно из ответов выше – атрибут jobTitle теперь содержит значение “IT Admin”.

Postman

Следующий инструмент, который у нас есть для работы с Graph – это Postman. В целом это довольно универсальный инструмент, который позволяет работать с любым API. Однако, в отличии от Graph Explorer, у нас будет несколько дополнительных шагов для получения токена доступа. Graph Explorer получал этот токен доступа за нас.

Для того, чтобы отправить запрос к Graph API через Postman нужно выполнить следующие действия:

  1. Зарегистрировать приложение в Azure AD.
  2. Назначить нашему приложению необходимые разрешения.
  3. Получить токен доступа.
  4. Отправить необходимый нам запрос к Graph API с применением полученного токена доступа.

Регистрация приложения в Azure AD

Регистрацию приложения нужно выполнить один раз. Регистрировать приложение для каждого сеанса работы с Postman не нужно. Если у вас уже есть какое-то приложение в Azure AD, то можно, конечно, использовать его, но лучше для каждого сервиса (Postman в нашем случае) заводить отдельное приложение.

Для регистрации приложения в Azure AD необходимо выполнить следующие действия:

1. Перейдите на портал управления Azure.

2. В меню слева выберите пункты “Azure Active Directory” – “App registration”.

3. В основной области нажмите кнопку “New registration”.

4. В поле “Name” укажите любое имя для нового приложения.

В секции Supported account types мы укажем, что приложение будет видеть объекты в только пределах нашей Azure AD (опция “Account in this organizational directory only (Default Directory only – Single tenant)”).

Для Redirect URI (optional) укажем тип редиректа – Web. И укажем сам URI – https://oauth.pstmn.io/v1/browser-callback.

5. Нажмите кнопку “Register”.

6. Копируем идентификатор нашего приложения (App ID) – он будет использоваться для получения токена доступа.

7. Теперь наш нужно сгенерировать пароль приложения (Client Secret). Это второй компонент, который будет использоваться для получения токена доступа (в дополнении к App ID). Перейдите в секцию Certificates & secrets. Нажмите на кнопку New Client Secret.

8. В появившемся диалоговом окне укажите описание – для чего будет использоваться пароль и длительность его действия. По прошествию срока действия пароль будет не действителен и вам нужно будет сгенерировать новый пароль.

9. Скопируйте значение пароля из колонки Value – он нам понадобится.

Настройка разрешений для приложения

Теперь нам необходимо настроить разрешения для нашего приложения. Мы попробуем через Graph API получить список пользователей в нашей организации.

Итого, нам необходимо сделать следующее:

1. Перейти в секцию API permission.

2. В появившемся окне выберем Mirosoft Graph.

3. Далее выбираем Application permission.

4. Для получения списка всех пользователей организации нам необходимо выдать разрешение Directory.Read.All. Выбираем разрешение и нажимаем кнопку “Add Premission”.

5. Нажимает кнопку Grant admin consent for Default Directory.

6. Итоговая настройка разрешений должна выглядеть следующим образом.

Получение токена доступа

Для получения токена доступа нам необходимо отправить запрос к API с нашими App ID и CLient Secret, т.е. начиная с этого шага нам нужен Postman. Предварительно необходимо создать учетную запись на сайте Postman. После этого вы уже можете его использовать.

1. Перейти на сайт продукта.

2. Пройти процедуру регистрации или аутентифицироваться под уже имеющейся учетной записью.

3. Теперь нам нужно сформировать запрос для получения токена доступа. В вашей рабочей области нажимаем кнопку New.

4. Выбираем:

Тип запроса – POST.

URL – https://login.microsoftonline.com/{Tenant ID}/oauth2/v2.0/token. Tenant ID можно посмотреть в панели администрирования Azure AD.

В тело запроса (Body) передаем в формате x-www-form-urlencoded следующие поля:

grant_type:client_credentials

client_id:clientidvalue

client_seret:clientsecretvalue

scope:https://graph.microsoft.com/.default

Пример построения тела запроса приведен ниже.

5. В случае успешного получения ответа мы увидим примерно следующий результат.

{
    "token_type": "Bearer",
    "expires_in": 3599,
    "ext_expires_in": 3599,
    "access_token": "eyJ0eXAiOiJKV1QiLCJub25jZSI6Ii04X1pTbEFNaVAtNjJLLWo3eDM3Rjc4VHdIQU16MFdRLVRTS1ZzN1pFaEUiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5PbzNaRHJPRFhFSzFqS1doWHNsSFJfS1hFZyIsImtpZCI6Im5PbzNaRHJPRFhFSzFqS1doWHNsSFJfS1hFZyJ9.eyJhdWQiOiJodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC82ODk2ZDhlMC00NTQ4LTQ3OTAtOTVhZi0zZmIxMzNkMjliYWQvIiwiaWF0IjoxNjI4OTU0OTM5LCJuYmYiOjE2Mjg5NTQ5MzksImV4cCI6MTYyODk1ODgzOSwiYWlvIjoiRTJaZ1lPaTV1TW5YdU5iMzVIbmQrdTBQNDJ6TEFBPT0iLCJhcHBfZGlzcGxheW5hbWUiOiJQb3N0bWFuIEFwcGxpY2F0aW8iLCJhcHBpZCI6IjNmMTUyN2Q0LWY1NGUtNGVjOS1iOWEzLWZiNzQ0MmM1NTRkMCIsImFwcGlkYWNyIjoiMSIsImlkcCI6Imh0dHBzOi8vc3RzLndpbmRvd3MubmV0LzY4OTZkOGUwLTQ1NDgtNDc5MC05NWFmLTNmYjEzM2QyOWJhZC8iLCJpZHR5cCI6ImFwcCIsIm9pZCI6ImQwZjY0Y2I2LWI1MTEtNGQ2MS05NTBiLWJlZTgxMGJkMzQxMSIsInJoIjoiMC5BVG9BNE5pV2FFaEZrRWVWcnoteE05S2JyZFFuRlQ5TzljbE91YVA3ZEVMRlZOQTZBQUEuIiwicm9sZXMiOlsiRGlyZWN0b3J5LlJlYWQuQWxsIl0sInN1YiI6ImQwZjY0Y2I2LWI1MTEtNGQ2MS05NTBiLWJlZTgxMGJkMzQxMSIsInRlbmFudF9yZWdpb25fc2NvcGUiOiJFVSIsInRpZCI6IjY4OTZkOGUwLTQ1NDgtNDc5MC05NWFmLTNmYjEzM2QyOWJhZCIsInV0aSI6IjBEanA4WXZxYTBxa2lRaHYxNTlqQUEiLCJ2ZXIiOiIxLjAiLCJ3aWRzIjpbIjA5OTdhMWQwLTBkMWQtNGFjYi1iNDA4LWQ1Y2E3MzEyMWU5MCJdLCJ4bXNfdGNkdCI6MTUyMjg1Njg2M30.B4WEHo_x6rbkOh7_HdCErNRvSr_JQT74pB2jn6ivvzg9C-f5hmBv_xsDdFugF2oNOrKF0NYOdNSdLkTQBeQc_PZ8szyuN8gfYB0Z5ewnFCmwkeCE3KoPkJh6-4cBwlmfXNEtPLprxR7RBl1HPaPB4tYX808dUrofDGvxOJzIQvQZsIrHb4s0-m07Ip2xsrpIcslGq5aLmFQgaececDjTpJkRK2NhC2LOLdUZnolftPcvcBno59L7TlEEf2g1KdRbhoVA_wPAIvklCfJQW87VHye2Y7-pKgSiGhphP3jXgPiij3zJQjKHfD1zPk0doE-jw3TtU_QFq_innMgIv-XCXw"
}

т.е. мы получили ответ 200 OK, а самое главное – в поле access_token находится значения нашего токена доступа, который мы будем использовать в дальнейшем.

“Разобрать по косточкам” токен доступа можно вот по этой ссылке.

Здесь мы можем увидеть – какому приложению были выданы разрешения (и какие), а также для какого ресурса были выданы эти разрешения.

6. Скопируйте значение токена доступа.

Отправка запроса к Graph API

Теперь попробуем получить список пользователей в нашей организации. Для этого нам потребуется токен доступа, который мы получили в предыдущем разделе. Параметры запроса приведены ниже:

Метод – GET.

URL – https://graph.microsoft.com/v1.0/users.

Authorization – Bearer Token.

Token – ваш токен доступа из предыдущего раздела.

Пример успешного ответа (200 OK) приведен на скриншоте ниже.

Небольшая вырезка ответа в формате JSON.

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users",
    "value": [
        {
            "@odata.id": "https://graph.microsoft.com/v2/6896d8e0-4548-4790-95af-3fb133d29bad/directoryObjects/9680179f-d645-46b6-8d06-3c56069bf70b/Microsoft.DirectoryServices.User",
            "businessPhones": [],
            "displayName": "adm",
            "givenName": "adm",
            "jobTitle": null,
            "mail": "adm@hmmail.ru",
            "mobilePhone": null,
            "officeLocation": null,
            "preferredLanguage": null,
            "surname": null,
            "userPrincipalName": "adm@hmmail.ru",
            "id": "9680179f-d645-46b6-8d06-3c56069bf70b"
        },
		<текст вырезан>
        {
            "@odata.id": "https://graph.microsoft.com/v2/6896d8e0-4548-4790-95af-3fb133d29bad/directoryObjects/c937aba0-1782-42fe-848c-9aaaad6025fe/Microsoft.DirectoryServices.User",
            "businessPhones": [],
            "displayName": "u9",
            "givenName": "u9",
            "jobTitle": null,
            "mail": "u9@hmmail.ru",
            "mobilePhone": null,
            "officeLocation": null,
            "preferredLanguage": null,
            "surname": null,
            "userPrincipalName": "u9@hmmail.ru",
            "id": "c937aba0-1782-42fe-848c-9aaaad6025fe"
        }
    ]
}

PowerShell

Метод доступа в Graph API через PowerShell очень похож на метод доступа через Postman. Если смотреть на этот метод с высоты птичьего полета, то основные шаги приведены далее:

  1. Зарегистрировать приложение в Azure AD.

2. Назначить нашему приложению необходимые разрешения.

3. Получить токен доступа.

4. Отправить необходимый нам запрос к Graph API с применением полученного токена доступа.

Поскольку приложение мы уже создали и назначили ему необходимые разрешения, то этот шаг мы пропустим и будем использовать приложение, которое мы создали для Postman. Если вы не выполняли этих шагов, то можете ознакомится с ними в разделах “Регистрация приложения в Azure AD” и “Настройка разрешений для приложения” выше.

А мы рассмотрим оставшиеся шаги.

Получение токена доступа

Параметры запроса аналогичны параметрам, которые мы использовали для Postman. Разница только в реализации. PowerShell код для получения токена доступа приведен ниже:

$RequestBody=@{
grant_type = "client_credentials"
client_id = "3f1527d4-f54e-4ec9-b9a3-fb7442c554d0"
client_secret = "9u_X2la32f6kg1vm~ArhaPnytTs_NMM6n."
scope = "https://graph.microsoft.com/.default"
}

$req = Invoke-WebRequest -Uri "https://login.microsoftonline.com/pochtaromamail.onmicrosoft.com/oauth2/v2.0/token" -Method Post -Body $RequestBody

$token = (ConvertFrom-Json $req.Content).access_token

$token

client_id – это id вашего приложения.

client_secret – это client secret вашего приложения.

Пример успешного запроса:

$RequestBody=@{
grant_type = "client_credentials"
client_id = "3f1527d4-f54e-4ec9-b9a3-fb7442c554d0"
client_secret = "9u_X2la32f6kg1vm~ArhaPnytTs_NMM6n."
scope = "https://graph.microsoft.com/.default"
}

$req = Invoke-WebRequest -Uri "https://login.microsoftonline.com/pochtaromamail.onmicrosoft.com/oauth2/v2.0/token" -Method Post -Body $RequestBody

$token = (ConvertFrom-Json $req.Content).access_token

$token
eyJ0eXAiOiJKV1QiLCJub25jZSI6ImFlT2pBYlg5czJZOEd1RWFINklpdmtaLUphRjg0WTVUanR4MWpTenYzTWciLCJhbGciOiJSUzI1NiIsIng1dCI6Im5PbzNaRHJPRFhFSzFqS1doWHNsSFJfS1hFZyIsImtpZCI6Im5Pb
zNaRHJPRFhFSzFqS1doWHNsSFJfS1hFZyJ9.eyJhdWQiOiJodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC82ODk2ZDhlMC00NTQ4LTQ3OTAtOTVhZi0zZmIxMzNkM
jliYWQvIiwiaWF0IjoxNjI4OTU3NTgxLCJuYmYiOjE2Mjg5NTc1ODEsImV4cCI6MTYyODk2MTQ4MSwiYWlvIjoiRTJaZ1lOanBjTyt6cDRRNXkvZTRkbDlwbnEwbkFRPT0iLCJhcHBfZGlzcGxheW5hbWUiOiJQb3N0bWFuIE
FwcGxpY2F0aW8iLCJhcHBpZCI6IjNmMTUyN2Q0LWY1NGUtNGVjOS1iOWEzLWZiNzQ0MmM1NTRkMCIsImFwcGlkYWNyIjoiMSIsImlkcCI6Imh0dHBzOi8vc3RzLndpbmRvd3MubmV0LzY4OTZkOGUwLTQ1NDgtNDc5MC05NWF
mLTNmYjEzM2QyOWJhZC8iLCJpZHR5cCI6ImFwcCIsIm9pZCI6ImQwZjY0Y2I2LWI1MTEtNGQ2MS05NTBiLWJlZTgxMGJkMzQxMSIsInJoIjoiMC5BVG9BNE5pV2FFaEZrRWVWcnoteE05S2JyZFFuRlQ5TzljbE91YVA3ZEVM
RlZOQTZBQUEuIiwicm9sZXMiOlsiRGlyZWN0b3J5LlJlYWQuQWxsIl0sInN1YiI6ImQwZjY0Y2I2LWI1MTEtNGQ2MS05NTBiLWJlZTgxMGJkMzQxMSIsInRlbmFudF9yZWdpb25fc2NvcGUiOiJFVSIsInRpZCI6IjY4OTZkO
GUwLTQ1NDgtNDc5MC05NWFmLTNmYjEzM2QyOWJhZCIsInV0aSI6InBPbU02TEFpbDBLYjlCQi1JdXc5QUEiLCJ2ZXIiOiIxLjAiLCJ3aWRzIjpbIjA5OTdhMWQwLTBkMWQtNGFjYi1iNDA4LWQ1Y2E3MzEyMWU5MCJdLCJ4bX
NfdGNkdCI6MTUyMjg1Njg2M30.jLx3ve_OfSa4lZhHE7PDIf3DaMUnA_JQc3RA6wWtlLZJbOsLztL6DP4ER3b33r7Azrg-5xGzau4A8CvJITEE9wzyz-OAnaQvy_ceudodEWaMjldhAawhOsXGJxLC8zpwent1CkVI6lJQmst
spsGIlSmAfjUS2h7oRrK5VoYhOuvNOQJNOsDTiTdpqH1gGa2n5264JiQ27SDKdPyCGc6m05wKSc9jfT6HT4-vomVE50WkUw7m5qW8kh0tO9UXNXQTgEnAjXvB97no_d9O1BQMCxVZc3UHxSRJ8bra8cIuA8KU_03GOG5wfSC-
Jq9BcxZy6qKGsb_ZDdIY-NaM41LgvA

т.е. теперь переменная $token содержит наш токен доступа.

Отправка запроса к Graph API

Как и в примере с Postman мы попробуем получить список всех пользователей в нашей организации.

PowerShell код для получения списка пользователей в организации приведен ниже:

$RequestHeader= @{
Authorization = "Bearer " + $token
}

$users = Invoke-WebRequest -Method Get -Uri "https://graph.microsoft.com/v1.0/users" -Headers $RequestHeader

$response = (ConvertFrom-Json $users.Content).Value

$response

Метод запроса – GET.

Адрес запроса – https://graph.microsoft.com/v1.0/users.

Пример успешного ответа приведен ниже:

$RequestHeader= @{
Authorization = "Bearer " + $token
}

$users = Invoke-WebRequest -Method Get -Uri "https://graph.microsoft.com/v1.0/users" -Headers $RequestHeader

$response = (ConvertFrom-Json $users.Content).Value

$response

@odata.id         : https://graph.microsoft.com/v2/6896d8e0-4548-4790-95af-3fb133d29bad/directoryObjects/9680179f-d645-46b6-8d06-3c56069bf70b/Microsoft.DirectoryService
                    s.User
businessPhones    : {}
displayName       : adm
givenName         : adm
jobTitle          : 
mail              : adm@hmmail.ru
mobilePhone       : 
officeLocation    : 
preferredLanguage : 
surname           : 
userPrincipalName : adm@hmmail.ru
id                : 9680179f-d645-46b6-8d06-3c56069bf70b

<текст вырезан>

@odata.id         : https://graph.microsoft.com/v2/6896d8e0-4548-4790-95af-3fb133d29bad/directoryObjects/c937aba0-1782-42fe-848c-9aaaad6025fe/Microsoft.DirectoryService
                    s.User
businessPhones    : {}
displayName       : u9
givenName         : u9
jobTitle          : 
mail              : u9@hmmail.ru
mobilePhone       : 
officeLocation    : 
preferredLanguage : 
surname           : 
userPrincipalName : u9@hmmail.ru
id                : c937aba0-1782-42fe-848c-9aaaad6025fe

Как мы видим, результат тот же, что и через Postman.

Если вы прорабатывали пример с получением списка пользователей в организации через Postman и через PowerShell, то скорее всего, вы тоже успели заметить – насколько проще запрос выполнить в Postman 🙂 PowerShell требует навыков этого языка. Пусть и самых базовых.

Заключение

Мы кратко поговорили о том, что такое Microsoft Graph, какие компоненты он в себя включает и для чего нужен Graph API.

Затем мы поговорили с вами о некоторых инструментах, которые позволяют нам с вами работать с Graph API: Graph Explorer, Postman и PowerShell.

Затем мы выполнили примеры запросов к Graph API в каждом из перечисленных выше инструментов, что позволило нам наглядно посмотреть основные особенности при работе с каждым из инструментов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *