ID 同期と重複属性の回復性
重複属性の回復性は、Microsoft のいずれかの同期ツールを実行しているときに UserPrincipalName と SMTP ProxyAddress の競合によって引き起こされる不整合を避けるために Microsoft Entra ID に備えられている機能です。
この 2 つの属性は、通常、特定の Microsoft Entra テナント内のすべての User、Group、および Contact オブジェクトにわたって一意である必要があります。
Note
UPN を持てるのは、User のみです。
この機能によって有効になる新しい動作は、同期パイプラインのクラウド部分内にあります。そのため、クライアントに依存せず、Microsoft Entra Connect、DirSync、MIM + Connector などの任意の Microsoft 同期製品に対応できます。 このドキュメントでは、これらの製品のいずれかを表すために、一般的な用語 "同期クライアント" を使用します。
現在の動作
この一意性制約に違反する UPN または ProxyAddress 値で新しいオブジェクトをプロビジョニングしようとすると、Microsoft Entra ID はそのオブジェクトの作成をブロックします。 同様に、一意でない UPN または ProxyAddress でオブジェクトが更新されると、更新は失敗します。 プロビジョニングの試行または更新は、エクスポート サイクルごとに同期クライアントによって再試行され、競合が解決されるまでは失敗し続けます。 試行のたびにエラー レポートの電子メールが生成され、エラーが同期クライアントによって記録されます。
重複属性の回復性による動作
属性が重複するオブジェクトのプロビジョニングまたは更新を完全に失敗させる代わりに、Microsoft Entra ID は一意性の制約に違反する重複属性を "検疫" します。 この属性が、UserPrincipalName のように、プロビジョニングに必要な場合、サービスはプレースホルダー値を割り当てます。 これらの一時的な値の形式は、
<OriginalPrefix>+<4DigitNumber>@<InitialTenantDomain>.onmicrosoft.com.
属性の回復性プロセスでは、UPN と SMTP ProxyAddress の値のみが処理されます。
ProxyAddress のように、この属性が必須でない場合、Microsoft Entra ID は競合属性を検疫し、オブジェクトの作成または更新を続行します。
属性の検疫時に、競合に関する情報は、従来の動作で使用されるのと同じエラー レポート電子メールで送信されます。 ただし、この情報は、検疫が発生した際にエラー レポートに 1 回表示されるだけで、その後の電子メールではログに記録されません。 また、このオブジェクトのエクスポートは成功しているため、同期クライアントはエラーをログに記録せず、後続の同期サイクルで作成/更新操作を再試行しません。
この動作をサポートするために、次の新しい属性が User、Group、および Contact オブジェクト クラスに追加されました:
DirSyncProvisioningErrors
これは複数値の属性であり、普通に追加されたら一意性の制約に違反する、競合している属性を格納します。 Microsoft Entra ID で、解決された重複属性の競合を検出し、該当する属性を検疫から自動的に削除するための、1 時間ごとに実行されるバックグラウンド タイマー タスクが有効になりました。
重複属性の回復性の有効化
重複属性の回復性は、すべての Microsoft Entra テナント全体で新しい既定の動作になります。 2016 年 8 月 22 日以降は、最初に同期を有効にしたすべてのテナントについて既定で有効になります。 この日付より前に同期を有効にしたテナントでは、この機能がバッチ処理で有効になります。 この展開は 2016年 9 月に開始し、この機能が有効になると、電子メール通知が特定の日付に各テナントの技術的通知の連絡先に送信されます。
注意
重複属性の回復性をオンにすると、無効にできません。
この機能がテナントで有効になっているかどうかを確認するには、Azure Active Directory PowerShell モジュールの最新バージョンをダウンロードして、次のように実行することによって、有効にすることができます。
Get-MsolDirSyncFeatures -Feature DuplicateUPNResiliency
Get-MsolDirSyncFeatures -Feature DuplicateProxyAddressResiliency
注意
テナントで重複属性の回復機能が有効になる前に、Set-MsolDirSyncFeature コマンドレットを使用してその機能を事前に有効にしておくことはできなくなりました。 この機能をテストするには、新しい Microsoft Entra テナントを作成する必要があります。
Note
Azure AD および MSOnline PowerShell モジュールは、2024 年 3 月 30 日の時点で非推奨となります。 詳細については、非推奨の最新情報を参照してください。 この日以降、これらのモジュールのサポートは、Microsoft Graph PowerShell SDK への移行支援とセキュリティ修正プログラムに限定されます。 非推奨になるモジュールは、2025 年 3 月 30 日まで引き続き機能します。
Microsoft Entra ID (旧称 Azure AD) を使用するには、Microsoft Graph PowerShell に移行することをお勧めします。 移行に関する一般的な質問については、「移行に関する FAQ」を参照してください。 注: MSOnline のバージョン 1.0.x では、2024 年 6 月 30 日以降に中断が発生する可能性があります。
DirSyncProvisioningErrors を持つオブジェクトの特定
重複するプロパティの競合によってこれらのエラーが発生したオブジェクトを特定するための方法は、現在、2 つあります。それは、Azure Active Directory PowerShell と Microsoft 365 管理センター です。 今後のレポートに基づいてポータルを追加する拡張が予定されています。
Azure Active Directory PowerShell
このトピックの PowerShell コマンドレットには、以下のような特徴があります。
- 以下のすべてのコマンドレットが、大文字と小文字を区別します。
- –ErrorCategory PropertyConflict を常に含める必要があります。 現在、 ErrorCategoryには他の型はありませんが、今後拡張される可能性があります。
まず、 Connect-MsolService を実行し、テナント管理者の資格情報を入力します。
次に、以下のコマンドレットと演算子を使用して、エラーをさまざまな方法で表示します。
すべて表示
接続されたら、テナント内の属性プロビジョニング エラーの全般的な一覧を表示するために、次のように実行します。
Get-MsolDirSyncProvisioningError -ErrorCategory PropertyConflict
これにより、次のような結果が生成されます。
プロパティの型ごと
プロパティの型ごとにエラーを表示するには、UserPrincipalName 引数か ProxyAddresses 引数に、次のように -PropertyName フラグを追加します。
Get-MsolDirSyncProvisioningError -ErrorCategory PropertyConflict -PropertyName UserPrincipalName
または
Get-MsolDirSyncProvisioningError -ErrorCategory PropertyConflict -PropertyName ProxyAddresses
競合する値ごと
特定のプロパティに関連するエラーを表示するには、次のように -PropertyValue フラグを追加します (このフラグを追加する場合は、 -PropertyName も使用する必要があります)。
Get-MsolDirSyncProvisioningError -ErrorCategory PropertyConflict -PropertyValue User@domain.com -PropertyName UserPrincipalName
文字列検索を使用
広範な文字列検索を行うには、 -SearchString フラグを使用します。 このフラグは上記のすべてのフラグとは別に使用できますが、 -ErrorCategory PropertyConflict は例外です。このフラグとは常に一緒に使用する必要があります。
Get-MsolDirSyncProvisioningError -ErrorCategory PropertyConflict -SearchString User
制限した数、またはすべて
- MaxResults <Int> を使用して、クエリの値を特定の数までに制限できます。
- All は、多数のエラーが存在する場合に使用すると、すべての結果を確実に取得できます。
Get-MsolDirSyncProvisioningError -ErrorCategory PropertyConflict -MaxResults 5
Microsoft 365 管理センター
Microsoft 365 管理センターでは、ディレクトリ同期エラーを表示できます。 Microsoft 365 管理センターのレポートには、これらのエラーを持つ User オブジェクトだけが表示されます。 Group と Contact の間の競合に関する情報は表示されません。
Microsoft 365 管理センターでディレクトリ同期エラーを表示する方法については、「Microsoft 365 でディレクトリ同期エラーを確認する」を参照してください。
ID 同期のエラー レポート
重複属性の競合があるオブジェクトがこの新しい動作で処理されると、テナントの技術的通知の連絡先に送信される標準の ID 同期のエラー レポート メールに、通知が含められます。 ただし、この動作には重要な変更があります。 以前は、重複属性の競合に関する情報が、競合が解決されるまで、後続のすべてのエラー レポートに含められました。 この新しい動作では、特定の競合のエラー通知は、競合する属性が検疫されたときに 1 回だけ表示されます。
ProxyAddress の競合に関する電子メール通知の例を、次に示します。
競合の解決
これらのエラーのトラブルシューティングの方針と解決の方法は、以前の重複属性エラーの処理方法と変わりはありません。 唯一の違いは、タイマー タスクがサービス側のテナント全体をスイープして、競合が解決したら問題の属性を適切なオブジェクトに自動的に追加することです。
次の記事では、さまざまなトラブルシューティングと解決戦略の概要を示しています。Office 365 でのディレクトリ同期を妨げる重複または無効な属性に関する記事
既知の問題
これらの既知の問題が、データの損失やサービスの低下を引き起こすことはありません。 いくつかは見た目の問題で、その他には、競合属性が検疫されずに、一般的な "回復前" 重複属性エラーがスローされる原因となる問題や、手動での修正を必要とするエラーを引き起こす問題があります。
主要な動作:
特定の属性構成を持つオブジェクトは、検疫されている重複属性ではなく、エクスポート エラーを受信し続けます。
次に例を示します。a. AD で、UPN を Joe@contoso.com、ProxyAddress を smtp:Joe@contoso.com として新しいユーザーが作成されました
b. このオブジェクトのプロパティが、ProxyAddress が SMTP:Joe@contoso.com である既存の Group と競合します。
c. エクスポート時に、競合属性を検疫するのではなく、ProxyAddress 競合エラーがスローされます。 回復性機能が有効になる前と同様に、後続の同期サイクルごとに操作が再試行されます。
オンプレミスで 2 つの Group が同じ SMTP アドレスで作成された場合、一方は標準の重複 ProxyAddress エラーのために、最初の試行でプロビジョニングに失敗します。 ただし、重複している値は、次の同期サイクル時に適切に検疫されます。
Office ポータル レポート:
UPN 競合セットの 2 つのオブジェクトの詳細なエラー メッセージは、同一です。 つまり、両方で UPN が変更/検疫されたと示されますが、実際には一方だけでデータが変更されています。
UPN 競合の詳細なエラー メッセージは、UPN を変更/検疫したユーザーの正しくない displayName を表示します。 次に例を示します。
a. ユーザー A が最初に UPN = User@contoso.com で同期を実行します。
b. ユーザー B が次に UPN = User@contoso.com で同期を試行します。
c. ユーザー B の UPN が User1234@contoso.onmicrosoft.com に変更され、User@contoso.com が DirSyncProvisioningErrors に追加されます。
d. ユーザー B のエラー メッセージには、ユーザー A が既に User@contoso.com を UPN として持っていることを示す必要がありますが、実際にはユーザー B 自身の displayName が表示されます。
ID 同期のエラー レポート:
この問題を解決する方法の手順のリンクが正しくありません。
指している必要がありますhttps://aka.ms/duplicateattributeresiliency。