了解 Microsoft Entra 同步期间的错误

将标识数据从 Windows Server Active Directory 同步到 Microsoft Entra ID 时可能会发生错误。 本文概述不同类型的同步错误、导致这些错误的某些可能情况,以及这些错误的可能解决方法。 本文介绍常见错误类型,不一定涵盖所有可能的错误。

本文假设你熟悉 Microsoft Entra ID 和 Microsoft Entra Connect 的基础设计概念

重要

本文尝试解决最常见的同步错误。 但遗憾的是,无法在一个文档中涵盖所有方案。 有关深入故障排除步骤的详细信息,请参阅 Microsoft Entra Connect 对象和属性的端到端故障排除和 Microsoft Entra 故障排除文档中的用户预配和同步部分。

自 2016 年 9 月 1 起,默认针对所有新 Microsoft Entra 租户启用 Microsoft Entra ID 重复属性复原。 为现有租户自动启用此功能。

Microsoft Entra Connect 通过它所同步的目录执行 3 种类型的操作:导入、同步和导出。 所有三项操作中都可能发生错误。 本文重点介绍在导出到 Microsoft Entra ID 期间发生的错误。

导出到 Microsoft Entra ID 期间出错

以下部分介绍在使用 Microsoft Entra 连接器将操作导出到 Microsoft Entra ID 期间可能发生的不同类型的同步错误。 可以通过名称格式 contoso.partner.onmschina.cn 来标识此连接器。 导出到 Microsoft Entra ID 期间发生错误表示 Microsoft Entra Connect(同步引擎)尝试针对 Microsoft Entra ID 执行的添加、更新、删除等操作失败。

显示导出错误概述的示意图。

数据不匹配错误

此部分讨论数据不匹配错误。

InvalidHardMatch

说明

当试图使用具有相同 sourceAnchor 值的新传入对象来硬匹配 Microsoft Entra ID 中的对象时,同步期间发生了 InvalidHardMatch 错误,但租户上启用了 BlockCloudObjectTakeoverThroughHardMatchEnabled 功能。

发生 InvalidHardMatch 错误的示例情景

  • 在租户上重新启用了 DirSync 并再次同步具有相同 sourceAnchor 的对象,但是 BlockCloudObjectTakeoverThroughHardMatchEnabled 功能已启用并阻止执行硬匹配。
  • 用户被排除在同步范围外,并从 Microsoft Entra ID 回收站还原。 稍后,用户被重新添加到同步范围,并试图接管 Microsoft Entra ID 中已存在的基于相同 sourceAnchor 值的对象,但是 BlockCloudObjectTakeoverThroughHardMatchEnabled 功能已启用并阻止执行硬匹配。

案例

  1. Bob Smith 是 Microsoft Entra ID 中的一个用户,该用户已从 contoso.com 的本地 Active Directory 同步。
  2. 默认情况下,Microsoft Entra Connect 使用 Bob Smith 的 MsDs-ConsistencyGUID 属性(或 ObjectGUID,具体取决于配置)从本地 Active Directory 计算“abcdefghijklmnopqrstuv==”的 SourceAnchor 值。 此属性值是 Bob Smith 在 Microsoft Entra ID 中的 immutableId。
  3. 管理员从同步范围中移除 Bob Smith,然后 Microsoft Entra Connect 导出对象的删除。
  4. Bob Smith 的对象在 Microsoft Entra ID 中成为软删除对象,其 DirSyncEnabled 属性被切换为 False。 但此过程不会将对象转换为云托管对象,其仍被视为从本地 Active Directory 同步的对象。 DirSyncEnabled 值为 False,表示它当前已脱离同步范围,且可以再次匹配。
  5. 管理员将 Bob Smith 重新添加到同步范围,然后 Microsoft Entra Connect 重新同步对象。
  6. 通常,硬匹配会接管 Microsoft Entra ID 中基于相同 SourceAnchor 的对象,并将 DirSyncEnabled 属性切换回“True”,但是如果启用了 BlockCloudObjectTakeoverThroughHardMatchEnabled,则不允许执行此操作,并会引发 InvalidHardMatch。

修复 InvalidHardMatch 错误

我们建议客户启用 BlockCloudObjectTakeoverThroughHardMatchEnabled,除非需要它来接管 Microsoft Entra ID 中的现有帐户。

如果需要清除 InvalidHardtMatch 错误并成功匹配帐户,可以按照硬匹配与软匹配中的说明再次启用硬匹配。

InvalidSoftMatch

说明

  • 如果硬匹配未找到任何匹配对象且软匹配找到了匹配对象,但该对象的 immutableId 值与传入对象的 sourceAnchor 不同,则会发生 InvalidSoftMatch 错误。 这种不匹配表明匹配对象是从本地 Active Directory 的另一对象同步过来的。

为使软匹配正常工作,要进行软匹配的对象不应有任何 immutableId 属性值。 如果设置了 immutableId 属性值的对象不符合硬匹配条件但符合软匹配条件,相应操作将导致 InvalidSoftMatch 同步错误。

Microsoft Entra 架构不允许两个或更多个对象的以下属性使用相同值。 此列表并不详尽:

  • proxyAddresses
  • userPrincipalName
  • onPremisesSecurityIdentifier
  • objectId
  • immutableId

Microsoft Entra 属性重复属性复原] (how-to-connect-syncservice-duplicate-attribute-resiliency.md) 同时将作为 Microsoft Entra ID 的默认行为推出。 此功能减少了 Microsoft Entra Connect 和其他同步客户端看到的同步错误的数量。 这使 Microsoft Entra 可以更灵活地处理本地 Active Directory 环境中重复的 proxyAddresses 和 userPrincipalName 属性。

此功能无法修复重复错误,因此数据仍需修复。 但是,使用此功能可以预配新对象,否则,会由于 Microsoft Entra ID 中存在重复值而无法预配。 此外,此功能还减少了返回到同步客户端的同步错误。

注意

如果为租户启用了 Microsoft Entra 属性重复属性复原,则不会在预配新对象期间看到 InvalidSoftMatch 同步错误。

发生 InvalidSoftMatch 错误的示例情景

  • 本地 Active Directory 中有两个或更多个对象的 proxyAddresses 属性值相同。 在 Microsoft Entra ID 中只会预配其中一个对象。
  • 本地 Active Directory 中有两个或更多个对象的 userPrincipalName 属性值相同。 在 Microsoft Entra ID 中只会预配其中一个对象。
  • 在本地 Active Directory 中添加了一个对象,该对象的 proxyAddresses 属性值与 Microsoft Entra ID 中现有对象的该属性值相同。 在本地添加的对象将不会在 Microsoft Entra ID 中预配。
  • 在本地 Active Directory 中添加了一个对象,该对象的 userPrincipalName 属性值与 Microsoft Entra ID 中某个帐户的该属性值相同。 该对象未在 Microsoft Entra ID 中预配。
  • 已将某个已同步的帐户从林 A 移到了林 B。Microsoft Entra Connect(同步引擎)已使用 objectGUID 属性计算 sourceAnchor 属性。 移动林后,sourceAnchor 属性的值会不同。 林 B 中的新对象无法与 Microsoft Entra ID 中的现有对象同步。
  • 从本地 Active Directory 中意外删除了一个已同步的对象,同时,在 Active Directory 中为同一实体(如用户)创建了一个新对象,但未删除 Microsoft Entra ID 中的帐户。 新帐户无法与现有的 Microsoft Entra 对象同步。
  • 卸载后重新安装 Microsoft Entra Connect。 重新安装期间,将一个不同的属性选作 sourceAnchor 属性。 以前同步的所有对象都停止同步,并出现 InvalidSoftMatch 错误。

案例

  1. Bob Smith 是 Microsoft Entra ID 中的一个用户,该用户已从 contoso.com 的本地 Active Directory 同步。
  2. Bob Smith 的用户主体名称设置为 bobs@contoso.com。
  3. “abcdefghijklmnopqrstuv==”的 sourceAnchor 属性由 Microsoft Entra Connect 使用来自本地 Active Directory 的 Bob Smith 的 objectGUID 属性计算。 此属性是 Bob Smith 在 Microsoft Entra ID 中的 immutableId 属性。
  4. Bob 还拥有以下 proxyAddresses 属性值:
    • smtp: bobs@contoso.com
    • smtp: bob.smith@contoso.com
    • smtp: bob@contoso.com
  5. 已将新用户 Bob Taylor 添加到本地 Active Directory。
  6. Bob Taylor 的用户主体名称设置为 bobt@contoso.com。
  7. “abcdefghijkl0123456789==”的 sourceAnchor 属性由 Microsoft Entra Connect 使用来自本地 Active Directory 的 Bob Taylor 的 objectGUID 属性计算。
  8. Bob Taylor 还拥有以下 proxyAddresses 属性值:
    • smtp: bobt@contoso.com
    • smtp: bob.taylor@contoso.com
    • smtp: bob@contoso.com
  9. 在同步期间,Microsoft Entra Connect 识别到在本地 Active Directory 中添加了 Bob Taylor,并要求 Microsoft Entra ID 做出相同的更改。
  10. Microsoft Entra 首先执行硬匹配。 也就是说,它会搜索 immutableId 属性等于“abcdefghijkl0123456789==”的任何对象。 硬匹配失败,原因是 Microsoft Entra ID 中没有具有该 immutableId 属性的对象。
  11. 随后,Microsoft Entra ID 执行软匹配以查找 Bob Taylor。 也就是说,它会搜索以查看是否有任何对象的 proxyAddresses 属性等于三个值,包括 smtp: bob@contoso.com。
  12. Microsoft Entra ID 会根据软匹配条件查找 Bob Smith 的对象。 但是,此对象的值为 immutableId =“abcdefghijklmnopqrstuv==”,这表示此对象已与本地 Active Directory 中的另一个对象同步。 Microsoft Entra ID 无法软匹配这些对象,因此会引发 InvalidSoftMatch 同步错误。

修复 InvalidSoftMatch 错误

发生 InvalidSoftMatch 错误的最常见原因是两个对象的 sourceAnchor (immutableId) 属性不同,但 proxyAddresses 或 userPrincipalName 属性(在 Microsoft Entra ID 执行软匹配过程中会使用这些属性)的值相同。 修复 InvalidSoftMatch 错误:

  1. 识别导致错误的重复 proxyAddresses、userPrincipalName 或其他属性值。 另外,识别冲突中涉及到哪两个或更多个对象。
  2. 识别哪个对象应继续使用重复值,以及哪个对象不应继续使用重复值。
  3. 从不会继续使用该值的对象中删除重复值。 在对象的来源目录中进行更改。 在某些情况下,可能需要删除其中一个有冲突的对象。
  4. 如果在本地 Active Directory 中进行更改,请让 Microsoft Entra Connect 同步更改。

注意

根据定义,ImmutableId 属性不应在对象的生存期内更改。 但是,Microsoft Entra Connect 未按照前述列表中的一些场景进行配置。 在这种情况下,Microsoft Entra Connect 可能会为 Active Directory 对象计算 sourceAnchor 属性的不同值,而该对象表示具有要继续使用的现有 Microsoft Entra 对象的同一实体(同一用户、组或联系人)。

相关文章

重复或无效属性导致无法在 Microsoft 365 中进行目录同步

ObjectTypeMismatch

说明

当 Microsoft Entra ID 尝试对两个对象进行软匹配时,不同“对象类型”(如用户、组或联系人)的两个对象可能对用于执行软匹配的属性使用了相同值。 由于 Microsoft Entra ID 中不允许这些属性重复,相应操作可能会导致 ObjectTypeMismatch 同步错误。

发生 ObjectTypeMismatch 错误的示例情景

在 Microsoft 365 中创建了一个支持邮件的安全组。 管理员在本地 Active Directory 中添加了一个尚未同步到 Microsoft Entra ID 的新用户或联系人,并且该对象的 proxyAddresses 属性值与 Microsoft 365 组的该属性值相同。

案例

  1. 管理员在 Microsoft 365 中为税务部门创建了一个支持邮件的新安全组,并提供了电子邮件地址 tax@contoso.com。 此组分配的 proxyAddresses 属性值为 smtp: tax@contoso.com
  2. 有一个新用户加入了 Contoso.com,管理员在本地为该用户创建了 proxyAddresses 为 smtp: tax@contoso.com 的帐户。
  3. 当 Microsoft Entra Connect 同步新用户帐户时,会出现 ObjectTypeMismatch 错误。

修复 ObjectTypeMismatch 错误

发生 ObjectTypeMismatch 错误的最常见原因是两个对象的类型(如用户、组或联系人)不同,但 proxyAddresses 属性值相同。 解决 ObjectTypeMismatch 错误:

  1. 识别导致错误的重复 proxyAddresses(或其他属性)值。 另外,识别冲突中涉及到哪两个或更多个对象。
  2. 识别哪个对象应继续使用重复值,以及哪个对象不应继续使用重复值。
  3. 从不会继续使用该值的对象中删除重复值。 应该在对象的来源目录中进行更改。 在某些情况下,可能需要删除其中一个有冲突的对象。
  4. 如果在本地 AD 中进行更改,请让 Microsoft Entra Connect 同步该更改。

重复的属性

本部分讨论重复属性错误。

AttributeValueMustBeUnique

说明

Microsoft Entra 架构不允许两个或更多个对象的以下属性使用相同值。 Microsoft Entra ID 中的每个对象在给定的实例中都必须对这些属性使用唯一值:

  • mail
  • proxyAddresses
  • signInName
  • userPrincipalName

如果 Microsoft Entra Connect 尝试添加新对象或更新现有对象,但该对象的上述属性值已分配给 Microsoft Entra 中的另一个对象,则该操作会导致 AttributeValueMustBeUnique 同步错误。

可能的场景

向已同步的对象分配了重复值,导致与另一个已同步的对象冲突。

案例

  1. Bob Smith 是 Microsoft Entra ID 中的一个用户,该用户已从 contoso.com 的本地 Active Directory 同步。
  2. Bob Smith 在本地的用户主体名称设置为 bobs@contoso.com。
  3. Bob 还拥有以下 proxyAddresses 属性值:
    • smtp: bobs@contoso.com
    • smtp: bob.smith@contoso.com
    • smtp: bob@contoso.com
  4. 已将新用户 Bob Taylor 添加到本地 Active Directory。
  5. Bob Taylor 的用户主体名称设置为 bobt@contoso.com。
  6. Bob Taylor 还拥有以下 proxyAddresses 属性值:
    • smtp: bobt@contoso.com
    • smtp: bob.taylor@contoso.com
  7. Bob Taylor 的对象已成功与 Microsoft Entra ID 同步。
  8. 管理员决定使用以下值更新 Bob Taylor 的 ProxyAddresses 属性:
    • smtp: bob@contoso.com
  9. Microsoft Entra ID 尝试使用上述值在 Microsoft Entra 更新 Bob Taylor 的对象,但该操作失败,原因是 proxyAddresses 值已分配给 Bob Smith。 结果是出现 AttributeValueMustBeUnique 错误。

修复 AttributeValueMustBeUnique 错误

发生 AttributeValueMustBeUnique 错误的最常见原因是两个对象的 sourceAnchor (immutableId) 属性不同,但 proxyAddresses 或 userPrincipalName 属性相同。 修复 AttributeValueMustBeUnique 错误:

  1. 识别导致错误的重复 proxyAddresses、userPrincipalName 或其他属性值。 另外,识别冲突中涉及到哪两个或更多个对象。
  2. 识别哪个对象应继续使用重复值,以及哪个对象不应继续使用重复值。
  3. 从不会继续使用该值的对象中删除重复值。 在对象的来源目录中进行更改。 在某些情况下,可能需要删除其中一个有冲突的对象。
  4. 如果在本地 Active Directory 中进行更改,请让 Microsoft Entra Connect 同步更改,以便修复错误。

相关文章

重复或无效属性导致无法在 Microsoft 365 中进行目录同步

数据验证失败

本部分讨论数据验证失败。

IdentityDataValidationFailed

说明

在允许将数据写入目录之前,Microsoft Entra ID 会对数据本身强制实施各种限制。 这些限制是为了确保最终用户尽可能获得最佳体验,同时可以使用依赖于此数据的应用程序。

方案

  • userPrincipalName 属性值包含无效或不支持的字符。
  • userPrincipalName 属性不符合所需的格式。

上述场景的结果是出现 IdentityDataValidationFailed 错误。

修复 IdentityDataValidationFailed 错误

确保 userPrincipalName 属性包含支持的字符并使用所需的格式。

相关文章

通过与 Microsoft 365 进行目录同步来准备预配用户

删除访问冲突和密码访问冲突错误

Microsoft Entra ID 能够保护仅限云端的对象,防止通过 Microsoft Entra Connect 进行更新。 虽然无法通过 Microsoft Entra Connect 更新这些对象,但可以直接调用 Microsoft Entra 后端以尝试更改仅限云端的对象。 执行此操作时,可能会返回以下错误:

  • 此同步操作 Delete 无效。 请联系技术支持(错误类型 114)。
  • 无法处理此更新,因为当前请求中包含了一个或多个仅云用户凭据更新。
  • 不支持删除仅云对象。 请与 Microsoft 客户支持服务部门联系。
  • 无法执行密码更改请求,因为它包含对一个或多个仅云用户对象的更改,而这些操作不受支持。 请与 Microsoft 客户支持服务部门联系。

解决删除 DeletingCloudOnlyObjectNotAllowed(错误类型 114)

本部分讨论 DeletingCloudOnlyObjectNotAllowed 错误(错误类型 114)的潜在原因和解决方案。

Microsoft 建议组织为两个仅限云的紧急访问帐户永久分配全局管理员角色。 这些帐户拥有极高的特权,不要将其分配给特定的个人。 这些帐户仅限用于紧急情况或“救火式”情况,在这种情况下,普通帐户无法使用,或者所有其他管理员均已被意外锁定。应按照紧急访问帐户建议创建这些帐户。

说明

这是客户希望从混合迁移到仅限云的场景。 管理员发起对 Microsoft Entra Connect 的调用,试图将用户移出范围,但 Microsoft Entra Connect 返回 DeletingCloudOnlyObjectNotAllowed 错误(或错误类型 114):“此同步删除操作无效。 请与技术支持部门联系。”

此错误的可能原因包括:

  • 来自 Microsoft Entra Connect 的调用没有 UPN、新 GUID/唯一 GUID 或其他必需信息。
  • Microsoft Entra Connect 正在尝试导出数据,但 DirSyncEnabled 已设置为 False。
  • Microsoft Entra Connect 正在尝试删除已还原的用户或其他对象。 这通常是因为用户或其他对象引用已被移出同步范围或“丢失和发现”容器。

可能的场景

Microsoft Entra Connect 客户端在从混合云迁移到云期间无法删除用户,从而导致错误类型 114。

无法删除用户的潜在原因包括:

  • 客户创建的将用户移出范围的规则基于该 Admin 属性。
  • 同步(Azure AD Sync)操作期间返回错误类型 114,导致删除用户失败。
  • 特定功能的同步失败,导致不会相应地删除用户。

错误示例

导出错误示例:

TimeOccurred (UTC) 2021-10-20 23:51:28
MachineId 321d15e1-4ad6-49c7-918b-40a62a5140bd
Connector Name IDEXX.partner.onmschina.cn - AAD
ErrorType 114
ErrorCode 0x8023134a
ErrorLiteral This synchronization operation, Delete, is not valid. Contact Technical Support. Tracking Id: 09fb1e9b-3ff7-4163-9731-581785e347e5
ServerErrorDetail N/A
CsObjectIdentifier {aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb}
Dn CN={783456306961654236304B58786A66746377643748773D3D}

修复错误

若要解决此问题,请执行下列操作:

  1. 标识问题对象引用。
  2. 使用 PowerShell 软删除云帐户:
  3. 运行 Start-ADSyncSyncCycle -PolicyType Delta,应该能够成功导入帐户删除。
  4. 确认删除成功。
  5. 从回收站恢复用户。
  6. 在服务器上运行 Start-ADSyncSyncCycle -PolicyType Delta 以确认不会再次出现该错误。

警告

如果用户被排除在同步范围外,该对象将在 Microsoft Entra ID 中成为软删除对象,其 DirSyncEnabled 属性将被切换为 False。 但是,此过程不会将对象转换为云托管,因为它仍包含从本地 Active Directory 同步的属性和值,而这些属性和值无法在云中管理。 DirSyncEnabled 值为 False,表示它当前已脱离同步范围,且可以再次匹配。

LargeObject 或 ExceededAllowedLength

本部分讨论 LargeObject 或 ExceededAllowedLength 错误。

说明

当某个属性超过 Microsoft Entra 架构设置的允许大小限制、长度限制或计数限制时,同步操作将导致 LargeObject 或 ExceededAllowedLength 同步错误。 通常,此错误发生在以下属性上:

  • userCertificate
  • userSMIMECertificate
  • thumbnailPhoto
  • proxyAddresses

Microsoft Entra ID 不对每个属性施加限制,但 userCertificate 属性中的硬编码限制为 15 个证书,对目录扩展,限制为最多 100 个属性,每个目录扩展最多 250 个字符。 限制整个对象的大小。 当 Microsoft Entra Connect 尝试同步超出此对象大小限制的对象时,将引发导出错误。

所有属性都会影响对象的最终大小。 由于额外的处理开销,某些属性具有不同的权重乘数。 索引值即为一例。 此外,可能会将不同的云服务、服务计划和许可证分配给使用更多属性的帐户,这也会影响对象的整体大小。

无法准确确定某个属性在 Microsoft Entra ID 中可以容纳多少个条目,例如 proxyAddresses 属性中可以容纳多少 SMTP 地址。 数量取决于对象中填充的所有属性的大小和乘数。

可能的场景

  • Bob 的 userCertificate 属性存储了过多的分配给 Bob 的证书。 这些证书可能包括较旧版本的过期证书。 硬限制为 15 个证书。 有关如何处理 userCertificate 属性导致的 LargeObject 错误的详细信息,请参阅处理 userCertificate 属性导致的 LargeObject 错误一文。
  • Bob 的 userSMIMECertificate 属性存储了过多的分配给 Bob 的证书。 这些证书可能包括较旧版本的过期证书。 硬限制为 15 个证书。
  • 在 Active Directory 中为 Bob 设置的 thumbnailPhoto 属性过大,无法在 Microsoft Entra ID 中同步。
  • 在 Active Directory 中自动填充 proxyAddresses 属性期间,为某个对象分配了太多 proxyAddresses。

以下示例展示了 userCertificate 和 proxyAddresses 等属性的不同权重:

  • 如果一个同步用户没有被填充任何属性(除了必需的 Active Directory 属性和邮件),最多可以同步到 332 个代理地址。
  • 如果类似的同步用户具有 mailNickName 属性和 10 个用户证书,代理地址的最大数量会减少到 329。
  • 如果类似同步用户具有 10 个用户证书以及被分配了 4 个订阅(全部服务计划均启用),则代理地址的最大数量将降低到 311。
  • 现在,让我们以前面的用户(已拥有最大代理地址数)为例,假设需要再添加一个 SMTP 地址。 若要达到 312 个代理地址,需要删除至少三个用户证书(具体取决于证书的大小)。

注意

这些数字可能略有不同。 根据经验,更安全的做法是假设 proxyAddresses 属性中的 SMTP 地址限制约为 300 个地址,以便为对象及其填充属性的未来增长留出空间。

修复 LargeObject 或 ExceededAllowedLength 错误

查看用户属性并删除可能不再需要的属性值。 示例包括吊销或过期的证书,以及过期或不必要的地址,如 SMTP、X.400、X.500、MSMail 和 CcMail。

现有的管理员角色冲突

说明

当用户对象具有以下项时,同步期间用户对象上将发生现有管理员角色冲突同步错误:

  • 管理权限。
  • 与现有 Microsoft Entra 对象相同的 userPrincipalName 属性。

不允许 Microsoft Entra Connect 将本地 AD 中的用户对象与 Microsoft Entra ID 中分配有管理角色的用户对象进行软匹配。 有关详细信息,请参阅 Microsoft Entra userPrincipalName 填充

显示现有管理员角色冲突同步错误数的屏幕截图。

修复现有管理员角色冲突错误

若要解决此问题,请执行下列操作:

  1. 从所有管理员角色中移除 Microsoft Entra 帐户(所有者)。
  2. 硬删除云中已隔离的对象。
  3. 下一个同步周期将负责将本地用户与云帐户进行软匹配,因为云用户现在不再是混合标识管理员。
  4. 还原所有者的角色成员身份。

注意

当本地用户对象与 Microsoft Entra 用户对象之间的软匹配完成后,可以再次将管理角色分配给现有用户对象。