Azure AD同期 API の概要

名前空間: microsoft.graph

重要

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

Azure Active Directory (Azure AD) の ID 同期 ("プロビジョニング" とも呼ばれる) を使用すると、ID のプロビジョニング (作成、メンテナンス) とプロビジョニングの取り外し (削除) を次の中から自動化できます。

  • Active Directory から Azure AD
  • Workday to Azure AD
  • Azure AD Dropbox、Salesforce、ServiceNow などのクラウド アプリケーションに適用されます。

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

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

Azure AD での同期の詳細については、以下を参照してください。

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

同期ジョブ

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

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

同期スキーマ

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

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

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

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

同期テンプレート

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

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

同期 API の操作

同期 API を操作するには、主に synchronizationJob リソースと synchronizationSchema リソースにアクセスする必要 があります。 synchronizationJobリソースを検索するには、同期ジョブが属するサービス プリンシパル オブジェクトの ID を知っている必要があります。 次の例は 、synchronizationJob リソースと synchronizationSchema リソースを処理 する方法を示 しています。

Authorization

Azure AD API は承認に OAuth 2.0 を使用します。 API に要求を送信する前に、アクセス トークンを取得する必要があります。 詳細については、「Microsoft Graph を呼 び出すアクセス トークンを取得する」を参照してください。 同期リソースにアクセスするには、アプリケーションに Directory.ReadWrite.All アクセス許可が必要です。 詳細については、「ディレクトリのアクセス 許可」を参照してください

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

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

要求

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

応答

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'

応答

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

応答

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

応答

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

応答

HTTP/1.1 200 OK

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

関連項目