Различия функций между Azure AD Graph и Microsoft Graph

Эта статья является частью шага 1. Просмотр различий API в процессе миграции приложений.

Многие функции в Microsoft Graph работают аналогично своим аналогам Graph в Azure Active Directory (Azure AD). Однако некоторые из них изменились или улучшились. Из этой статьи вы узнаете, как адаптировать приложения, чтобы воспользоваться преимуществами этих различий.

В этой статье рассматривается, как Microsoft Graph обрабатывает:

  • Расширения схемы каталога
  • Разностные запросы
  • Пакетная обработка

Расширения каталогов

Если приложение использует расширения каталогов Azure AD Graph, вы можете продолжать использовать те же базовые API (с URL-адресами запросов Microsoft Graph), чтобы:

  • Управление определениями расширений каталога с помощью ресурса extensionProperty и связанных методов.
  • Получение доступных свойств расширения с помощью действия getAvailableExtensionProperties .
  • Чтение значений расширений с помощью GET и для пользователей только с запросом $select через конечную точку v1.0
  • Поиск значений расширений с помощью GET и$filter
  • Обновление значений расширений с помощью PATCH
  • Удаление значений расширений с помощью PATCH (для параметра задано значение NULL)

Microsoft Graph предоставляет расширенный интерфейс разработчика расширений схемы, который на сегодняшний день не совместим с расширениями каталогов Azure AD Graph. Дополнительные сведения см. в статье Выбор типа расширения для приложения.

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

Сначала переключите приложение на использование вызовов Microsoft API Graph, но позвольте приложению продолжать использовать расширения каталогов Graph Azure AD.

Затем можно переключиться на использование расширений схемы Microsoft Graph. В некоторых случаях переключение не подходит. Не переключайтесь, если:

  • Ваше приложение использует расширения каталогов, созданные с помощью AD Connect
  • Приложение задает значения расширения каталога, которые используются в утверждениях маркера другими приложениями
  • Приложение задает значения расширения каталога, используемые в правилах динамического членства.

ПРИМЕЧАНИЕ. Использование свойств расширения схемы Microsoft Graph в качестве утверждений в токене с использованием необязательных утверждений или в правиле динамического членства пока не поддерживается.

Чтобы перейти на более новую модель расширения схемы Microsoft Graph, необходимо:

  • Определите новые определения расширений схемы с помощью Microsoft Graph.
  • Обновите приложение для поддержки новых определений расширений схемы.
  • Перенесите данные из свойств расширения каталога Graph Azure AD в свойства расширения схемы Microsoft Graph. Автоматическая миграция данных не поддерживается.

Разностные запросы

Azure AD Graph и Microsoft Graph позволяют отслеживать изменения с помощью запросов. Общий подход аналогичен между двумя API, но синтаксис отличается.

Azure AD Graph вызывает эти разностные запросы, а Microsoft Graph — разностные запросы.

В следующей таблице выделены основные сходства и различия.

Разностный запрос Azure AD Graph Microsoft Graph
Первоначальный запрос данных Использует параметр запроса:
GET /groups?deltaLink=
Использует функцию:
GET /groups/delta
Получение новых изменений GET /groups?deltaLink={deltaToken} GET /groups/delta?$deltaToken={deltaToken}
Синхронизация с этого момента Использует пользовательский заголовок HTTP:
ocp-aad-dq-include-only-delta-token: true
Использует параметр запроса:
GET /groups/delta?$deltaToken=latest
Отслеживание изменений для объектов каталога Возвращает изменения для нескольких ресурсов (пользователя и группы) в одной операции:
GET /directoryObject?$filter=isof('User') or isof('Group')&deltaLink=
Использует отдельные запросы с Microsoft Graph, по одному для каждого ресурса.
Получение изменений ресурсов и связей Все запросы возвращают изменения ресурсов и связей, если ресурс имеет связи. GET /groups/delta?$expand=members
Ответ, указывающий на новые и измененные элементы
  • Представляет только что созданные экземпляры, используя их стандартное представление.

  • Обновленные экземпляры представлены идентификатором по крайней мере обновленными свойствами. Можно включить другие свойства.

  • Связи представлены как directoryLinkChange тип .

  • Представляет только что созданные экземпляры, используя их стандартное представление.

  • Обновленные экземпляры представлены идентификатором по крайней мере обновленными свойствами. Можно включить другие свойства.

  • Связи представляются в виде заметок к стандартному представлению ресурса. В этих заметках используется формат propertyName@delta, например members@delta для изменения членства в группе.

Ответ, указывающий на удаленные элементы Указывает удаленный элемент с дополнительным свойством aad.isDeleted , равным true. Указывает удаленный элемент с заметкой @removed . Он также может содержать код причины, который указывает, удален ли элемент, но может быть восстановлен или удален без возможности восстановления.

Если в приложении уже хранятся данные о состоянии, рассмотрите возможность использования функции синхронизации для управления переходом на разностные запросы.

Пакетная обработка

Azure AD Graph использовала систему, называемую многокомпонентными miME-сообщениями, для управления пакетной обработкой. Microsoft Graph использует пакетную обработку JSON , чтобы разрешить до 20 запросов в одной пакетной операции. Механизм пакетной обработки JSON проще использовать, особенно вместе с библиотеками анализа JSON. Он также позволяет выполнять последовательное выполнение пакетных операций. Однако она не совместима с подходом пакетной обработки Azure AD Graph.

Следующее действие