Различия функций между 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 |
Ответ, указывающий на новые и измененные элементы |
|
|
Ответ, указывающий на удаленные элементы | Указывает удаленный элемент с дополнительным свойством aad.isDeleted , равным true. | Указывает удаленный элемент с заметкой @removed . Он также может содержать код причины, который указывает, удален ли элемент, но может быть восстановлен или удален без возможности восстановления. |
Если в приложении уже хранятся данные о состоянии, рассмотрите возможность использования функции синхронизации для управления переходом на разностные запросы.
Пакетная обработка
Azure AD Graph использовала систему, называемую многокомпонентными miME-сообщениями, для управления пакетной обработкой. Microsoft Graph использует пакетную обработку JSON , чтобы разрешить до 20 запросов в одной пакетной операции. Механизм пакетной обработки JSON проще использовать, особенно вместе с библиотеками анализа JSON. Он также позволяет выполнять последовательное выполнение пакетных операций. Однако она не совместима с подходом пакетной обработки Azure AD Graph.