身分同步和重複屬性彈性處理
在 Microsoft Entra ID 中,「重複屬性容錯」是一個功能,可消除當使用 Microsoft 的同步工具時,由 UserPrincipalName 和 SMTP ProxyAddress 衝突引起的摩擦。
這兩個屬性在特定的 Microsoft Entra 租戶中,所有 User、Group或 Contact 物件中必須是唯一的。
注意
只有使用者可以擁有 UPN。
這項功能啟用的新行為位於同步管線的雲端部分,因此與任何 Microsoft 同步處理產品相關,包括 Microsoft Entra Connect、DirSync 和 MIM + Connector,且不受特定用戶端限制。 在本文件中,通用詞彙「同步用戶端」將用來代表上述任何一項產品。
目前的行為
如果嘗試佈建的新物件具有違反此唯一性限制式的 UPN 或 ProxyAddress 值,則 Microsoft Entra ID 會防止建立該物件。 同樣地,如果以非唯一的 UPN 或 ProxyAddress 更新物件,則更新會失敗。 同步處理用戶端會在每次匯出週期時重試布建嘗試或更新,並持續失敗,直到衝突解決為止。 每次嘗試時都會產生錯誤報告電子郵件,並由同步用戶端記錄一個錯誤。
重複屬性彈性行為
Microsoft Entra ID 並不是完全無法佈建或更新具有重複屬性的物件,而是會「隔離」違反唯一性限制式的重複屬性。 如果佈建時需要此屬性 (例如 UserPrincipalName),則服務會指派預留位置值。 這些暫存值的格式為
<OriginalPrefix>+<4DigitNumber>@<InitialTenantDomain>.onmicrosoft.com。
屬性復原程序只會處理 UPN 和 SMTP ProxyAddress 值。
如果不需要屬性,例如 ProxyAddress,Microsoft Entra ID 只會隔離衝突屬性,並繼續建立或更新物件。
隔離屬性時,衝突相關資訊將會透過使用於舊行為中的相同錯誤報告電子郵件傳送。 不過,這項資訊只會出現在錯誤報告中一次,當隔離發生時,它不會繼續記錄在未來的電子郵件中。 此外,由於此對象的匯出成功,同步處理用戶端不會記錄錯誤,也不會在後續的同步處理週期重試建立/更新作業。
為了支援此行為,新的屬性會新增至使用者、群組和 Contact 物件類別:
DirSyncProvisioningErrors
這是用來儲存那些如果正常新增會違反唯一性條件約束的衝突屬性的多重值屬性。 背景定時器工作已在 Microsoft Entra ID 中啟用,並每小時執行以尋找已解決的重複屬性衝突,然後自動將問題屬性從隔離中移除。
啟用重複屬性彈性功能
重複屬性恢復能力是所有Microsoft Entra租戶的新預設行為。 默認情況下,自 2016 年 8 月 22 日或之後首次啟用同步處理的所有租使用者都會自動開啟此功能。 在此日期之前啟用同步處理的租用戶會以批次方式啟用此功能。 此版本發布始於 2016 年 9 月,且會向每個租用戶的技術通知聯絡人發送帶有啟用功能日期的電子郵件通知。
注意
一旦開啟重複屬性恢復功能,就無法停用。
若要檢查是否已為您的租用戶啟用此功能,只要下載最新版的 Azure Active Directory PowerShell 模組並執行下列程式碼即可︰
Get-EntraDirSyncFeature -Feature DuplicateUPNResiliency
Get-EntraDirSyncFeature -Feature DuplicateProxyAddressResiliency
注意
您無法使用 Set-EntraDirSyncFeature
Cmdlet,在租用戶開啟重複屬性復原功能之前主動啟用此功能。 若要能夠測試此功能,您必須建立新的 Microsoft Entra 租戶。
識別具有 DirSyncProvisioningErrors 的物件
目前有兩種方法可識別因屬性衝突而發生這些錯誤的物件,Microsoft Entra PowerShell 和 Microsoft 365 系統管理中心。 未來計劃擴充其他以入口網站為基礎的報告。
Microsoft Entra PowerShell
在本主題中有關的 PowerShell 命令列指令集中,以下為真:
- 下列所有 Cmdlet 都會區分大小寫。
首先,執行 Connect-Entra,並輸入租戶管理員的認證。
接著,使用下列 Cmdlet 和運算子,以不同的方式檢視錯誤︰
查看全部
連線之後,若要查看租用戶執行中屬性佈建錯誤的一般清單︰
Get-MsolDirSyncProvisioningError
依產權類型
若要查看依屬性類型的錯誤,請指定 UserPrincipalName 或 ProxyAddresses:
Get-EntraDirectoryObjectOnPremisesProvisioningError | Where-Object PropertyCausingError -eq 'UserPrincipalName'
或
Get-EntraDirectoryObjectOnPremisesProvisioningError | Where-Object PropertyCausingError -eq 'ProxyAddresses'
衝突的價值
若要查看與特定屬性相關的錯誤,請新增該屬性的值:
Get-EntraDirectoryObjectOnPremisesProvisioningError | Where-Object PropertyCausingError -eq 'UserPrincipalName' | Where-Object Value -eq 'User@domain.com'
使用字串搜尋
若要執行廣泛的字串搜尋:
Get-EntraDirectoryObjectOnPremisesProvisioningError | Select-Object 'User@domain.com'
數量有限
使用下列命令,將查詢限制為特定的值數目。
Get-EntraDirectoryObjectOnPremisesProvisioningError | Select-Object -First 10
Microsoft 365 系統管理中心
您可以在 Microsoft 365 系統管理中心檢視目錄同步處理錯誤。 Microsoft 365 系統管理中心內的報表只會顯示有這些錯誤的使用者物件。 它不會顯示 群組 與 聯繫人之間衝突的相關信息。
如需如何在 Microsoft 365 系統管理中心檢視目錄同步處理錯誤的指示,請參閱在 Microsoft 365 中識別目錄同步處理錯誤。
身分識別同步處理錯誤報告
當具有重複屬性衝突的物件使用此新行為處理時,會將通知包含在傳送給租用戶技術通知聯繫人的標準身分識別同步處理錯誤報告電子郵件中。 不過,此行為有一項重大變更。 在過去,重複屬性衝突的相關資訊會包含在每個後續的錯誤報告中,直到解決衝突為止。 在這個新行為下,針對給定衝突的錯誤通知僅會在衝突屬性被隔離時出現一次。
ProxyAddress 衝突的電子郵件通知範例如下所示︰
解決衝突
這些錯誤的疑難解答策略和解決策略不應與過去處理重複屬性錯誤的方式不同。 唯一的差別在於計時器任務會掃描服務端上的租戶,衝突解決後,將自動把相關屬性新增至適當的物件。
下列文章概述各種疑難排解和解決策略︰ 重複或無效的屬性會防止在 Office 365 中進行目錄同步作業。
已知問題
沒有任何已知問題會導致資料遺失或服務降級。 其中有幾個是美觀的問題,其他問題會觸發標準的「前復原性」重複屬性錯誤,而不是將衝突屬性隔離,還有的問題會導致某些錯誤需要額外手動修復。
核心行為︰
具有特定屬性組態的物件會繼續收到匯出錯誤,而不是將重複屬性隔離。
例如:a. AD 會以 UPN 為 Joe@contoso.com、ProxyAddress 為 smtp:Joe@contoso.com 的方式建立新使用者
b. 此物件的屬性會與 ProxyAddress 為 SMTP:Joe@contoso.com 的現有「群組」發生衝突。
c. 匯出時,會顯示「ProxyAddress 衝突」 錯誤,而不會將衝突屬性隔離。 此作業會在每個後續的同步處理週期中重試,就如同在啟用恢復功能之前一樣。
如果在內部部署上建立兩個具有相同 SMTP 位址的群組,則會在第一次嘗試時佈建失敗並發生標準的重複 ProxyAddress 錯誤。 不過,重複值會在下一個同步處理週期時被適當隔離。
Office 入口網站報告:
UPN 衝突集中兩個物件的詳細錯誤訊息是相同的。 這表示他們的 UPN 都已變更/隔離,但事實上只有其中一個的資料被變更。
UPN 衝突的詳細錯誤訊息會顯示 UPN 已變更或被隔離的使用者錯誤顯示名稱。 例如:
a. User A 會先與 UPN = User@contoso.com 同步。
b. 接著,會嘗試將 User B 與 User@contoso.comUPN = 同步。
c. 使用者 B 的 UPN 會變更為 User1234@contoso.onmicrosoft.com,而 User@contoso.com 會新增至 DirSyncProvisioningErrors。
d. 使用者 B 的錯誤訊息應該指出使用者 A 已經有 User@contoso.com 做為 UPN,但顯示的卻是使用者 B 自己的 displayName。
身分識別同步處理錯誤報告:
「如何解決此問題的步驟」的連結不正確:
連結應該指向 https://aka.ms/duplicateattributeresiliency。