SEくぼたの事件簿

インフラSEとしての活動を記録していきます

オンプレADとAzureADのソフトマッチを失敗した場合の対応方法

こんにちは!

最近社内でオンプレADとAzureADのソフトマッチについて聞かれるケースが増えてきました。

そんな時、以下の記事を紹介してたのですが、マッチに失敗したときどうするの??って聞かれる事がよくあります。

kbtblog.hatenablog.com

 

なので、今回は!!

オンプレADとAzureADのソフトマッチを失敗した場合の対応方法

について書いていきたいと思います。

 

  • ソフトマッチの失敗でのありがちなケース3つ
  1. AzureADの管理者権限を持つユーザーのソフトマッチ
  2. マッチングミスによりAzureADに新たなユーザーが作成される
  3. マッチングミスによりAzureADの別ユーザーとマッチされる

ありがちなのは上記3つかなって思います。

上記の1,2は比較的すぐに何とかなりますが、3をやってしまうと直すのがめっちゃ大変!!

3の検証には時間がかかるので今回は1,2の対応については手順を記載します。

3は方法の概要だけ説明します。

 

順番に詳細を記載していきます。

※ここではAzureADConnectを利用した同期について記載しています。

 構成はメールアドレス属性でのマッチ+パスワードハッシュ同期にて検証しています。

 

1.AzureADの管理者権限を持つユーザーのソフトマッチ

図で言うとこんな状態になっているパターンです。

f:id:KKubo19:20210513194116p:plain

このケース何がありがちかというと、ソフトマッチのテストをする時って情報システム部のユーザーで先に同期したい!って言われる事が多いんですが、情報システム部のユーザーは管理者権限持ってることが結構あります。

※管理ユーザーと利用ユーザーを分けた方がよいとかは別の話なので一旦おいときます。

そのため、テスト同期するときにこの問題に直面して

あれ・・・同期できないぞ。。。ってなることがあります。

実際起きてしまっても、

1.管理者権限を外す

2.ID同期

3.管理者権限再付与

ってやればいいだけなので、結構簡単です!

※管理者権限を持つ別ユーザーでログインできる状態にしてからやらないと大変なことになります。

図で示すとこんな感じ

f:id:KKubo19:20210513194703p:plain

f:id:KKubo19:20210513194721p:plain

f:id:KKubo19:20210513194738p:plain

権限の変更はMicrosoft365管理ポータル内のユーザー設定から可能です。

f:id:KKubo19:20210513195128p:plain

また管理者権限を持ったまま同期するとどんなエラーが表示されてどこで確認できるかを記載しておきます。

エラーに限らず同期の詳細を確認するためには

AzureADConnectをインストールした際に一緒に導入される「Synchronization Service」を確認します。

f:id:KKubo19:20210513195820p:plain

表示された下記画面にてname列がxxx.localでProfileNameがDelta Importという表記になっている赤枠の箇所をクリックすると下の詳細画面が表示されます。

※xxx.localはオンプレADのドメイン名です。

図の下側の赤枠のAddsが1になっていることがわかります。

これは1ユーザー追加で同期したってことを示しています。

情報修正や名前変更、ユーザー削除もここに表示されます。

※本検証では1ユーザーでしかやっていないので1って表示されます。

f:id:KKubo19:20210513200650p:plain

Addsをクリックすると下図が表示されます。

ここから同期しようとしたユーザーがtesuuserってことがわかります。

testuserっていうユーザー作成したつもりが間違えてた・・・笑

f:id:KKubo19:20210513201131p:plain

次に実際に同期できたかどうかを確認します。

今度は対象のユーザーがAzureADに同期できたか確認するため

Nameはxxx.onmicrosoft,ProfileNameはExportの箇所を確認します。

f:id:KKubo19:20210513201522p:plain

すると右下のExport Errorsに情報があることがわかります。

これをクリックするとエラーが発生したユーザーの詳細が確認できます。

f:id:KKubo19:20210513201837p:plain

Export Errorタブを押すとエラー詳細がでます。

私のPCの解像度の問題で文字がつぶれてしまっていますが。。。。

f:id:KKubo19:20210513201941p:plain

このようにAzureADにて管理者権限を持つユーザーをソフトマッチしようとすると「Attribute Value Must Be Unique」というエラーが発生します。

 

2.マッチングミスによりAzureADに新たなユーザーが作成される

このケースはソフトマッチの特性上、オンプレADとAzureADの情報をイコールにしてから同期っていう手順を踏むため、ユーザーによる作業ミス等があると起きます。

下図のイメージです。

f:id:KKubo19:20210513202351p:plain

オンプレADの情報をAzureADに合わせる形で情報修正した際に、AzureAD上の同期したいユーザーIDと違った標記をしてしまったパターンです。

ここではドメイン名を打ち間違えた想定で記載しています。

同期する際に、オンプレADのユーザーAは誤ってメールアドレスをUserA@testtt.co.jpと入力して同期してしまうと、AzureAD側ではそんなドメインを知らないため、初期ドメイン「xxx.onmicrosoft.com」のユーザーとして作成します。

そのため、UserA@test.onmicrosoft.comというユーザーが作成されてしまうのです。

  • 対応方法

この対応方法はAzureADConenctにて特定のOUのみを同期対象としていることが前提です。

ドメイン全体を同期している場合、別の方法の検討が必要です。

  1. オンプレADにて対象IDを同期対象外OUへ移動する
  2. Azure ADユーザーが削除済みユーザーへ移動される(同期の機能にて自動)
  3. Azure AD上にて削除済みユーザーの削除
  4. オンプレADユーザーの情報を修正し同期対象OUへ移動する(再同期)

この手順にて誤って作成されたUserA@test.onmicrosoft.comを一度削除してから再同期します。

下図のイメージです。

f:id:KKubo19:20210513203023p:plain

f:id:KKubo19:20210513203042p:plain

ここではtestshare@xxx.mlというユーザーを同期しようとしたのに、testshare@xxx.onmicrosoft.comというユーザーが作成されてしまったという例で画面ショットをとっています。

下図の通り、誤った同期が確認できます。

f:id:KKubo19:20210513203651p:plain

※同期の状態の箇所が四角のマークになっているものがオンプレADから同期されたユーザーという意味です。

ちなみにオンプレAD側のユーザーはこんな感じ

f:id:KKubo19:20210513203855p:plain

これを修正するために一度同期対象外のOUへユーザーをドラッグアンドドロップで移動

f:id:KKubo19:20210513204152p:plain

はいをクリック

※下記注意の通り、特定のOUのみにGPOを適用していると適用対象外になることもあるので注意ください。

f:id:KKubo19:20210513204256p:plain

デフォルトだと30分に一度の同期となるため、PowerShellにて以下のコマンドレットを実行し同期を即時実行

f:id:KKubo19:20210513204441p:plain

SuccessがでたらOK

f:id:KKubo19:20210513204504p:plain

同期に多少時間かかるので少し待ちます。

※変更量が多いとそれに応じて時間かかります。

ちゃんと同期状況追いかけたい方は上記に記載した「Synchronization Service」から確認してください。

管理センターにて削除済みのユーザーに格納されたことが確認できます。

ここに格納されると30日間は削除済みの状態で保持されます。

最近削除されたユーザーの復元または完全な削除 - Azure AD | Microsoft Docs

ただ、今回はすぐに削除したいのですが、Microsoft365管理センターからは削除できません。

そのため、AzureAD管理センターにうつります。

画面左したのAzureADをクリック

f:id:KKubo19:20210513205119p:plain

ユーザーをクリック

f:id:KKubo19:20210513205230p:plain

削除されたユーザーをクリック

f:id:KKubo19:20210513205358p:plain

対象のユーザーにチェックを入れ、完全に削除をクリックし、はいをクリック

f:id:KKubo19:20210513205525p:plain

オンプレADの対象ユーザーの情報を正しいものに修正

f:id:KKubo19:20210513205645p:plain

同期対象のOUへユーザーを移動

f:id:KKubo19:20210513205850p:plain

再度同期コマンドを実行

f:id:KKubo19:20210513205931p:plain

Microsoft365管理センターで再度確認すると

f:id:KKubo19:20210513210126p:plain

今度は正しく同期できていることが確認できました。

よかったよかった

 

3.マッチングミスによりAzureADの別ユーザーとマッチされる

これが最も修正が大変なケースです。

修正にもかなりの時間がかかるので今回の検証からは外しますが、

Microsoftの案内によると最大72時間かかる処理を実行することになります。

※実績的には1500ユーザーくらいで17時間で終わったこともありますが、、、、

72時間を覚悟する必要があります。

下図のパターンです。

f:id:KKubo19:20210513210519p:plain

このパターンの場合、AzureAD側のUserBを削除することが難しいので、上記にて記載したの方法では対応できなくなります。

そのため、ID同期を切る必要があるのですが、ユーザー単位で同期停止ができません。

そのため、AzureADとオンプレADの同期を完全に停止する必要があります。

f:id:KKubo19:20210513210734p:plain

この行為自体にリスクが伴うので可能な限り避けたい方法です。

同期が停止した後、オンプレADの情報を正しく修正して同期を再度有効化します。

f:id:KKubo19:20210513210853p:plain

具体的な手順については下記のURLを参考にしてください。

Microsoft 365 のディレクトリ同期をオフにする - Microsoft 365 Enterprise | Microsoft Docs

無効化の処理が終わっているかどうかは以下のコマンドレットで確認

(Get-MSOLCompanyInformation).DirectorySynchronizationEnabled

Falseが返ってきたら無効化されています。

オンプレADでの情報修正後、Set-MsolDirSyncEnabled -EnableDirSync $true

で再度有効化!です。

 

  • まとめ

過去に私がソフトマッチでやらかした記事を書いた通り、ソフトマッチって実際結構大変です。

ユーザーが増えれば増えるほどきついですね。。。

起きてしまったら今回記載したような内容で対応はできますが、、、、

お願いだからMicrosfot365使用開始時にはオンプレADとID同期しといて!!!って言いたい!笑

 

  • 最後に!

Twitterでも情報発信したいと思いますので、興味があったらフォローしてください!