Azure AD ConnectでオンプレミスADと既存クラウドアカウントを完全マージする方法

オンプレミスのActive Directory(AD)とAzure AD(Entra)を連携させるハイブリッド構成では、既存のクラウドユーザーと重複エラーが起こることがあります。本記事では、そうしたトラブルの原因や解決策、具体的な操作方法までを詳しく解説します。

目次

背景と問題の概要

オンプレミスのActive Directory(AD)とAzure AD(Entra)を連携させる場合、通常はAzure AD Connectを用いてアカウント情報を同期し、シングルサインオン(SSO)やパスワードハッシュ同期などを行います。しかし、既にMicrosoft 365(Office 365)などを利用しており、クラウド上にアカウントが存在する状態でオンプレミスADを同期すると、「重複するアカウントがある」「属性が競合している」というエラーが発生してスムーズにアカウント統合できないケースがよく見られます。
例えば、オンプレミスADユーザーとクラウド上のユーザーが同じメールアドレス(ProxyAddresses)を持つにもかかわらず、Azure AD Connectの同期では別のユーザーと認識されてしまい、マージ(統合)されないことがあります。さらに、SoftMatch(UPNやSMTPアドレスによる自動マッチング)を有効にしても、既にクラウドに存在していた重複エラーのユーザーが正しく同期されずに取り残される場合も少なくありません。

オンプレミスADとクラウド側のアカウントが重複する主な原因

重複エラーが起こる背景には複数の要因があります。ここでは代表的な原因を整理して解説します。

原因1: ProxyAddresses属性の競合

  • オンプレミスADユーザーのProxyAddresses(メールアドレス)と、クラウド上の既存ユーザーが持つSMTPアドレスが同一になっている
  • 大文字と小文字の違いのみで実質同一のアドレスが競合している
  • 別のユーザーに同じSMTPアドレスが設定されている

同じメールアドレスが複数のユーザーに割り当てられている場合、同期時に重複エラー(duplicate attribute error)が発生し、Azure AD Connectが同期処理を中断または失敗することがあります。

原因2: SoftMatchのマッチング失敗

SoftMatchは、Azure AD ConnectがUPN(ユーザープリンシパル名)やSMTPアドレスなどの属性を照合して「同一ユーザーである」と自動判定する仕組みです。しかし、以下のような状況で正しくマッチングが行われないケースがあります。

  • クラウド側のユーザーUPNがオンプレミス側のユーザーUPNと完全に一致していない
  • 既に競合が起きたユーザーに対しては、SoftMatchを有効にしても再試行されない
  • ProxyAddressesやsignInNamesなどの重要属性に重複があり、同期がブロックされている

解決策のステップ

重複エラーを解消して、オンプレミスADユーザーをクラウド上の既存アカウントと統合するためには、以下のステップを踏むことが一般的です。

1. SoftMatchの有効化

まずは、SoftMatchが機能する状態を確認します。以下のPowerShellコマンドで、UPNやSMTPアドレスによるSoftMatchを有効化できます。

Set-MsolDirSyncFeature -Feature EnableSoftMatchOnUpn -Enable $true

この設定を有効にしておくことで、新規に同期を行うユーザー同士であれば、Azure AD ConnectがUPNやSMTPアドレスを照合して自動的にマージしてくれます。ただし、既に重複エラーを起こしているユーザーに対しては、このSoftMatchのみでは解決しない場合があります。

2. ProxyAddressesの重複確認と修正

既存ユーザーとの重複を招いている場合、オンプレミスADとクラウド上のユーザーそれぞれのProxyAddresses(特にSMTPアドレス)を丁寧にチェックし、不要な値や誤った値を修正または削除します。以下に簡単な確認手順の例を示します。

PowerShellコマンド例(オンプレミスAD側)

# 例: 重複している可能性のあるメールアドレスで検索
Get-ADUser -Filter {ProxyAddresses -like "*smtp:重複アドレス*"} -Properties ProxyAddresses | 
Select-Object SamAccountName, ProxyAddresses

オンプレミスAD側で上記のコマンドを実行して、目的のメールアドレスが設定されているユーザーを確認し、意図しない重複がないか精査します。

PowerShellコマンド例(クラウド側/Azure AD側)

# Azure AD PowerShell (旧MSOnlineモジュール) を使用している例
Get-MsolUser -All | Where-Object {$_.ProxyAddresses -match "重複アドレス"} | 
Select-Object UserPrincipalName, ProxyAddresses

上記コマンドでクラウド上のユーザーについても同様に確認します。もし同一のメールアドレスが複数ユーザーに設定されていれば、いずれかを修正・削除するなどの対策が必要です。

ステータス対策例
同じアドレスが2人以上で利用どちらか正しい所有者のみに割り当て、片方は削除
大文字/小文字の揺れ一貫した形式(通常は小文字)で再設定
不要なエイリアス適切なメールアドレスのみ残し、不要なエイリアスは削除

3. ImmutableID(ハードマッチ)による強制マージ

SoftMatchが働かない、あるいは既に重複エラーとなっていてどうにもならないユーザーに対しては、「ImmutableID(不変のID)」を使ったハードマッチという手法があります。オンプレミスADユーザーのObjectGUIDをBase64変換した値をクラウド上のユーザーのImmutableID属性に直接設定し、強制的に「同一人物」として認識させる方法です。

Microsoft Graph PowerShellを使用した手順例

Microsoft Graph PowerShellは今後推奨されるモジュールの一つです。MSOnlineモジュールの代わりに、こちらでImmutableIDを設定する手順を例示します。

  1. オンプレミスユーザーのObjectGUIDを取得し、Base64変換する
   # オンプレミスADのユーザーを取得
   $OnPremUser = Get-ADUser -Identity "<sAMAccountName>" -Properties ObjectGUID

   # ObjectGUIDをBase64文字列に変換 (ImmutableIDとして利用)
   $immutableId = [System.Convert]::ToBase64String($OnPremUser.ObjectGUID.ToByteArray())
  1. Microsoft Graph PowerShellモジュールのインストールと接続
   Install-Module Microsoft.Graph -Scope CurrentUser
   Connect-MgGraph -Scopes "User.ReadWrite.All"
  1. Azure AD上の既存ユーザーにImmutableIDを設定
   Update-MgUser -UserId "<クラウドユーザーのUPNまたはオブジェクトID>" -OnPremisesImmutableId $immutableId

このコマンドで、クラウド側のユーザーにオンプレミスADのObjectGUID(Base64)を上書き設定します。これによりAzure AD Connectが「オンプレミスのユーザーとクラウドユーザーは同一」であると認識し、同期時にマージされます。

  1. Delta Sync(差分同期)の実行
    ImmutableIDを設定した後は、Azure AD Connect側でDelta Syncを走らせて同期状態を更新します。Azure AD Connectサーバーで以下のコマンドを実行するなどして差分同期を行います。
   Start-ADSyncSyncCycle -PolicyType Delta

同期が完了すると、当該ユーザーがオンプレミスADとクラウドで同一ユーザーとして統合されているかを確認できます。

もしAzure ADユーザーに別のImmutableIDが既に設定されている場合は、以下のように一度$nullを指定してクリアしてから再度設定すると解決するケースがあります。

Update-MgUser -UserId "<クラウドユーザーのUPN>" -OnPremisesImmutableId $null
Update-MgUser -UserId "<クラウドユーザーのUPN>" -OnPremisesImmutableId $immutableId

トラブルシューティングと注意点

ハードマッチを実施しても統合が進まない場合や、別のエラーが表示される場合のチェックポイントをいくつか紹介します。

Delta Sync実行時のエラーログ確認

Azure AD ConnectのSynchronisation Service ManagerやEvent Viewer(イベントビューア)を確認し、同期の詳細ログやエラーが出ていないかを確認します。特にProxyAddressesの重複や、すでに別のアカウントと紐づいていることが原因でエラーが続いている場合は、ログに具体的なエラーメッセージが表示されることが多いです。

SoftMatchが効かない場合の確認ポイント

  • クラウドユーザーのUPNやメールアドレス: オンプレミス側と完全に一致しているか
  • サインイン可能な状態: 既に削除済み(Soft Delete)のユーザーではないか
  • ProxyAddresses設定が正しいか: メインのSMTPアドレス(大文字・小文字含め)が揃っているか

これらの点を見落としていると、SoftMatchがうまく効かずにエラーが残り続ける可能性があります。

まとめ

オンプレミスADとAzure ADをハイブリッド構成で統合する際に起こる重複エラーは、メールアドレス(ProxyAddresses)競合やSoftMatchの失敗が主な原因です。まずはProxyAddressesの整理やSoftMatchの有効化を行い、それでも解決しない場合はImmutableID(ハードマッチ)によって強制的に統合する方法が効果的です。

特に、既存のクラウドユーザーとオンプレミスADユーザーが同じメールアドレスを持っているにもかかわらず同期できないケースでは、ImmutableIDをセットすることで正しくマージを実行できます。さらに、同期後にはAzure AD Connectの管理コンソールやMicrosoft 365管理ポータルでユーザー属性が統一されているかを入念にチェックしましょう。これらの対応を行うことで、重複エラーを回避し、スムーズなハイブリッド運用を実現できるはずです。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次