2026-09-02
技术分享
00
请注意,本文编写于 59 天前,最后修改于 58 天前,其中某些信息可能已经过时。

目录

一、故障背景
原实验环境已完成配置
故障触发操作
二、故障现象
三、初步排查验证
1. 账号存在性
2. 邮箱状态
3. 目录同步状态
4. 域认证方式
四、问题定位
1. 计算本地 AD 用户的 ObjectGUID
2. 对比云端 ImmutableID
3. 检查 ADFS 声明规则
五、根本原因
六、修复步骤
1. 将云端 ImmutableID 还原为 GUID 格式
2. 给本地 AD 用户写入 mS-DS-ConsistencyGuid
3. 触发完整目录同步
4. 结果验证
七、常用排查命令汇总
1. 查询同步用户属性
2. 查询域联邦配置
3. 查询域认证类型
4. 查询本地 AD 用户 GUID 并转 Base64
5. 查询 ADFS 信赖方声明规则
6. Base64 ImmutableID 转 GUID
7. 设置 AD 用户 mS-DS-ConsistencyGuid
8. 手动触发 Entra Connect 同步
八、经验总结
1. 域重建前置注意事项
2. AADSTS51004 错误排查清单
3. 核心结论

一、故障背景

原实验环境已完成配置

  • aa123456.site 域验证
  • Entra Connect 目录同步
  • Exchange Online 邮箱创建
  • ADFS 联邦身份认证

故障触发操作

误删除域控制器(DC)、ADFS、WAP 服务器后,重新部署全套环境,登录出现异常。

二、故障现象

访问 https://outlook.office.com/,使用 user01@aa123456.site 登录时:

  1. Outlook 跳转至 Microsoft 365 认证页

  2. 重定向到 ADFS 联邦登录页

  3. ADFS 账号密码验证成功

  4. 跳转回 Microsoft 365 时抛出错误:

    AADSTS51004: The user account R725SnUt5kOLZ6Eye3W0GQ== does not exist in the directory.

23.png

三、初步排查验证

1. 账号存在性

确认 user01@aa123456.site 在 Microsoft Entra ID 中正常存在。

2. 邮箱状态

Exchange Online 中该账号邮箱完整存在,数据未丢失。

3. 目录同步状态

执行 PowerShell 命令查询:

Get-MgUser -UserId user01@aa123456.site -Property OnPremisesImmutableId,OnPremisesSyncEnabled

返回结果:

  • OnPremisesSyncEnabled : True
  • OnPremisesImmutableId : hukNzIp+WkihuQKJFPxKYg==

结论:账号仍标记为本地同步用户。

4. 域认证方式

执行命令:

Get-MgDomain

返回 AuthenticationType : Federated,说明登录必须经过 ADFS 联邦认证。

四、问题定位

1. 计算本地 AD 用户的 ObjectGUID

在本地域控制器执行:

$guid = (Get-ADUser user01 -Properties ObjectGUID).ObjectGUID [System.Convert]::ToBase64String($guid.ToByteArray())

输出结果:R725SnUt5kOLZ6Eye3W0GQ==

2. 对比云端 ImmutableID

  • 云端 Entra ID 保存的 ImmutableID:hukNzIp+WkihuQKJFPxKYg==
  • 本地 AD 用户 ObjectGUID 转 Base64:R725SnUt5kOLZ6Eye3W0GQ==

两者不一致。

3. 检查 ADFS 声明规则

执行命令查看 Office 365 信赖方信任规则:

Get-AdfsRelyingPartyTrust -Name "Microsoft Office 365 Identity Platform Worldwide" | Format-List *

关键规则逻辑:

优先颁发 mS-DS-ConsistencyGuid 作为 Immutable ID;若该属性不存在,则颁发 ObjectGUID 作为 Immutable ID。

五、根本原因

原环境中 user01 同步到 Azure 时,生成的 ImmutableID 为 hukNzIp+WkihuQKJFPxKYg==,并保存在云端。 删除 DC 重建后,本地重新创建的 user01 生成了全新的 ObjectGUID,ADFS 登录时发出的身份标识变为 R725SnUt5kOLZ6Eye3W0GQ==。

云端 Entra ID 仍以旧的 ImmutableID 匹配用户,导致无法识别账号,抛出 AADSTS51004 错误。

核心:邮箱和账号本身都正常,问题是 ADFS 签发的 ImmutableID 与云端保存的不匹配。

六、修复步骤

1. 将云端 ImmutableID 还原为 GUID 格式

$bytes = [System.Convert]::FromBase64String("hukNzIp+WkihuQKJFPxKYg==") New-Object Guid (,$bytes)

输出结果:ca8d89e1-7e8a-48a9-a1b9-028914fc4a62

2. 给本地 AD 用户写入 mS-DS-ConsistencyGuid

将上述 GUID 写入本地用户的 mS-DS-ConsistencyGuid 属性,让 ADFS 优先使用该值签发:

$guid = [guid]"ca8d89e1-7e8a-48a9-a1b9-028914fc4a62" Set-ADUser user01 -Replace @{ 'mS-DS-ConsistencyGuid' = $guid.ToByteArray() }

3. 触发完整目录同步

Start-ADSyncSyncCycle -PolicyType Initial

4. 结果验证

重新访问 https://outlook.office.com/,使用 user01@aa123456.site 登录,流程正常,登录成功,邮箱数据完整保留。

七、常用排查命令汇总

1. 查询同步用户属性

Get-MgUser -UserId user01@aa123456.site -Property OnPremisesImmutableId,OnPremisesSyncEnabled,OnPremisesDistinguishedName

2. 查询域联邦配置

Get-MgDomainFederationConfiguration -DomainId aa123456.site

3. 查询域认证类型

Get-MgDomain

4. 查询本地 AD 用户 GUID 并转 Base64

$guid = (Get-ADUser user01 -Properties ObjectGUID).ObjectGUID [System.Convert]::ToBase64String($guid.ToByteArray())

5. 查询 ADFS 信赖方声明规则

Get-AdfsRelyingPartyTrust -Name "Microsoft Office 365 Identity Platform Worldwide" | Format-List *

6. Base64 ImmutableID 转 GUID

$bytes = [System.Convert]::FromBase64String("hukNzIp+WkihuQKJFPxKYg==") New-Object Guid (,$bytes)

7. 设置 AD 用户 mS-DS-ConsistencyGuid

$guid = [guid]"ca8d89e1-7e8a-48a9-a1b9-028914fc4a62" Set-ADUser user01 -Replace @{ 'mS-DS-ConsistencyGuid' = $guid.ToByteArray() }

8. 手动触发 Entra Connect 同步

# 完全同步 Start-ADSyncSyncCycle -PolicyType Initial # 增量同步 Start-ADSyncSyncCycle -PolicyType Delta

八、经验总结

1. 域重建前置注意事项

删除/重建 DC 前,必须记录所有同步用户的以下关键属性:

  • ObjectGUID
  • mS-DS-ConsistencyGuid
  • UPN(用户主体名称)

2. AADSTS51004 错误排查清单

遇到该报错时按顺序检查:

  1. 用户账号在 Entra ID 中是否存在
  2. 对应 Exchange Online 邮箱是否存在
  3. 域名认证类型是否为 Federated(联邦)
  4. 用户的 OnPremisesImmutableId 值
  5. 本地 AD 用户的 mS-DS-ConsistencyGuid 属性
  6. ADFS 信赖方的声明签发规则

3. 核心结论

  • 该故障不影响 Exchange Online 邮箱数据
  • 问题根源不是 Exchange 服务异常,而是联邦身份认证的 ImmutableID 不匹配
  • 通过对齐本地 mS-DS-ConsistencyGuid 与云端 ImmutableID,即可恢复登录与同步,且不丢失任何邮箱数据

本文作者:Ariesnices

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!