Windows Hello 企业版已知部署问题
本文的内容旨在帮助排查 Windows Hello 企业版的已知部署问题。
Microsoft Entra 加入设备上的 PIN 重置失败,出现“ 我们现在无法打开该页面” 错误
Microsoft已加入 Entra 的设备上的 PIN 重置使用名为 Web 登录 的流对锁上的用户进行身份验证。 Web 登录仅允许导航到特定域。 如果 Web 登录尝试导航到不允许的域,则会显示一个页面,其中包含错误消息 “我们现在无法打开该页面”。
确定 PIN 重置允许的域问题
用户可以使用 PIN 凭据提供程序中的 “我忘记了 PIN ”链接从锁屏界面启动 PIN 重置流。 选择该链接会启动一个全屏 UI,用于Microsoft Entra 加入设备上的 PIN 体验。 通常,UI 显示一个身份验证页,用户在其中使用Microsoft Entra 凭据进行身份验证并完成 MFA。
在联合环境中,可以将身份验证配置为路由到 AD FS 或非Microsoft标识提供者。 如果 PIN 重置流已启动并尝试导航到联合标识提供者服务器页,则失败并显示“ 我们现在无法打开该页 ”错误(如果服务器页的域未包含在允许列表中)。
如果你是 Azure 美国政府 云的客户,PIN 重置还会尝试导航到默认允许列表中未包括的域。 结果是消息 “我们现在无法打开该页面”。
解决 PIN 重置允许的域问题
若要解决此错误,可以使用 ConfigureWebSignInAllowedUrls 策略配置允许的 PIN 重置域列表。 有关如何配置策略的信息,请参阅 在已加入 Entra 的设备上为联合标识提供者配置允许的 URL Microsoft。
由于用户公钥删除,混合密钥信任登录中断
适用于:
- 混合密钥信任部署
- Windows Server 2016 内部版本 14393.3930 到 14393.4048
- Windows Server 2019,内部版本 17763.1457 到 17763.1613
在运行某些版本的 Windows Server 2016 和 Windows Server 2019 的域控制器的混合密钥信任部署中,用户的 Windows Hello 企业版密钥在登录后会被删除。 后续登录将失败,直到用户密钥在下一个Microsoft Entra Connect 增量同步周期同步。
确定用户公钥删除问题
用户在混合密钥信任环境中预配 Windows Hello 企业版凭据后,密钥必须在Microsoft Entra Connect 同步周期期间从 Microsoft Entra ID 同步同步到 Active Directory。 用户的公钥将写入用户 msDS-KeyCredentialLink
对象的 属性。
在用户的 Windows Hello 企业版密钥同步之前,使用 Windows Hello 企业版登录失败并显示错误消息 “该选项暂时不可用”。目前,请使用其他方法登录。 密钥成功同步后,用户可以使用其 PIN 或已注册的生物识别进行登录和解锁。
在出现此问题的环境中,首次登录 Windows Hello 企业版并完成预配后,下一次登录尝试将失败。 在域控制器混合运行生成的环境中,某些用户可能会受到此问题的影响,后续登录尝试可能会发送到不同的域控制器。 结果是间歇性登录失败。
初始登录尝试后,将从 中删除 msDS-KeyCredentialLink attribute
用户的 Windows Hello 企业版公钥。 可以通过在登录之前和登录后查询用户的 msDS-KeyCredentialLink
属性来验证是否删除。 可以使用 Get-ADUser 并指定 msds-keycredentiallink
-Properties
参数,在 AD 中查询 msDS-KeyCredentialLink
。
解决用户公钥删除问题
若要解决此问题,请使用最新修补程序更新 Windows Server 2016 和 2019 域控制器。 对于 Windows Server 2016,内部版本 14393.4104 (KB4593226) 及更高版本中修复了该行为。 对于 Windows Server 2019,内部版本 17763.1637 (KB4592440) 中修复了该行为。
使用密钥信任和非Microsoft证书颁发机构 (CA) Microsoft Entra 联接设备对本地资源的访问
适用于:
- Microsoft Entra 联接密钥信任部署
- 非Microsoft证书颁发机构 (CA) 颁发域控制器证书
Windows Hello 企业版对许多操作使用基于智能卡的身份验证。 使用非Microsoft CA 颁发证书时,这种类型的身份验证具有特殊准则,其中一些适用于域控制器。 并非所有 Windows Hello 企业版部署类型都需要这些配置。 使用非Microsoft CA 颁发域控制器证书时,从已加入 Microsoft Entra 的设备访问本地资源确实需要特殊配置。
有关详细信息,请阅读 有关在非Microsoft证书颁发机构启用智能卡登录的指南。
识别非Microsoft CA 的本地资源访问问题
可以使用客户端中的网络跟踪或 Kerberos 日志记录来识别问题。 在网络跟踪中,当用户尝试访问资源时,客户端无法发出 TGS_REQ
请求。 在客户端上,可以在 下的 Kerberos 操作事件日志 Application and Services/Microsoft/Windows/Security-Kerberos/Operational
中观察到它。 默认情况下,日志处于禁用状态。 此案例的失败事件包括以下信息:
Log Name: Microsoft-Windows-Kerberos/Operational
Source: Microsoft-Windows-Security-Kerberos
Event ID: 107
GUID: {98e6cfcb-ee0a-41e0-a57b-622d4e1b30b1}
Task Category: None
Level: Error
Keywords:
User: SYSTEM
Description:
The Kerberos client received a KDC certificate that does not have a matched domain name.
Expected Domain Name: ad.contoso.com
Error Code: 0xC000006D
解决非Microsoft CA 的本地资源访问问题
若要解决此问题,必须更新域控制器证书,以便证书使用者包含服务器对象的目录路径 (可分辨名称) 。
示例主题: CN=DC1,OU=Domain Controllers,DC=ad,DC=contoso,DC=com
或者,可以将域控制器证书的使用者可选名称 (SAN) 设置为包含服务器对象的完全限定域名和域的 NETBIOS 名称。 使用者可选名称示例:
dns=dc1.ad.contoso.com
dns=ad.contoso.com
dns=ad
Windows Server 2019 的密钥信任身份验证中断
适用于:
- Windows Server 2019
- 混合密钥信任部署
- 本地密钥信任部署
运行早期版本 Windows Server 2019 的域控制器存在阻止密钥信任身份验证正常工作的问题。 网络跟踪报告 KDC_ERR_CLIENT_NAME_MISMATCH。
确定 Windows Server 2019 密钥信任身份验证问题
在客户端上,使用 Windows Hello 企业版进行身份验证失败,并显示错误消息 “该选项暂时不可用”。目前,请使用其他方法登录。
在预配 Windows Hello 企业版之后,但在将用户的密钥从 entra ID 同步到 Active Directory 之前,在密钥信任部署中,Microsoft Microsoft Entra 混合加入的设备上显示此错误。 如果用户的密钥未从 Microsoft Entra ID 同步,并且 msDS-keycredentiallink
AD 中用户对象的属性已为 NGC 填充,则可能会发生错误。
可以使用网络跟踪来识别故障的另一个指示器。 如果捕获密钥信任登录事件的网络跟踪,则跟踪显示 Kerberos 失败并 KDC_ERR_CLIENT_NAME_MISMATCH错误。
解决 Server 2019 密钥信任身份验证问题
此问题已在 Windows Server 2019 内部版本 17763.316 (KB4487044) 中得到解决。 将所有 Windows Server 2019 域控制器升级到内部版本 17763.316 或更高版本以解决此问题。
Windows Server 2019 上 AD FS 中断的证书信任预配
适用于:
- Windows Server 2019
- 混合证书信任部署
- 本地证书信任部署
Windows Server 2019 上运行的 AD FS 无法完成设备身份验证,因为请求中的传入范围检查无效。 对 AD FS 的设备身份验证是 Windows Hello 企业版使用 AD FS 注册证书的要求。 客户端会阻止 Windows Hello 企业版预配,直到身份验证成功。
使用 AD FS 2019 注册问题确定证书信任
如果先决条件检查成功,将启动 Windows Hello 企业版的预配体验。 provisioningAdmin 检查的结果在 Microsoft-Windows-User 设备注册下的事件日志中提供。 如果由于设备身份验证不成功而阻止预配,则会记录事件 ID 362 ,指出 用户已成功向企业 STS 进行身份验证:否。
Log Name: Microsoft-Windows-User Device Registration/Admin
Source: Microsoft-Windows-User Device Registration
Date: <Date and time>
Event ID: 362
Task Category: None
Level: Warning
Keywords:
User: <User SID>
Computer: <Computer name>
Description:
Windows Hello for Business provisioning will not be launched.
Device is Azure Active Directory-joined ( AADJ or DJ++ ): Yes
User has logged on with Azure Active Directory credentials: Yes
Windows Hello for Business policy is enabled: Yes
Windows Hello for Business post-logon provisioning is enabled: Yes
Local computer meets Windows hello for business hardware requirements: Yes
User is not connected to the machine via Remote Desktop: Yes
User certificate for on premise auth policy is enabled: Yes
Enterprise user logon certificate enrollment endpoint is ready: Not Tested
Enterprise user logon certificate template is : No ( 1 : StateNoPolicy )
User has successfully authenticated to the enterprise STS: No
Certificate enrollment method: enrollment authority
See https://go.microsoft.com/fwlink/?linkid=832647 for more details.
如果设备最近加入域,则设备身份验证之前可能会有延迟。 如果此先决条件检查的失败状态仍然存在,则表明 AD FS 配置存在问题。
如果存在 AD FS 范围问题,AD FS 服务器上的事件日志指示客户端的身份验证失败。 该错误以事件 ID 1021 的形式记录在 AD FS/Admin 下的事件日志中,事件指定禁止客户端访问范围为 ugs
的资源http://schemas.microsoft.com/ws/2009/12/identityserver/selfscope
:
Log Name: AD FS/Admin
Source: AD FS
Date: <Date and time>
Event ID: 1021
Task Category: None
Level: Error
Keywords: AD FS
User: <ADFS service Account>
Computer: <Date and time>
Description:
Encountered error during OAuth token request.
Additional Data
Exception details:
Microsoft.IdentityServer.Web.Protocols.OAuth.Exceptions.OAuthUnauthorizedClientException: MSIS9368: Received invalid OAuth request. The client '38aa3b87-a06d-4817-b275-7a316988d93b' is forbidden to access the resource 'http://schemas.microsoft.com/ws/2009/12/identityserver/selfscope' with scope 'ugs'.
at Microsoft.IdentityServer.Web.Protocols.OAuth.OAuthProtocolContext.ValidateScopes(String scopeParameter, String clientId, String relyingPartyId)
at Microsoft.IdentityServer.Web.Protocols.OAuth.OAuthToken.OAuthJWTBearerRequestContext.ValidateCore()
解决 AD FS 2019 注册问题的证书信任问题
此问题在 Windows Server 版本 1903 及更高版本中已修复。 对于 Windows Server 2019,可以通过手动添加 ugs 范围来修复此问题。
启动 AD FS 管理控制台。 浏览到 “服务 > 范围说明”。
右键单击“ 范围说明 ”,然后选择“ 添加范围说明”。
在名称下键入 “ugs”,然后选择“ 应用 > 确定”。
以管理员身份启动 PowerShell。
获取 ClientRoleIdentifier 参数等于“38aa3b87-a06d-4817-b275-7a316988d93b”的应用程序权限的 ObjectIdentifier:
(Get-AdfsApplicationPermission -ServerRoleIdentifiers 'http://schemas.microsoft.com/ws/2009/12/identityserver/selfscope' | ?{ $_.ClientRoleIdentifier -eq '38aa3b87-a06d-4817-b275-7a316988d93b' }).ObjectIdentifier
执行命令
Set-AdfsApplicationPermission -TargetIdentifier <ObjectIdentifier from step 5> -AddScope 'ugs'
。重启 AD FS 服务。
在客户端上:重启客户端。 系统应提示用户预配 Windows Hello 企业版。