オンプレミスのADとEntraIDを同期している環境において
オンプレミスADが壊れた(使用できなくなった)場合の対処を検証したので
備忘録として残すことにしました。
オンプレミスADとEntraIDについても細かい説明は別の記事を参照するとして
実際にやったことを残しています
ざっくりした内容としては
旧ADとEntraIDで同期済
新ADを作成し、旧ADと同じ名前でドメイン名、ユーザ、オブジェクトを作成する
新ADとEntraIDでハードマッチを実施する
環境
①オンプレミスADとEntraIDで特定のOUのユーザ、グループを同期している環境
②オンプレミスADに何かしらの問題が発生しサーバにログインおよびデータの取り出しが不可となる
③EntraIDについては特に影響なく正常に使用できる状態
やりたいこと
EntraIDのユーザ、グループのオブジェクトは既に壊れたADと同期済だが継続して利用したい
新しくオンプレに作成した同じドメイン名のADに同じ名前のユーザ、グループを作成して
新AD上のオブジェクトとEntraIDのオブジェクトを同期したい
どうやってやるか
既に同期済なのでハードマッチと呼ばれる方法を使用して新ADのオブジェクトと紐づける
オンプレミスADとEntraIDで新しく作ったオブジェクトについてはソフトマッチと呼ばれる方法で紐づける(後述)
実際の手順
①オンプレミス環境にADを新規作成 ドメイン名は元々使用していたものと同じ名前にする
②新ADでユーザ、グループを新規作成(オブジェクトの名前は旧ADの時に作成していたものと同じ名前で作成する)
オンプレミスとEntraIDを同期する際にEnterprise Adminsの権限をもったドメインアカウントが必要なので作成する
③AzureAD Connect(AADC)をインストール AADCサーバを作成したが ADにインストールしても良い
AADCサーバをADと別に作成する場合はドメイン参加する
画像がないところはデフォルトを指定している
カスタマイズを選択
EntraIDの管理者ユーザとパスワードを入力
ディレクトリの追加
予め作成しておいたEnterprise Adminsの権限をもったドメインアカウントを指定する
なぜかわからないが新しいADアカウントを作成にチェックを入れる
ユーザープリンシパル名は環境に合わせて設定 UPNとかMailとか?
同期対象のOUを指定する場合はここで設定する
ユーザー識別方法は mS-DS-ConsistencyGuidを指定する
インストールの最後の画面で構成が完了したら、同期プロセスを開始するのチェックを外しておく
チェックをいれたままで進めるとインストール直後に自動で同期が開始されるため
④EntraIDからimmutableIdを取得する
ユーザオブジェクトについてはGUIからimmutableIdが参照できるがグループは参照できないので別の方法を使用する
AADCをインストールした端末にはSynchronization Serviceのツールがインストールされているのでこれを使用する
ツールを起動してConnectorsを選択するとオンプレミスのADとEntraIDが表示される
オンプレミスADおよびEntraIDをそれぞれ指定して右クリックからRunを実行
Full Importを指定してOKを実行するとオンプレミスの情報がツールにインポートされて情報を参照することができる
ここで見たいのはEntraIDのImmutableIDなのでインポートするのはEntraID側だけでもよい
インポートが完了するとOparationsに表示される
ConnectorsからEntraIDを指定して右クリックからSearch Connector Space..を実行する
Column Settings..を実行する
必要な項目をSelected Columnsに入れていく
sourceAnchorはimmutableIDなので必須であり他にはユーザー名やグループ名を判別するための要素を追加する
cloudAnchorが個人的にはよさそう
Serchを実行する
指定した項目の情報が表示される
sourceAnchorにはImmutableIDが表示されるcloudAnchorにはEntraIDのオブジェクトIDが表示される
これで各オブジェクトのImmutableIDの取得ができる
エクスポートの方法がよくわからなかったのでコピーペーストでExcelに・・
⑤取得したimmutableIdをオンプレミスのADのms-ds-consistencyguidに設定する
そのままの値では設定できないため16進数に変換して設定する
大量にあると思うのでExcel等を使ってコマンドを作成する
Powershellでのコマンド例
16進数に変換
$guid001=[GUID][system.convert]::frombase64string("ここにImmutableIDを入れる")
オンプレミスのユーザオブジェクトに設定 グループの場合はset-adgroup
set-aduser -Identity "ユーザ名" -replace @{'mS-DS-ConsistencyGuid' = $guid001}
⑥同期する
同期後はオンプレミスのデータが正となりEntraIDに反映されるため
必要な情報はあらかじめオンプレミスADのオブジェクトに設定しておくこと
グループのメンバーについても同じEntraID側だけ更新している場合はオンプレミスの情報で上書きされる
AADCの自動同期は止めているので手動で同期を実施する
AADCサーバでPowershellを開きコマンドを実行
Start-AdSyncSyncCycle Initial
⑦自動化する
AADCの自動同期を有効にする
Set-ADSyncScheduler -SyncCycleEnabled $true
付録
ソフトマッチ
詳細はいつか・・・