排除 Microsoft Entra ID 中 FIDO2 安全密钥混合部署的故障

本文介绍有关 Microsoft Entra 混合联接设备以及无密码登录本地资源的常见问题。 借助此无密码功能,可以使用 FIDO2 安全密钥在 Windows 10 设备上为 Microsoft Entra 混合联接设备启用 Microsoft Entra 身份验证。 用户可以在其设备上使用 FIDO2 密钥等现代凭据登录 Windows,并通过无缝单一登录(SSO)体验访问其本地资源中传统的 Active Directory 域服务(AD DS)资源。

支持在混合环境中的以下用户方案:

  • 使用 FIDO2 安全密钥登录到 Microsoft Entra 混合联接设备,并获取对本地资源的 SSO 访问权限。
  • 使用 FIDO2 安全密钥登录到已加入 Microsoft Entra 的设备,并获取对本地资源的 SSO 访问权限。

若要开始使用 FIDO2 安全密钥以及对本地资源的混合访问,请参阅以下文章:

已知问题

用户无法使用 FIDO2 安全密钥登录,因为 Windows Hello 人脸识别速度太快并且是默认登录机制

对于用户已注册的设备,Windows Hello 人脸识别是最佳体验。 FIDO2 安全密钥应该用于共享设备或用于 Windows Hello 企业版注册有困难的情形。

如果 Windows Hello 人脸识别阻止用户尝试 FIDO2 安全密钥登录方案,用户可以通过在“设置”>“登录选项”中删除人脸注册来关闭 Hello 人脸登录。

用户无法在创建 Microsoft Entra 混合联接计算机后立即使用 FIDO2 安全密钥

在全新安装的 Microsoft Entra 混合联接计算机上执行加入域和重启过程后,必须使用密码登录并等待策略同步,然后才能使用 FIDO2 安全密钥进行登录。

此行为是已加入域的设备的已知限制,并不是针对 FIDO2 安全密钥。

若要查看当前状态,请使用 dsregcmd /status 命令。 检查 AzureAdJoined 和 DomainJoined 是否都显示“是” 。

用户无法在使用 FIDO2 安全密钥登录并收到凭据提示后通过 SSO 访问我的 NTLM 网络资源

请确保对足够的 DC 进行修补,以便及时响应资源服务请求。 若要检查是否可以看到运行该功能的服务器,请查看 nltest /dsgetdc:<dc name> /keylist /kdc 的输出

如果可以使用此功能看到 DC,则表明用户的密码可能在他们登录之后发生了更改,或者,存在其他问题。 请按下一部分中的详细介绍收集日志,以便 Microsoft 支持团队进行调试。

疑难解答

有两个方面可以进行问题排查 - Windows 客户端问题部署问题

Windows 客户端问题

若要收集数据来帮助排查登录 Windows 的问题或从 Windows 10 设备访问本地资源的问题,请完成以下步骤:

  1. 打开反馈中心应用。 确保你的名字在该应用的左下角,然后选择“创建新反馈项”。

    对于反馈项类型,请选择“问题”。

  2. 选择“安全和隐私”类别,然后选择“FIDO”子类别 。

  3. 切换“将附加的文件和诊断连同我的反馈一起发送到 Microsoft”复选框。

  4. 选择“重新创建我的问题”,然后单击“开始捕获” 。

  5. 使用 FIDO2 安全密钥锁定和解锁计算机。 如果出现该问题,请尝试使用其他凭据来解锁。

  6. 返回到反馈中心,选择“停止捕获”,并提交反馈 。

  7. 前往“反馈”页,然后前往“我的反馈”选项卡。选择最近提交的反馈。

  8. 选择右上角的“共享”按钮,以获取该反馈的链接。 在打开支持案例时,或在回复为现有支持案例分配的工程师时,请包含此链接。

以下事件日志和注册表项信息会被收集:

注册密钥

  • HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\FIDO [*]
  • HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\PassportForWork* [*]
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Policies\PassportForWork* [*]

诊断信息

  • 实时内核转储
  • 收集 AppX 包信息
  • UIF 上下文文件

事件日志

  • %SystemRoot%\System32\winevt\Logs\Microsoft-Windows-AAD%40Operational.evtx
  • %SystemRoot%\System32\winevt\Logs\Microsoft-Windows-WebAuthN%40Operational.evtx
  • %SystemRoot%\System32\winevt\Logs\Microsoft-Windows-HelloForBusiness%40Operational.evtx

部署问题

要排查有关部署 Microsoft Entra Kerberos 服务器的问题,请使用新 AzureADHybridAuthenticationManagement PowerShell 模块的日志。

查看日志

AzureADHybridAuthenticationManagement 模块中的 Microsoft Entra Kerberos 服务器 PowerShell cmdlet 使用与标准 Microsoft Entra Connect 向导相同的日志记录。 若要查看 cmdlet 中的信息或错误详细信息,请完成以下步骤:

  1. 在使用 AzureADHybridAuthenticationManagement 模块的计算机上,浏览到 C:\ProgramData\AADConnect\。 此文件夹默认已隐藏。
  2. 打开并查看位于该目录中的最新的 trace-*.log 文件。

查看 Microsoft Entra Kerberos 服务器对象

要查看 Microsoft Entra Kerberos 服务器对象并验证它们是否一切正常,请完成以下步骤:

  1. 在 Microsoft Entra Connect 服务器或已安装 AzureADHybridAuthenticationManagement 模块的任何其他计算机上,打开 PowerShell 并导航到 C:\Program Files\Microsoft Azure Active Directory Connect\AzureADKerberos\

  2. 运行以下 PowerShell 命令,以从 Microsoft Entra ID 和本地 AD DS 查看 Microsoft Entra Kerberos 服务器。

    将 corp.contoso.com 替换为本地 AD DS 域的名称。

    Import-Module ".\AzureAdKerberos.psd1"
    
    # Specify the on-premises AD DS domain.
    $domain = "corp.contoso.com"
    
    # Enter an Azure Active Directory Global Administrator username and password.
    $cloudCred = Get-Credential
    
    # Enter a Domain Admin username and password.
    $domainCred = Get-Credential
    
    # Get the Azure AD Kerberos Server Object
    Get-AzureADKerberosServer -Domain $domain -CloudCredential $cloudCred -DomainCredential
    $domainCred
    

命令会从 Microsoft Entra ID 和本地 AD DS 输出 Microsoft Entra Kerberos 服务器的属性。 查看这些属性,以验证是否所有内容都正常。 使用下表来验证这些属性。

第一组属性来自本地 AD DS 环境中的对象。 第二部分(以 Cloud 开头的属性)来自 Microsoft Entra ID 中的 Kerberos 服务器对象:

properties 说明
ID AD DS 域控制器对象的独一无二的 ID。
DomainDnsName AD DS 域的 DNS 域名。
ComputerAccount Microsoft Entra Kerberos 服务器对象的计算机帐户对象 (DC)。
UserAccount 已禁用的用户帐户对象,该对象可保存 Microsoft Entra Kerberos 服务器 TGT 加密密钥。 此帐户的 DN 是 CN=krbtgt_AzureAD,CN=Users,<Domain-DN>
KeyVersion Microsoft Entra Kerberos 服务器 TGT 加密密钥的密钥版本。 该版本是在该密钥创建时分配的。 然后,该版本会在每次轮换该密钥时都递增。 增量是基于复制元数据的,并且将有可能大于 1。

例如,初始 KeyVersion 可能为 192272 。 该密钥第一次轮换时,该版本可能会前进到 212621。

要验证本地对象的 KeyVersion 和云对象的 CloudKeyVersion 是否相同,这一点很重要 。
KeyUpdatedOn 更新或创建 Microsoft Entra Kerberos 服务器 TGT 加密密钥的日期和时间。
KeyUpdatedFrom 上次更新 Microsoft Entra Kerberos 服务器 TGT 加密密钥的 DC。
CloudId Microsoft Entra 对象的 ID。 必须与上述 Id 匹配。
CloudDomainDnsName Microsoft Entra 对象的 DomainDnsName。 必须与上面的 DomainDnsName 匹配。
CloudKeyVersion Microsoft Entra 对象的 KeyVersion。 必须与上面的 KeyVersion 匹配。
CloudKeyUpdatedOn Microsoft Entra 对象的 KeyUpdatedOn。 必须与上面的 KeyUpdatedOn 匹配。

后续步骤

若要开始使用 FIDO2 安全密钥以及对本地资源的混合访问,请参阅以下文章: