次の方法で共有


Microsoft Graph 用 Microsoft Identity Manager コネクタ

概要

Microsoft Graph 用の Microsoft Identity Manager コネクタを使用すると、Microsoft Entra ID P1 または P2 のお客様向けの追加の統合シナリオが可能になります。 これは、Microsoft Graph API v1 とベータ版から取得した MIM 同期メタバースの追加オブジェクトに表示されます。

対象となるシナリオ

B2B アカウントのライフサイクル管理

Microsoft Graph 用 Microsoft Identity Manager コネクタの最初のシナリオは、外部ユーザーの AD DS アカウント ライフサイクル管理を自動化するためのコネクタです。 このシナリオでは、組織は Microsoft Entra Connect を使用して従業員を AD DS から Microsoft Entra ID に同期し、ゲストを Microsoft Entra ディレクトリに招待しています。 ゲストを招待すると、その組織の Microsoft Entra ディレクトリに外部ユーザー オブジェクトが存在し、その組織の AD DS には含まれません。 その後、組織は、Microsoft Entra アプリケーション プロキシ またはその他のゲートウェイ メカニズムを使用して、これらのゲストにオンプレミスの Windows 統合認証または Kerberos ベースのアプリケーションへのアクセス権を付与することを希望しています。 Microsoft Entra アプリケーション プロキシでは、識別と委任の目的で、各ユーザーが独自の AD DS アカウントを持っている必要があります。

ゲストの AD DS アカウントを自動的に作成して維持するように MIM 同期を構成する方法については、この記事の手順を読んだ後、引き続き MIM 2016 および Microsoft Entra アプリケーション プロキシとの Microsoft Entra business-to-business (B2B) コラボレーション 記事を参照してください。 この記事では、コネクタに必要な同期規則について説明します。

その他の ID 管理シナリオ

このコネクタは、Microsoft Entra ID でのユーザー、グループ、連絡先オブジェクトの作成、読み取り、更新、削除を含む他の特定の ID 管理シナリオで、ユーザーとグループの同期から Microsoft Entra ID への同期を超えて使用できます。 潜在的なシナリオを評価するときは、このコネクタをシナリオで操作できないことに注意してください。これにより、データ フローの重複、実際の同期、または Microsoft Entra Connect の展開との潜在的な同期の競合が発生します。 Microsoft Entra Connect は、オンプレミスのディレクトリから Microsoft Entra ID にユーザーとグループを同期することによって、オンプレミスのディレクトリを Microsoft Entra ID と統合するための推奨されるアプローチです。 Microsoft Entra Connect にはさらに多くの同期機能があり、MIM によって作成されたオブジェクトでは不可能なパスワードやデバイスライトバックなどのシナリオを可能にします。 たとえば、データが AD DS に取り込まれる場合は、それらのオブジェクトを Microsoft Entra ディレクトリに照合しようとする Microsoft Entra Connect からデータが除外されていることを確認します。 また、このコネクタを使用して、Microsoft Entra Connect によって作成された Microsoft Entra オブジェクトを変更することもできません。

Microsoft Graph 用コネクタの使用準備

Microsoft Entra ディレクトリ内のオブジェクトを取得または管理するためのコネクタの承認

  1. コネクタでは、Microsoft Graph を介して Microsoft Entra オブジェクトを操作するための適切なアクセス許可で承認できるように、Web アプリ/API アプリケーションを Microsoft Entra ID で作成する必要があります。

    新しいアプリケーション登録ボタンの画像アプリケーション登録 の画像

    図 1. 新しいアプリケーションの登録

  2. Azure portal で作成したアプリケーションを開き、アプリケーション ID をクライアント ID として保存し、後で MA の接続ページで使用します。

  3. 証明書 & シークレットを開き、新しいクライアント シークレットを生成します。 キーの説明を設定し、最大期間を選択します。 変更を保存し、クライアント シークレットを取得します。 クライアント シークレットの値は、ページを離れた後に再度表示することはできません。

    新しいシークレットの追加ボタンの の画像

    図 2. 新しいクライアント シークレット

  4. "API のアクセス許可" を開いて、アプリケーションに適切な "Microsoft Graph" アクセス許可を付与する

    図 3 の [アクセス許可の追加] ボタン 画像。 新しい API の追加

    [Microsoft Graph] アプリケーションのアクセス許可を選択します。 アプリケーションのアクセス許可 の画像

    不要なすべてのアクセス許可を取り消します。

    付与されていないアプリケーションのアクセス許可のイメージ

    シナリオに応じて、アプリケーションで "Microsoft Graph API" を使用できるようにするには、次のアクセス許可をアプリケーションに追加する必要があります。

    オブジェクトを使用した操作 許可が必要です アクセス許可の種類
    スキーマ検出 Application.Read.All アプリケーション
    インポートグループ Group.Read.All または Group.ReadWrite.All アプリケーション
    ユーザーのインポート User.Read.AllUser.ReadWrite.AllDirectory.Read.All、または Directory.ReadWrite.All アプリケーション

    必要なアクセス許可の詳細については、アクセス許可のリファレンスを参照してください。

手記

Application.Read.All アクセス許可はスキーマ検出に必須であり、コネクタが扱うオブジェクトの種類に関係なく付与する必要があります。

  1. 選択したアクセス許可に対して管理者の同意を付与します。 付与された管理者の同意 の画像

コネクタのインストール

  1. コネクタをインストールする前に、同期サーバーに次のものがインストールされていることを確認します。
  • Microsoft .NET 4.6.2 Framework 以降
  • Microsoft Identity Manager 2016 SP2。修正プログラム 4.4.1642.0 KB4021562 以降を使用する必要があります。
  1. Microsoft Graph 用コネクタは、Microsoft Identity Manager 2016 SP2 用の他のコネクタに加えて、Microsoft ダウンロード センターからダウンロードできます。

  2. MIM 同期サービスを再起動します。

コネクタの構成

  1. Synchronization Service Manager UI で、[コネクタ][作成] を選択します。 Graph (Microsoft)を選択し、コネクタを作成してわかりやすい名前を付けます。

新しいコネクタイメージ

  1. MIM 同期サービス UI で、アプリケーション ID と生成されたクライアント シークレットを指定します。 MIM Sync で構成された各管理エージェントには、同じアプリケーションに対してインポートを並列で実行しないように、Microsoft Entra ID に独自のアプリケーションが必要です。

図 4. [接続] ページ

接続ページ (図 4) には、使用されている Graph API バージョンとテナント名が含まれています。 クライアント ID とクライアント シークレットは、Microsoft Entra ID で以前に作成されたアプリケーションのアプリケーション ID とキー値を表します。

コネクタの既定値は、v1.0 と、Microsoft Graph グローバル サービスのログイン エンドポイントとグラフ エンドポイントです。 テナントが国内クラウド内にある場合は、国内クラウドの エンドポイントを使用するように構成を変更する必要があります。 グローバル サービス内の Graph の特定の機能は、すべての国内クラウドで使用できない場合があることに注意してください。

  1. [グローバル パラメーター] ページで必要な変更を行います。

グローバル パラメーター ページの画像

図 5. [グローバル パラメーター] ページ

グローバル パラメーター ページには、次の設定が含まれています。

  • DateTime 形式 – Edm.DateTimeOffset 型の任意の属性に使用される形式。 すべての日付は、インポート時にその形式を使用して文字列に変換されます。 設定形式は、日付を保存する任意の属性に適用されます。

  • HTTP タイムアウト (秒) – Graph への各 HTTP 呼び出し中に使用されるタイムアウト (秒)。

  • 次の記号で作成されたユーザーのパスワード変更を強制します。このオプションは、エクスポート中に作成される新しいユーザーに使用されます。 オプションが有効 場合、forceChangePasswordNextSignIn プロパティは true に設定され、それ以外の場合は false になります。

コネクタのスキーマと操作の構成

  1. スキーマを構成します。 コネクタでは、Graph v1.0 エンドポイントで使用する場合、次のオブジェクトの種類の一覧がサポートされます。
  • 利用者

    • 完全/差分インポート

    • エクスポート (追加、更新、削除)

  • グループ

    • 完全/差分インポート

    • エクスポート (追加、更新、削除)

Graph ベータ エンドポイントを使用するようにコネクタを構成すると、追加のオブジェクトの種類が表示される場合があります。

サポートされている属性の種類の一覧:

  • Edm.Boolean

  • Edm.String

  • Edm.DateTimeOffset (コネクタ スペース内の文字列)

  • microsoft.graph.directoryObject (コネクタ スペース内のサポートされているオブジェクトへの参照)

  • microsoft.graph.contact

複数値属性 (コレクション) は、上記の一覧の任意の型でもサポートされています。

コネクタでは、アンカーに 'id' 属性を使用し、すべてのオブジェクトに DN を使用します。 そのため、名前の変更は必要ありません。Graph API ではオブジェクトの id 属性の変更が許可されないためです。

アクセス トークンの有効期間

Graph アプリケーションでは、Graph API にアクセスするためのアクセス トークンが必要です。 コネクタは、インポート イテレーションごとに新しいアクセス トークンを要求します (インポートイテレーションはページ サイズによって異なります)。 例えば:

  • Microsoft Entra ID には 1,000 個のオブジェクトが含まれています

  • コネクタで構成されているページ サイズは 5000 です

この場合、インポート中に 2 回繰り返しが発生し、それぞれが 5,000 個のオブジェクトを Sync に返します。そのため、新しいアクセス トークンは 2 回要求されます。

エクスポート中に、追加/更新/削除する必要があるオブジェクトごとに新しいアクセス トークンが要求されます。

クエリ フィルター

Graph API エンドポイントでは、$filter パラメーターを導入することで、GET クエリによって返されるオブジェクトの量を制限する機能が提供されます。

クエリ フィルターを使用して完全なインポート パフォーマンス サイクルを向上させるには、コネクタのプロパティの [スキーマ 1] ページで、[オブジェクトフィルターの追加] チェック ボックス 有効にします。

[Add objects filter]\(オブジェクトフィルターの追加\) チェック ボックスがオンになっている 1 つのイメージのコネクタ設定ページ

その後、スキーマ 2 ページで、ユーザー、グループ、連絡先、またはサービス プリンシパルのフィルター処理に使用する式を入力します。

コネクタ設定ページ 2 の画像とサンプル フィルター startsWith(displayName,'J')

上のスクリーンショットでは、フィルター startsWith(displayName,'J') は、displayName 属性値が 'J' で始まるユーザーのみを読み取るために設定されています。

コネクタのプロパティで、フィルター式で使用される属性が選択されていることを確認します。

displayName 属性が選択されているコネクタ設定ページイメージ

$filter クエリ パラメーターの使用方法の詳細については、「クエリ パラメーターを使用して応答をカスタマイズする」を参照してください。

手記

デルタ クエリ エンドポイントは現在、フィルター機能を提供していないため、フィルターの使用は完全インポートのみに制限されています。 クエリ フィルターを有効にして差分インポートの実行を開始しようとすると、エラーが発生します。

トラブルシューティング

ログ を有効にする

Graph に問題がある場合は、ログを使用して問題をローカライズできます。 そのため、汎用コネクタの場合と同じ方法 トレースを有効にすることができます。 または、(system.diagnostics/sources セクション内の) miiserver.exe.config に次のコードを追加するだけです。

<source name="ConnectorsLog" switchValue="Verbose">
<listeners>
<add initializeData="ConnectorsLog"
type="System.Diagnostics.EventLogTraceListener, System, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ConnectorsLogListener" traceOutputOptions="LogicalOperationStack,
DateTime, Timestamp, Callstack" />
<remove name="Default" />
</listeners>
</source>

手記

[別のプロセスでこの管理エージェントを実行する] が有効になっている場合は、miiserver.exe.configの代わりに dllhost.exe.config を使用する必要があります。

アクセス トークンの期限切れエラー

コネクタから HTTP エラー 401 Unauthorized、"Access token has expired." (アクセス トークンの有効期限が切れています)" というメッセージが返される場合があります。

エラー詳細イメージ

図 6. "アクセス トークンの有効期限が切れています。" エラー

この問題の原因は、Azure 側からのアクセス トークンの有効期間の構成である可能性があります。 既定では、アクセス トークンは 1 時間後に期限切れになります。 有効期限を長くするには、この記事参照してください。

Azure AD PowerShell モジュールのパブリック プレビュー リリース 使用した例

Access トークンの有効期間イメージ

New-AzureADPolicy -Definition @('{"TokenLifetimePolicy":{"Version":1, "AccessTokenLifetime":"5:00:00"}}') -DisplayName "OrganizationDefaultPolicyScenario" -IsOrganizationDefault $true -Type "TokenLifetimePolicy"

次の手順