Microsoft Entra同期 API の概要

名前空間: microsoft.graph

重要

Microsoft Graph の /beta バージョンの API は変更される可能性があります。 実稼働アプリケーションでこれらの API を使用することは、サポートされていません。 v1.0 で API を使用できるかどうかを確認するには、Version セレクターを使用します。

Microsoft Entra ID 同期 ("プロビジョニング" とも呼ばれます) を使用すると、次のいずれかの ID のプロビジョニング (作成、メンテナンス) とプロビジョニング解除 (削除) を自動化できます。

  • Microsoft Entra IDする Active Directory
  • Workday to Microsoft Entra ID
  • Dropbox、Salesforce、ServiceNow などのクラウド アプリケーションへのMicrosoft Entra ID

Microsoft Graph の同期 API を使用して、次のような ID 同期をプログラムで管理できます。

  • 同期ジョブの作成、開始、および停止
  • ジョブの同期スキーマに変更を加える
  • 現在の同期状態を確認する

Microsoft Entra IDでの同期の詳細については、次を参照してください。

サンプル テナントまたは独自のテナントの Graph エクスプローラーで API を試すこともできます。

同期ジョブ

同期ジョブは、バックグラウンドで定期的に実行し、あるディレクトリの変更をポーリングし、別のディレクトリにプッシュすることで同期を実行します。 同期ジョブは、常にテナント内のアプリケーションの特定のインスタンスに固有です。 同期ジョブのセットアップの一環として、ターゲット ディレクトリ内のオブジェクトの読み取りと書き込みを許可し、ジョブの同期スキーマをカスタマイズする必要があります。

詳細については、「 同期ジョブ」を参照してください。

同期スキーマ

同期スキーマは、同期するオブジェクトと、それらの同期方法を定義します。 同期スキーマには、特定の同期ジョブのセットアップ情報の大部分が含まれています。 通常、一部の 属性マッピングをカスタマイズするか、スコープ フィルターを 追加して、特定の条件を満たすオブジェクトのみを同期します。

同期スキーマには、次のコンポーネントが含まれています。

  • ディレクトリ定義
  • 同期規則
  • オブジェクト マッピング

詳細については、「 同期スキーマ」を参照してください。

同期テンプレート

同期テンプレートは、特定のアプリケーションに対して事前に構成された同期設定を提供します。 これらの設定 (最も重要なのは、 同期スキーマ) は、テンプレートに基づく すべての同期ジョブ に既定で使用されます。 テンプレートは、アプリケーション開発者によって指定されます。

詳細については、「 同期テンプレート」を参照してください。

同期 API の操作

同期 API の操作には、主に 、synchronizationJob リソースと synchronizationSchema リソースへのアクセスが含まれます。 synchronizationJob リソースを見つけるには、同期ジョブが属しているサービス プリンシパル オブジェクトの ID を把握する必要があります。 次の例では、 synchronizationJob リソースと synchronizationSchema リソースを操作する方法を示します。

Authorization

Microsoft Entra同期 API を操作するために、Microsoft Graph では次の詳細なアクセス許可がサポートされています。

  • Synchronization.Read.All
  • Synchronization.ReadWrite.All
  • Application.ReadWrite.OwnedBy
  • Application.Read.All
  • Application.ReadWrite.All

次のMicrosoft Entraディレクトリ ロール:

  • アプリケーション管理者
  • クラウド アプリケーション管理者
  • ハイブリッド ID 管理者
  • グローバル管理者

各 API を呼び出すために必要な権限の詳細については、それぞれの API リファレンス ドキュメントを参照してください。

表示名でサービス プリンシパル オブジェクトを検索する

次の例は、表示名でサービス プリンシパル オブジェクトを検索する方法を示しています。

要求

GET https://graph.microsoft.com/beta/servicePrincipals?$select=id,appId,displayName&$filter=startswith(displayName, 'salesforce')

Response

HTTP/1.1 200 OK

{
   "value":[
      {
         "id":"bc0dc311-87df-48ac-91b1-259bd2c3a31c",
         "appId":"f7808c5e-cb57-4e37-8094-406d302c0f8d",
         "displayName":"Salesforce"
      },
      {
         "id":"d813d7d7-0f41-4edc-b284-d0dfaf399d15",
         "appId":"219561ee-1480-4c67-9aa6-63d861fae3ef",
         "displayName":"salesforce 3"
      }
   ]
}

アプリ ID でサービス プリンシパル オブジェクトを検索する

次の例は、アプリ ID でサービス プリンシパル オブジェクトを検索する方法を示しています。

要求

GET https://graph.microsoft.com/beta/servicePrincipals?$select=id,appId,displayName&$filter=AppId eq '219561ee-1480-4c67-9aa6-63d861fae3ef'

Response

HTTP/1.1 200 OK

{
    "value": [
        {
            "id": "d813d7d7-0f41-4edc-b284-d0dfaf399d15",
            "appId": "219561ee-1480-4c67-9aa6-63d861fae3ef",
            "displayName": "salesforce 3"
        }
    ]
}

既存の同期ジョブを一覧表示する

次の例では、既存の同期ジョブを一覧表示する方法を示します。

要求

GET https://graph.microsoft.com/beta/servicePrincipals/{id}/synchronization/jobs
GET https://graph.microsoft.com/beta/servicePrincipals/60443998-8cf7-4e61-b05c-a53b658cb5e1/synchronization/jobs

Response

HTTP/1.1 200 OK

{
    "value": [
        {
            "id": "SfSandboxOutDelta.e4bbf44533ea4eabb17027f3a92e92aa",
            "templateId": "SfSandboxOutDelta",
            "schedule": {
                "expiration": null,
                "interval": "PT20M",
                "state": "Active"
            },
            "status": {}
        }
    ]
}

同期ジョブの状態を取得する

次の例では、同期ジョブの状態を取得する方法を示します。

要求

GET https://graph.microsoft.com/beta/servicePrincipals/{id}/synchronization/jobs/{jobId}

GET https://graph.microsoft.com/beta/servicePrincipals/60443998-8cf7-4e61-b05c-a53b658cb5e1/synchronization/jobs/SfSandboxOutDelta.e4bbf44533ea4eabb17027f3a92e92aa

Response

HTTP/1.1 200 OK

{
    "id": "SfSandboxOutDelta.e4bbf44533ea4eabb17027f3a92e92aa",
    "templateId": "SfSandboxOutDelta",
    "schedule": {
        "expiration": null,
        "interval": "PT20M",
        "state": "Active"
    },
    "status": {}
}

同期スキーマを取得する

次の例では、同期スキーマを取得する方法を示します。

要求

GET https://graph.microsoft.com/beta/servicePrincipals/{id}/synchronization/jobs/{jobId}/schema

Response

HTTP/1.1 200 OK

{
    "directories": [],
    "synchronizationRules": []
}