Azure AD Connect 同期: フィルター処理の構成
フィルター処理を使用することによって、オンプレミスのディレクトリからどのオブジェクトを Azure Active Directory (Azure AD) に反映するかを制御できます。 既定の構成では、構成されているフォレスト内の全ドメインの全オブジェクトが対象となります。 通常は、この構成を推奨します。 Microsoft 365 のワークロード (Exchange Online、Skype for Business など) を使っているユーザーには、完全なグローバル アドレス一覧を表示した方が、電子メールの送信先や電話の相手を探すうえで便利です。 既定では、オンプレミス環境の Exchange または Lync と同じ利便性が得られるように構成されています。
ただし、場合によっては、既定の構成を変更する必要があります。 次に例をいくつか示します。
- Azure または Microsoft 365 を試験運用しており、Azure AD に存在するユーザーの一部だけが必要な場合、 小規模な試験では、完全なグローバル アドレス一覧がなくても機能を検証することができます。
- Azure AD に含める必要のない、個人用以外のアカウント (サービス アカウントなど) が多数存在します。
- コンプライアンス上の理由から、オンプレミスのユーザー アカウントは一切削除できないので 単に無効にします。 一方、Azure AD には、アクティブなアカウントだけが必要になります。
この記事では、各種フィルター処理方法の構成について説明します。
重要
公式に文書化されているアクションを除き、Microsoft は Azure AD Connect Sync の変更や操作をサポートしません。 サポートされていないアクションを行うと、Azure AD Connect Sync が不整合な状態になったり、サポートされていない状態になったりする可能性があります。結果的に、Microsoft ではこのようなデプロイについてテクニカル サポートを提供できなくなります。
基本事項と注意事項
Azure AD Connect Sync では、いつでもフィルター処理を有効にできます。 最初に既定の構成でディレクトリ同期を実行した後、フィルター処理を構成した場合、フィルター処理により除外されるオブジェクトは、Azure AD に対する同期の対象外になります。 この変更により、以前同期されてからフィルター処理された Azure AD のオブジェクトは、すべて Azure AD から削除されます。
フィルター処理に変更を加える際は、未検証の変更が意図せずエクスポートされてしまうことのないよう、あらかじめ組み込みのスケジューラを無効にしておいてください。
フィルター処理によって多くのオブジェクトが同時に削除される可能性があります。フィルター処理に変更を加えたら、必ず検証したうえで、Azure AD に変更をエクスポートするようにしてください。 構成作業を終えたら、変更内容を Azure AD にエクスポートして反映する前に検証作業を実行することを強くお勧めします。
意図せず多数のオブジェクトを削除してしまうことのないよう、"誤って削除されないように保護する" 機能が既定で有効になっています。 フィルター処理で多数のオブジェクトを削除する場合 (既定では 500 個)、この記事の手順に従って、削除処理を Azure AD に反映できるようにする必要があります。
November 2015 (1.0.9125) より前のビルドを使用し、フィルターの構成を変更して、パスワード ハッシュ同期を使用する場合は、構成を完了した後、すべてのパスワードの完全同期をトリガーする必要があります。 パスワードの完全同期をトリガーする方法の手順については、「すべてのパスワードの完全同期の開始」を参照してください。 ビルド 1.0.9125 以降を使用している場合、パスワードを同期する必要があるかどうかとこの特別な手順が今後必要かどうかの計算も、通常の完全同期処理で行われます。
フィルター処理のエラーが原因でユーザー オブジェクトが Azure AD から誤って削除された場合、フィルター処理構成を削除することで Azure AD 内にユーザー オブジェクトを再生成できます。 その後、ディレクトリの同期を再実行できます。 この操作により、Azure AD 内のごみ箱からユーザーが復元されます。 ただし、その他の種類のオブジェクトについては削除を取り消すことができません。 たとえば、リソースの ACL に使用されていたセキュリティ グループをうっかり削除すると、そのグループおよび対応する ACL は復元できなくなります。
削除されるのは、Azure AD Connect の作用対象 (スコープ) として認識されていたオブジェクトだけです。 別の同期エンジンによって作成されたオブジェクトが Azure AD 内に存在していても、それらがスコープ内に存在しない場合、フィルター処理を追加しても、それらのオブジェクトは削除されません。 たとえば、当初 DirSync サーバーによって Azure AD 内のディレクトリ全体が完全にコピーされているとき、最初からフィルター処理を有効にした状態で新しい Azure AD Connect Sync サーバーをインストールした場合、DirSync によって別途作成されたオブジェクトは、Azure AD Connect によって削除されません。
新しいバージョンの Azure AD Connect のインストールまたはアップグレードを行ってもフィルター処理の構成は保持されます。 新しいバージョンにアップグレードした後は、常に構成が誤って変更されていないことを確認してから、最初の同期サイクルを実行することをお勧めします。
複数のフォレストが存在する場合、このトピックで説明するフィルター処理構成をすべてのフォレストに適用する必要があります (すべてのフォレストに同じ構成を適用する場合)。
同期スケジューラを無効にする
同期サイクルを 30 分おきにトリガーする、組み込みのスケジューラを無効にするには、以下の手順に従います。
- Windows Powershell を開き、次のコマンドを使用して ADSync モジュールをインポートし、スケジューラを無効にします
import-module ADSync
Set-ADSyncScheduler -SyncCycleEnabled $False
- この記事で説明されているとおりに変更します。 その後、次のコマンドを使用してスケジューラをもう一度有効にします
Set-ADSyncScheduler -SyncCycleEnabled $True
フィルター処理オプション
ディレクトリ同期ツールには、次のフィルター処理構成タイプを適用できます。
- グループ ベース: 単一のグループに基づくフィルター処理は、インストール ウィザードを使用して、初回インストール時にのみ構成できます。
- ドメイン ベース: このオプションを使用すると、どのドメインを Azure AD に同期させるかを選択できます。 また、Azure AD Connect Sync をインストールした後にオンプレミス インフラストラクチャに変更を加えた場合、同期エンジンの構成でドメインを追加または削除することができます。
- 組織単位 (OU) ベース: このオプションを使用すると、どの OU を Azure AD に同期させるかを選択できます。 選択された OU 内のすべてのオブジェクト タイプが対象となります。
- 属性ベース: このオプションを使用すると、オブジェクトの属性値に基づいてオブジェクトをフィルター処理できます。 オブジェクトの種類ごとに異なるフィルターを使用することもできます。
フィルター処理のオプションは、同時に複数使用することができます。 たとえば、1 つの OU 内のオブジェクトのみを含めるために OU ベース フィルター処理を使用できます。 同時に、オブジェクトをさらにフィルター処理するために属性ベースのフィルター処理を使用できます。 複数のフィルター処理方法を使用した場合、それらのフィルターが "論理積" で組み合わされます。
ドメイン ベースのフィルター処理
このセクションでは、ドメイン フィルターを構成する手順について説明します。 Azure AD Connect をインストールした後にフォレスト内のドメインを追加または削除した場合は、フィルター処理の構成も更新する必要があります。
ドメイン ベースのフィルター処理を変更するには、インストール ウィザード (ドメインと OU のフィルタリング) を実行します。 インストール ウィザードは、このトピックに記載されているすべてのタスクを自動化します。
組織単位ベースのフィルター処理
OU ベースのフィルター処理を変更するには、インストール ウィザード (ドメインと OU のフィルタリング) を実行します。 インストール ウィザードは、このトピックに記載されているすべてのタスクを自動化します。
重要
同期対象の OU を明示的に選択した場合、Azure AD Connect では、その OU の DistinguishedName がドメインの同期スコープの包含リストに追加されます。 ただし、後で Active Directory でその OU の名前を変更すると、OU の DistinguishedName が変更されるため、Azure AD Connect ではその OU が同期スコープ内にあるとは見なされなくなります。 これによりすぐに問題が発生することはありませんが、完全なインポート ステップの際に、Azure AD Connect で同期スコープが再評価され、同期スコープ外のオブジェクトが削除 (廃止) されます。これにより、Azure AD 内のオブジェクトが予期せず大量に削除される可能性があります。 この問題を回避するには、OU の名前を変更した後、Azure AD Connect ウィザードを実行し、OU を再度選択してもう一度同期スコープに含めます。
属性ベースのフィルター処理
以下の手順は、November 2015 (1.0.9125) 以降のビルドを想定しています。
重要
Azure AD Connect によって作成された既定の規則は、変更しないことをお勧めします。 規則を変更する場合は、複製してから、元の規則を無効にします。 複製した規則を変更してください。 これによって (元の規則を無効にすることによって)、その規則によって有効にしたバグ修正や機能は見つからなくなります。
属性ベースのフィルター処理は、オブジェクトをフィルター処理する手段として最も柔軟性の高い方法となります。 宣言型のプロビジョニングの強みを活かして、Azure AD に対してオブジェクトを同期させるタイミングをあらゆる角度から制御することができます。
Active Directory からメタバースへの受信フィルター処理と、メタバースから Azure AD への送信フィルター処理を適用できます。 維持が最も簡単な受信フィルター処理を適用することをお勧めします。 送信側のフィルター処理は、複数のフォレストからのオブジェクトを合わせたうえで評価する必要がある場合にのみ使用してください。
受信のフィルター処理
受信フィルター処理は既定の構成を使用します。既定の構成では、Azure AD に送信されるオブジェクトを同期させるためには、メタバース属性 cloudFiltered の値が未設定となっている必要があります。 この属性の値が True に設定されている場合、オブジェクトは同期されません。 意図的に False に設定することは避けてください。 他の規則から確実に値が得られるよう、この属性の値は True または NULL (未設定) にする必要があります。
Azure AD Connect は Azure AD でプロビジョニングするオブジェクトをクリーンアップするように設計されていることに注意してください。 システムが過去に Azure AD でオブジェクトをプロビジョニングしたことがなく、インポート手順で Azure AD オブジェクトを取得した場合、このオブジェクトは他のシステムによって Azure AD で作成されたと正しく想定されます。 メタバース属性 cloudFiltered
が True に設定されている場合でも、Azure AD Connect は、これらの種類の Azure AD オブジェクトをクリーンアップしません。
受信フィルター処理では、同期の対象となるオブジェクトと対象外となるオブジェクトがスコープの作用によって決定されます。 この点は、組織ごとに実際の要件に合わせて調整することになります。 スコープ モジュールには、同期規則の作用対象を判断するグループと句があります。 グループは、1 つまたは複数の句を含みます。 複数の句は "論理積" で組み合わされ、複数のグループは "論理和" で組み合わされます。
たとえば、次のようなフィルターがあるとします。
これは、 (department = IT) OR (department = Sales AND c = US) という意味になります。
次のサンプルと手順は、ユーザー オブジェクトが例として使用されていますが、実際にはオブジェクトの種類に関係なく利用できます。
次の例では、優先順位の値は 50 から始まります。 これは既に使用されていない任意の数値であればよいですが、100 よりも小さい必要があります。
否定のフィルター処理 (同期対象外の指定)
以下の例では、extensionAttribute15 の値が NoSync であるすべてのユーザーをフィルターで除外 (同期対象外に) します。
- ADSyncAdmins セキュリティ グループに属するアカウントを使用して、Azure AD Connect Sync を実行しているサーバーにサインインします。
- [スタート] メニューから、同期規則エディターを起動します。
- [受信] が選択されていることを確認し、 [新しい規則の追加] をクリックします。
- わかりやすい名前を規則に付けます ("AD からの受信 – 同期しないユーザーのフィルター" など)。 適切なフォレストを選択し、 [接続されているシステム オブジェクトのタイプ] として [ユーザー] を、 [メタバース オブジェクトの種類] として [人] を選択します。 [リンクの種類] で [結合] を選択します。 [優先順位] に、別の同期規則で現在使用されていない値 (50 など) を入力して、 [次へ] をクリックします。
- [スコープ フィルター] で、 [グループの追加] 、 [句の追加] の順にクリックします。 [属性] で [ExtensionAttribute15] を選択します。 [演算子] を EQUAL に設定し、 [値] ボックスに「NoSync」という値を入力します。 [次へ] をクリックします。
- [参加] 規則は空のままにして、 [次へ] をクリックします。
- [変換の追加] をクリックし、 [FlowType] として [Constant] を、 [ターゲット属性] として [cloudFiltered] に選択します。 [ソース] テキスト ボックスに「True」を入力します。 [追加] をクリックして規則を保存します。
- 構成を完了するには、完全同期を実行する必要があります。続きは「変更の適用と検証」セクションを参照してください。
肯定のフィルター処理 (同期対象の指定)
肯定のフィルター処理を式で表すことは、否定の場合と比べて難易度が上がります。同期の対象とするかどうかが不明確なオブジェクト (会議室など) も考慮しなければならないためです。 既定の規則 [In from AD - User Join] の既定のフィルターもオーバーライドします。 カスタム フィルターを作成するときは、重要なシステム オブジェクト、レプリケーション競合オブジェクト、特殊なメールボックス、Azure AD Connect のサービス アカウントなどが含まれていないことを確認してください。
肯定のフィルター処理オプションには、2 つの同期規則が必要となります。 1 つ目に必要なのが、同期対象のオブジェクトの範囲を正しく指定した規則 (複数可) です。 また、2 つ目に、同期対象オブジェクトとしてまだ識別されていないすべてのオブジェクトを除外する包括的な同期規則も必要です。
以下の例では、department 属性の値が Salesであるユーザー オブジェクトだけを同期対象としています。
- ADSyncAdmins セキュリティ グループに属するアカウントを使用して、Azure AD Connect Sync を実行しているサーバーにサインインします。
- [スタート] メニューから、同期規則エディターを起動します。
- [受信] が選択されていることを確認し、 [新しい規則の追加] をクリックします。
- わかりやすい名前を規則に付けます ("AD からの受信 – 営業部のユーザーの同期" など)。 適切なフォレストを選択し、 [接続されているシステム オブジェクトのタイプ] として [ユーザー] を、 [メタバース オブジェクトの種類] として [人] を選択します。 [リンクの種類] で [結合] を選択します。 [優先順位] に、別の同期規則で現在使用されていない値 (51 など) を入力して、 [次へ] をクリックします。
- [スコープ フィルター] で、 [グループの追加] 、 [句の追加] の順にクリックします。 [属性] で [department] を選択します。 [演算子] を [EQUAL] に設定し、 [値] ボックスに「Sales」という値を入力します。 [次へ] をクリックします。
- [参加] 規則は空のままにして、 [次へ] をクリックします。
- [変換の追加] をクリックし、 [FlowType] として [Constant] を、 [ターゲット属性] として [cloudFiltered] に選択します。 [ソース] ボックスに、「False」を入力します。 [追加] をクリックして規則を保存します。
これは特殊なケースですが、cloudFiltered を明示的に False に設定します。 - 次に、包括的な同期規則を作成する必要があります。 わかりやすい名前を規則に付けます ("AD からの受信 – 包括的なユーザーのフィルター" など)。 適切なフォレストを選択し、 [接続されているシステム オブジェクトのタイプ] として [ユーザー] を、 [メタバース オブジェクトの種類] として [人] を選択します。 [リンクの種類] で [結合] を選択します。 [優先順位] に、別の同期規則で現在使用されていない値 (99 など) を入力します。 前の同期規則より高い (優先順位の低い) 値を選択しました。 ただし、後で追加の部門の同期を開始した場合にフィルター処理の同期規則を追加できるように、多少の余地も残しています。 [次へ] をクリックします。
- [スコープ フィルター] は空のままにして、 [次へ] をクリックします。 フィルターを空にした場合、すべてのオブジェクトに規則が適用されます。
- [参加] 規則は空のままにして、 [次へ] をクリックします。
- [変換の追加] をクリックし、 [FlowType] として [Constant] を、 [ターゲット属性] として [cloudFiltered] に選択します。 [ソース] ボックスに、「True」を入力します。 [追加] をクリックして規則を保存します。
- 構成を完了するには、完全同期を実行する必要があります。続きは「変更の適用と検証」セクションを参照してください。
必要であれば、1 つ目のタイプの規則をさらに作成し、同期対象のオブジェクトを増やすこともできます。
送信のフィルター処理
場合によっては、オブジェクトがメタバースに参加した後にのみ、フィルター処理を実行する必要があります。 たとえば、オブジェクトを同期する必要があるかどうかを確認するには、リソース フォレストの mail 属性と、アカウント フォレストの userPrincipalName 属性を確認する必要があります。 このような場合、送信ルールに関するフィルター処理を作成します。
この例では、mail と userPrincipalName の両方の末尾が @contoso.com であるユーザーのみが同期されるようにフィルター処理を変更します。
- ADSyncAdmins セキュリティ グループに属するアカウントを使用して、Azure AD Connect Sync を実行しているサーバーにサインインします。
- [スタート] メニューから、同期規則エディターを起動します。
- [規則の種類] の [送信] をクリックします。
- 使用する Connect のバージョンに応じて、Out to Azure AD – User Join と Out to Azure AD - User Join SOAInAD のいずれかの規則を選択し、 [編集] をクリックします。
- ポップアップで [はい] を選択して規則のコピーを作成します。
- [説明] ページの [優先順位] の値を、まだ使用していない値 (50 など) に設定します。
- 左側のナビゲーションにある [スコープ フィルター] をクリックし、 [句の追加] をクリックします。 [属性] で [mail] を選択します。 [演算子] で [ENDSWITH] を選択します。 [値] に「contoso.com」と入力し、[句の追加] をクリックします。 [属性] で [userPrincipalName] を選択します。 [演算子] で [ENDSWITH] を選択します。 [値] に「contoso.com」と入力します。
- [保存] をクリックします。
- 構成を完了するには、完全同期を実行する必要があります。続きは「変更の適用と検証」セクションを参照してください。
変更の適用と検証
構成を変更したら、それらの変更をシステム内の既存のオブジェクトに適用する必要があります。 まだ同期エンジンに存在しないオブジェクトを処理 (さらに、同期エンジンがソース システムをもう一度読み取ってその内容を検証) しなければならないケースも考えられます。
ドメインまたは組織単位のフィルター処理を使って構成を変更した場合は、フル インポートに続けて差分同期を実行する必要があります。
属性のフィルター処理を使って構成を変更した場合は、完全同期を実行する必要があります。
手順は次のとおりです。
- [スタート] メニューから [同期サービス] を起動します。
- [コネクタ] を選択します。 [コネクタ] の一覧から、構成変更済みのコネクタを選択します。 [アクション] から [実行] を選択します。
- [実行プロファイル] から、前のセクションで説明した操作を選択します。 2 つのアクションを実行する必要がある場合は、1 つ目が終了した後 (選択したコネクタの [状態] 列が [Idle] になっている) に 2 つ目を実行します。
同期後、すべての変更がエクスポートの対象としてステージングされます。 実際に Azure AD に変更を加える前に、それらの変更がすべて正しいことを検証する必要があります。
- コマンド プロンプトを起動し、
%ProgramFiles%\Microsoft Azure AD Sync\bin
に移動します。 csexport "Name of Connector" %temp%\export.xml /f:x
を実行します。
同期サービスにコネクタの名前があることを確認できます。 Azure AD の場合は、"contoso.com - Azure AD" のような名前が表示されます。CSExportAnalyzer %temp%\export.xml > %temp%\export.csv
を実行します。- %temp% に export.csv という名前のファイルが生成されます。このファイルは、Microsoft Excel で開くことができます。 このファイルには、エクスポートの対象となるすべての変更が含まれています。
- データまたは構成に必要な変更を加え、エクスポートの対象となる変更が希望どおりになるまで、(インポート、同期、検証の) 手順を実行します。
問題がなければ、変更を Azure AD にエクスポートします。
- [コネクタ] を選択します。 [コネクタ] の一覧から Azure AD コネクタを選択します。 [アクション] から [実行] を選択します。
- [実行プロファイル] で [エクスポート] を選択します。
- 構成の変更によって削除されるオブジェクトが多数存在し、その数が、構成されているしきい値 (既定では 500 個) を超えた場合、エクスポート時にエラーが表示されます。 エラーが表示された場合は、"誤って削除されないように保護する" 機能を一時的に無効にする必要があります。
この時点でスケジューラをもう一度有効にします。
- [スタート] メニューから [タスク スケジューラ] を起動します。
- [タスク スケジューラ ライブラリ] の直下から Azure AD Sync Scheduler というタスクを探して右クリックし、 [有効] を選択します。
グループベースのフィルター処理
グループベースのフィルター処理は、カスタム インストールを使用して Azure AD Connect を初めてインストールするときに構成できます。 このフィルター処理は、同期が必要なオブジェクトがごく少数であるパイロット デプロイで使用するためのものです。 グループベースのフィルター処理は、一度無効にすると再び有効にすることができません。 カスタム構成でのグループベースのフィルター処理は、サポートされていません。 この機能を構成できるのは、インストール ウィザードを使用する場合のみです。 パイロットが完了したら、このトピックで説明されているいずれかの他のフィルター処理オプションを使用する必要があります。 OU ベースのフィルター処理とグループ ベースのフィルター処理を組み合わせて使用する場合は、グループとそのメンバーが配置されている OU を追加する必要があります。
複数の AD フォレストを同期すると、各 AD コネクタに別のグループを指定することで、グループベースのフィルター処理を構成できます。 1 つの AD フォレストでユーザーを同期する場合、同じユーザーが他の AD フォレストで 1 つ以上の対応するオブジェクトを持つとき、ユーザー オブジェクトとそれに対応するすべてのオブジェクトがグループ ベースのフィルター処理のスコープ内にあることを確認してください。 次に例を示します。
あるフォレストにユーザーがいます。このフォレストには、他のフォレストの対応する FSP (外部セキュリティ プリンシパル) オブジェクトがあります。 両方のオブジェクトが、グループ ベースのフィルター処理のスコープ内にある必要があります。 そうしないと、ユーザーは Azure AD と同期されません。
あるフォレストにユーザーがいます。このフォレストには、他のフォレストの対応するリソース アカウント (リンクされたメールボックスなど) があります。 また、そのユーザーとリソース アカウントがリンクされるように Azure AD Connect を構成しました。 両方のオブジェクトが、グループ ベースのフィルター処理のスコープ内にある必要があります。 そうしないと、ユーザーは Azure AD と同期されません。
あるフォレストにユーザーがいます。このフォレストには、他のフォレストの対応するメール連絡先があります。 また、そのユーザーとメール連絡先がリンクされるように Azure AD Connect を構成しました。 両方のオブジェクトが、グループ ベースのフィルター処理のスコープ内にある必要があります。 そうしないと、ユーザーは Azure AD と同期されません。
次のステップ
- Azure AD Connect Sync の詳細を確認してください。
- オンプレミス ID と Azure AD の統合の詳細を確認してください。