Azure AD Graph と Microsoft Graph の機能の違い

この記事は、アプリを移行するプロセスAPI の違いを確認する手順 1 の一部です。

Microsoft Graph の多くの機能は、Azure Active Directory (Azure AD) Graph に対応する機能と同様に機能します。 ただし、いくつかが変更または改善されました。 この記事では、これらの違いを利用するようにアプリを適応させる方法について説明します。

この記事では、Microsoft Graph で次の処理を行う方法について説明します。

  • ディレクトリ スキーマの拡張
  • 差分クエリ
  • バッチ処理

ディレクトリ拡張機能

アプリで Azure AD Graph ディレクトリ拡張機能を使用している場合は、引き続き同じ基本的な API (Microsoft Graph 要求 URL) を使用して、次のことができます。

  • extensionProperty リソースと関連するメソッドを使用して、ディレクトリ拡張機能の定義を管理します。
  • getAvailableExtensionProperties アクションを使用して、使用可能な拡張プロパティを取得します。
  • GET を使用して拡張機能の値を読み取り、ユーザーの場合はエンドポイント経由の$selectクエリでのみ読み取りますv1.0
  • GET と を使用した拡張値のSearch$filter
  • PATCH を使用して拡張機能の値を更新する
  • PATCH を使用して拡張値を削除する ( null に設定)

Microsoft Graph では、強化されたスキーマ拡張機能開発者エクスペリエンスが提供されています。現在、Azure AD Graph ディレクトリ拡張機能との下位互換性はありません。 詳細については、「 アプリケーションの拡張機能の種類を選択する」を参照してください。

Azure AD Graph アプリでディレクトリ拡張機能が使用されている場合は、アプリを Microsoft Graph に移行するための段階的なアプローチを講じます。

まず、アプリを Microsoft Graph API呼び出しを使用するように切り替えますが、アプリで引き続き Azure AD Graph ディレクトリ拡張機能を使用できるようにします。

次に、Microsoft Graph スキーマ拡張機能の使用に切り替えることができます。 場合によっては、切り替えが適切ではありません。 次の場合は切り替えないでください。

  • アプリでは、AD Connect を使用して作成されたディレクトリ拡張機能を使用します
  • アプリは、他のアプリによってトークン要求で使用されるディレクトリ拡張機能の値を設定します
  • アプリでは、動的メンバーシップルールで使用されるディレクトリ拡張機能の値を設定します

: オプションの要求を使用するトークンまたは動的メンバーシップ規則で、Microsoft Graph スキーマ拡張プロパティを要求として使用することは、まだサポートされていません。

新しい Microsoft Graph スキーマ拡張モデルに切り替えるには、次の手順を実行する必要があります。

  • Microsoft Graph を使用して新しいスキーマ拡張機能の定義を定義します。
  • 新しいスキーマ拡張機能の定義をサポートするようにアプリを更新します。
  • Azure AD Graph ディレクトリ拡張機能プロパティから Microsoft Graph スキーマ拡張機能プロパティにデータを移行します。 データの自動移行はサポートされていません。

差分クエリ

Azure AD Graph と Microsoft Graph を使用すると、クエリを使用して変更を追跡できます。 2 つの API の大まかなアプローチは似ていますが、構文は異なります。

Azure AD Graph ではこれらの差分クエリが呼び出され、Microsoft Graph は 差分クエリを呼び出します。

次の表では、主な類似点と相違点を示します。

Delta 要求 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=
リソースごとに 1 つずつ、Microsoft Graph で個別のクエリを使用します。
リソースとリレーションシップの変更を取得する リソースにリレーションシップがある場合、すべての要求はリソースとリレーションシップの変更を返します。 GET /groups/delta?$expand=members
新しい項目と変更された項目を示す応答
  • 標準表現を使用して新しく作成されたインスタンスを表します。

  • 更新されたインスタンスは、少なくとも更新されたプロパティを持つ ID で表されます。 その他のプロパティを含めることができます。

  • リレーションシップは型として directoryLinkChange 表されます。

  • 標準表現を使用して新しく作成されたインスタンスを表します。

  • 更新されたインスタンスは、少なくとも更新されたプロパティを持つ ID で表されます。 その他のプロパティを含めることができます。

  • リレーションシップは、標準リソース表現の注釈として表されます。 これらの注釈では、グループのメンバーシップの変更などmembers@delta、 という形式propertyName@deltaが使用されます。

削除されたアイテムを示す応答 aad.isDeleted の追加プロパティが true に設定された削除済みアイテムを示します。 注釈を含む削除済みアイテムを @removed 示します。 また、項目が削除されていても、復元できるか、完全に削除されるかを示す理由コードが含まれている場合もあります。

アプリが既に状態データを格納している場合は、差分クエリへの移行を管理するのに役立つ "今から同期" 機能を使用することを検討してください。

バッチ処理

Azure AD Graph では、マルチパート MIME メッセージと呼ばれるシステムを使用してバッチ処理を管理しました。 Microsoft Graph では 、JSON バッチ処理を 使用して、1 回のバッチ操作で最大 20 個の要求を許可します。 JSON バッチ処理メカニズムは、特に JSON 解析ライブラリと共に使用する方が簡単です。 また、バッチ操作のシーケンス処理も可能です。 ただし、Azure AD Graph バッチ処理アプローチと下位互換性はありません。

次の手順