Microsoft Entra Connect には、同期のための既定の規則が付属しています。 残念ながら、これらの規則はすべての組織に普遍的には適用されません。 要件に基づいて、それらを変更する必要があります。 この記事では、最も一般的なカスタマイズの例を 2 つ検討し、正しくカスタマイズを行う方法について説明します。
注
必要なカスタマイズを実現するために既存の既定の規則を変更することはサポートされていません。 行った場合、将来のリリースでそれらの規則を最新バージョンに更新できなくなります。 必要なバグ修正や新機能が手に入りません。 このドキュメントでは、既存の既定の規則を変更せずに、同じ結果を実現する方法を説明します。
変更された既定の規則を識別する方法
バージョン 1.3.7.0 以降の Microsoft Entra Connect では、変更された既定の規則を簡単に識別できます。 デスクトップのアプリに移動して、 [Synchronization Rules Editor](同期規則エディター) を選択します。
エディターでは、変更されている既定の規則は名前の前の警告アイコンで示されます。
その隣には、無効になっている同じ名前の規則も表示されます (これは標準の既定の規則です)。
一般的なカスタマイズ
次に示すのは、既定の規則に対する一般的なカスタマイズです。
- 属性のフローを変更する
- スコープ フィルターを変更する
- 結合条件を変更する
規則を変更する前に:
同期スケジューラを無効にします。 スケジューラは、既定で 30 分ごとに実行されます。 変更中や、新しい規則のトラブルシューティング中は、スケジューラが起動されないようにします。 スケジューラを一時的に無効にするには、PowerShell を起動し、
Set-ADSyncScheduler -SyncCycleEnabled $false
を実行します。スコープ フィルターを変更すると、ターゲット ディレクトリ内のオブジェクトが削除される場合があります。 オブジェクトのスコープを変更する前によく注意してください。 アクティブ サーバーを変更するには、ステージング サーバーを変更することをお勧めします。
「同期規則の検証」セクションで説明されているように、新しい規則を追加した後は、単一のオブジェクトでプレビューを実行します。
新しい規則を追加した後やカスタム同期規則を変更した後は、完全同期を実行します。 この同期によって、すべてのオブジェクトに新しい規則が適用されます。
属性のフローを変更する
属性フローの変更には 3 つの異なるシナリオがあります。
- 新しい属性を追加する。
- 既存の属性の値を上書きする。
- 既存の属性を同期しないことを選択する。
これらは、標準の既定の規則を変更しないで行うことができます。
新しい属性を追加する
属性がソース ディレクトリからターゲット ディレクトリにフローしていないことが分かった場合は、「Microsoft Entra Connect 同期: ディレクトリ拡張」を使用してこれを修正します。
拡張機能が機能しない場合は、次のセクションで説明する 2 つの新しい同期規則を追加してみます。
受信同期規則を追加する
受信同期規則は、属性のソースがコネクタ スペースであり、ターゲットがメタバースであることを意味します。 たとえば、オンプレミスの Active Directory から Microsoft Entra ID への新しい属性フローを追加するには、新しい受信同期規則を作成します。 同期規則エディターを起動し、方向として [Inbound](受信) を選択して、 [Add new rule](新しい規則の追加) を選択します。
独自の名前付け規則に従って規則の名前を指定します。 ここでは、「Custom In from AD - User」にします。 これは、規則がカスタム規則であり、Active Directory コネクタ スペースからメタバースへの受信規則であることを意味します。
後で規則を簡単にメンテナンスできるように、規則の説明を提供します。 たとえば、規則の目的や必要な理由を基にして説明します。
[Connected System](接続されているシステム) 、 [Connected System Object Type](接続されているシステム オブジェクトの種類) 、 [Metaverse Object Type](メタバース オブジェクトの種類) の各フィールドを選択します。
優先順位の値を 0 から 99 の範囲で指定します (値が小さいほど、優先順位が高くなります)。 [Tag](タグ) 、 [Enable Password Sync](パスワードの同期を有効にする) 、 [Disabled](無効) の各フィールドは、既定の選択を使用します。
[Scoping filter](スコープ フィルター) は空のままにします。 これは、Active Directory の接続されたシステムとメタバースの間のすべての結合されたオブジェクトに規則を適用することを意味します。
[Join rules](結合規則) は空のままにします。 これは、この規則では標準の既定の規則で定義されている結合条件を使用することを意味します。 これは、標準の既定の規則を無効にしたり削除したりしてはならないもう 1 つの理由です。 結合条件がないと、属性はフローしません。
属性に対する適切な変換を追加します。 定数を割り当てて、定数値がターゲット属性にフローするようにできます。 ソース属性またはターゲット属性の間に直接マッピングを使用できます。 または、属性に対して式を使用することができます。 使用できるさまざまな式関数は、こちらに掲載されています。
送信同期規則を追加する
属性をターゲット ディレクトリにリンクするには、送信規則を作成する必要があります。 これは、ソースがメタバースであり、ターゲットが接続されたシステムであることを意味します。 送信規則を作成するには、同期規則エディターを起動し、 [Direction](方向) を [Outbound](送信) に変更して、 [Add new rule](新しい規則の追加) を選択します。
受信規則と同様に、独自の名前付け規則を使用して規則に名前 を付けます。 Microsoft Entra テナントとして [Connected System](接続されたシステム) を選択し、属性値を設定する接続されたシステムのオブジェクトを選択します。 優先順位を 0 から 99 の間で設定します。
[Scoping filter](スコープ フィルター) と [Join rules](結合規則) は空のままにします。 変換を定数、直接、または式として入力します。
これで、ユーザー オブジェクトの新しい属性を Active Directory から Microsoft Entra ID にフローさせる方法がわかりました。 この手順を使用して、任意の属性を任意のオブジェクトからソースとターゲットにマッピングできます。 詳細については、カスタム同期規則の作成とユーザーをプロビジョニングする準備に関する説明を参照してください。
既存の属性の値をオーバーライドする
既にマップされている属性の値をオーバーライドすることがあります。 たとえば、常に Microsoft Entra ID の属性に null 値を設定したい場合は、単に受信規則のみを作成します。 式の値 AuthoritativeNull
がターゲットの属性にフローするようにします。
注
この場合は、AuthoritativeNull
の代わりに Null
を使用します。 これは、優先順位が低い (規則の数値が大きい) 場合でも、null 以外の値は null 値に置き換わるためです。 一方で、AuthoritativeNull
が他の規則によって null 以外の値に置き換えられることはありません。
既存の属性を同期しない
属性を同期から除外する場合は、Microsoft Entra Connect が提供する属性フィルター機能を使用します。 デスクトップ アイコンから Microsoft Entra Connect を起動し、[同期オプションのカスタマイズ] を選択します。
[Microsoft Entra アプリと属性フィルター] が選択されていることを確認して、[次へ] を選択します。
同期から除外する属性をオフにします。
スコープ フィルターを変更する
ほとんどのオブジェクトは Azure AD Sync によって処理されます。 標準の既定の同期規則を変更することなく、オブジェクトのスコープを縮小し、エクスポートされるオブジェクトの数を減らすことができます。
同期するオブジェクトのスコープを縮小するには、次のいずれかの方法を使用します。
- cloudFiltered 属性
- 組織単位のフィルター処理
同期されるユーザーのスコープを縮小した場合、フィルターで除外されるユーザーのパスワード ハッシュの同期も停止します。 オブジェクトが既に同期している場合、スコープを縮小した後で、フィルターによって除外されたオブジェクトはターゲット ディレクトリから削除されます。 このため、スコープは極めて慎重に設定してください。
Von Bedeutung
Microsoft Entra Connect によって構成されているオブジェクトのスコープを拡大することはお勧めしません。 そのようにすると、Microsoft サポート チームがカスタマイズを理解するのが困難になります。 オブジェクトのスコープを拡大する必要がある場合は、既存の規則を編集し、それを複製して、元の規則を無効にします。
cloudFiltered 属性
Active Directory でこの属性を設定することはできません。 この属性の値を設定するには、新しい受信規則を追加します。 その後、変換と式を使用して、メタバースでこの属性を設定できます。 部署名が HRD (大文字と小文字の区別なし) で始まるすべてのユーザーを同期しない場合の例を次に示します。
cloudFiltered <= IIF(Left(LCase([department]), 3) = "hrd", True, NULL)
最初に、ソース (Active Directory) からの部署を小文字に変換します。 次に、Left
関数を使って最初の 3 文字のみを取り出し、それを hrd
と比較します。 一致する場合は、値を True
に設定し、それ以外の場合は NULL
にします。 値を null に設定しても、優先順位の低い (高い数値) 他の規則によって異なる条件が書き込まれる可能性があります。 「同期規則の検証」セクションで説明されているように、1 つのオブジェクトでプレビューを実行して同期規則を検証します。
組織単位のフィルター処理
1 つまたは複数の組織単位 (OU) を作成し、同期しないオブジェクトをその OU に移動できます。 次に、Microsoft Entra Connect で OU のフィルター処理を構成します。 デスクトップ アイコンから Microsoft Entra Connect を起動し、次のオプションを選択します。 Microsoft Entra Connect のインストール時に OU フィルタリングを構成することもできます。
ウィザードの指示に従い、同期しない OU をオフにします。
結合条件を変更する
Microsoft Entra Connect によって構成された既定の結合条件を使用します。 既定の結合条件を変更すると、Microsoft サポートがカスタマイズ内容を理解し、製品をサポートするのが難しくなります。
同期規則の検証
プレビュー機能を使用すると、完全同期サイクルを実行しなくても、新しく追加された同期規則を検証できます。 Microsoft Entra Connect で [Synchronization Service](同期サービス) を選択します。
[Metaverse Search](メタバースの検索) を選択します。 スコープ オブジェクトとして [person](人) を選択し、 [Add Clause](句の追加) を選択して、検索条件を指定します。 次に、 [Search](検索) を選択し、検索結果内のオブジェクトをダブルクリックします。 このステップを実行する前に、フォレストでインポートと同期を実行して、Microsoft Entra Connect のデータがそのオブジェクトの最新のものになるようにします。
[Metaverse Object Properties](メタバース オブジェクトのプロパティ) で [Connectors](コネクタ) を選択し、対応するコネクタ (フォレスト) でオブジェクトを選択して、 [Properties…](プロパティ...) を選択します。
[Preview…](プレビュー...) を選択します
[Preview](プレビュー) ウィンドウで [Generate Preview](プレビューの生成) を選択し、左側のウィンドウで [Import Attribute Flow](インポート属性フロー) を選択します。
新しく追加した規則がオブジェクト上で実行され、cloudFiltered
属性が true に設定されていることがここでわかります。
変更された規則と既定の規則を比較するには、両方の規則を個別にテキスト ファイルとしてエクスポートします。 これらの規則は、PowerShell スクリプト ファイルとしてエクスポートされます。 ファイル比較ツール (たとえば windiff) を使用してそれらを比較し、変更を確認できます。
変更後の規則では、msExchMailboxGuid
属性の種類が Direct ではなく Expression に変更されていることに注意してください。 また、値が NULL および ExecuteOnce オプションに変更されています。 Identified と Precedence の相違は無視してかまいません。
規則を修正して既定の設定に戻すには、変更された規則を削除し、既定の規則を有効にします。 実現しようとしているカスタマイズが失われないように確認します。 準備ができたら、完全同期を実行します。