Microsoft Azure Active Directory Connect のステージングの際に同期プロセスの扱いでハマったのでメモ。AADC 構成ウィザードで構成の準備完了画面時の「構成が完了したら、同期プロセスを開始する。」の設定について確認した内容を残しておきたいと思います。
Azure AD Connect のステージングモード
Azure AD Connect サーバーのステージングモードとは、Azure やオンプレミスドメインに対して同期情報の連携を停止する設定になります。
※ステージングモードを有効にすることで Azure AD Connect サーバーで動いている “Export” プロセスが停止します。詳細は後述
Azure AD Connect サーバーは、1ドメインに対して常時稼働は1台のみとなりますので、冗長化構成などで Azure AD Connect が複数台存在する環境の場合、稼働している Azure AD Connect 以外のその他の Azure AD Connect サーバーは競合を起こさないようステージングモードにしておく必要があります。
ステージングモード時の同期プロセスの動作
私の環境では当初ステージングモードの設定時に待機系サーバーは同期プロセスもオフにしてしまっていたのですが、別の Azure AD Connect 稼働時に同期された情報を別の Azure AD Connect で把握することができないようで、切り替えた後の Azure 側の情報が更新されませんでした。
具体的には以下の設定箇所になります。
流れを説明すると、
- Azure AD Connect #1 にて Azure 同期を行っている状態で、ドメインコントローラーにて “ユーザー1” の作成を行う
- Azure テナント上のアクティブなユーザーにて、“ユーザー1” が同期される
- Azure AD Connect #1 の「ステージング設定」の有効化と「同期プロセス」をオフ
- Azure AD Connect #2 の「ステージング設定」の無効化と「同期プロセス」をオン
- Azure AD Connect #2 にて Azure 同期を行っている状態でドメインコントローラーより “ユーザー1” の削除
- Azure テナント上のアクティブなユーザーにて、“ユーザー1” の同期が行われず、削除されない
というような動作となりました。
Azure AD Connect で同期を行う場合、”Import“、”syncronization“、”Export” の流れで、取り込み→同期→出力 を行いますが、ステージング設定を有効にすることで “Export” の動作を停止させることができます。
※「Syncronization Service Manager」の「Operations」にて、確認可能
上記に加え同期プロセスをオフにしたことで “Import” “Syncronization” の動作も停止して “no-start-ma” のステータスに変わっていました。同期プロセスのオフにより “Import” と “Syncronization” が行われないので別の Azure AD Connect の稼働中の Active Directory の変更については反映されないようです。
そのため、冗長化構成にて Azure AD Connect を構成する場合は、待機系のサーバーであってもステージング設定と合わせて同期プロセスは有効にしておく必要があります。
同期プロセスとステージングモードの有効化方法
同期プロセスの設定は、構成ウィザードを開始しなくても ADSync モジュールを追加した Windows PowerShell にて有効化可能な設定になります。
- SyncCycleEnabled;構成が完了したら、同期プロセスを開始する。
-
StagingModeEnabled;ステージング モードを有効にする:選択すると、同期では AD と Azure AD のどちらに対してもデータをエクスポートしません。
まずは “Get-ADSyncScheduler” を実行して上記のパラメーターを確認します。
コマンド例
Get-ADSyncScheduler
コマンド実行例
PS C:\Users\Administrator> Get-ADSyncScheduler AllowedSyncCycleInterval : 00:30:00 CurrentlyEffectiveSyncCycleInterval : 00:30:00 CustomizedSyncCycleInterval : NextSyncCyclePolicyType : Delta NextSyncCycleStartTimeInUTC : YYYY/MM/DD hh:mm:dd PurgeRunHistoryInterval : 7.00:00:00 SyncCycleEnabled : False MaintenanceEnabled : True StagingModeEnabled : False SchedulerSuspended : False SyncCycleInProgress : True PS C:\Users\Administrator>
上述したパラメーターが False(無効)となっていることを確認します。
同期プロセスの有効化方法
こちらで同期プロセスの設定を有効化することができます。
コマンド例
Set-ADSyncScheduler -SyncCycleEnabled $True
コマンド実行例
PS C:\Users\Administrator> Set-ADSyncScheduler -SyncCycleEnabled $True PS C:\Users\Administrator>
実行後は再度 “Get-ADSyncScheduler” を実行して “SyncCycleEnabled” の値が “True“ であることを確認しましょう。
ステージングモードの有効化方法
こちらでステージングモードの設定を有効化することができます。
コマンド例
Set-ADSyncScheduler -StagingModeEnabled $True
コマンド実行例
PS C:\Users\Administrator> Set-ADSyncScheduler -StagingModeEnabled $True
PS C:\Users\Administrator>
実行後は再度 “Get-ADSyncScheduler” を実行して “StagingModeEnabled の値が “True“ であることを確認しましょう。
現在のバージョンでは、「StagingModeEnabled」コマンドレットの利用ができなくなっているようですので、Azure Active Directory Connect のツールより GUI 操作にてステージングモード切り替えが必要です。