本文介绍 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 安全密钥?
- 如果我丢失安全密钥,该怎么办?
- 如何在 FIDO2 安全密钥上保护数据?
- FIDO2 安全密钥的注册如何工作?
- 管理员是否有办法直接为用户预配密钥?
我的组织需要多重身份验证才能访问资源。 为支持这一要求,我该做什么?
FIDO2 安全密钥采用各种外形规格。 请联系感兴趣的设备制造商,讨论如何使用 PIN 或生物识别作为第二因素启用其设备。 有关受支持的提供程序的列表,请参阅 FIDO2 安全密钥提供程序。
在哪里可以找到合规的 FIDO2 安全密钥?
有关受支持的提供程序的列表,请参阅 FIDO2 安全密钥提供程序。
如果我丢失安全密钥,该怎么办?
可以通过导航到 “安全信息 ”页并删除 FIDO2 安全密钥来删除密钥。
如何在 FIDO2 安全密钥上保护数据?
FIDO2 安全密钥具有安全 enclave,用于保护存储在它们的私钥。 FIDO2 安全密钥还内置了防锤属性,例如在 Windows Hello 中,你无法提取私钥。
管理员是否有办法直接为用户预配密钥?
否,目前不可以。
注册 FIDO2 密钥时,为什么我在浏览器中收到“NotAllowedError”?
你将从 fido2 密钥注册页收到“NotAllowedError”。 当 Windows 针对安全密钥尝试 CTAP2 authenticatorMakeCredential作时,通常会发生此错误。 你将在 Microsoft-Windows-WebAuthN/Operational 事件日志中看到更多详细信息。
先决条件
- 如果没有 Internet 连接,此功能是否正常工作?
- Microsoft Entra ID 打开所需的特定终结点是什么?
- 如何标识 Windows 10 设备的域加入类型(Microsoft已加入 Entra 或 Microsoft Entra 混合联接) ?
- 应修补的 DC 数量的建议是什么?
- 是否可以在本地设备上部署 FIDO2 凭据提供程序?
- FIDO2 安全密钥登录不适用于我的域管理员或其他高特权帐户。 为什么?
如果没有 Internet 连接,此功能是否正常工作?
Internet 连接是启用此功能的先决条件。 用户首次使用 FIDO2 安全密钥登录时,必须具有 Internet 连接。 对于后续登录事件,缓存的登录应正常工作,让用户在没有 Internet 连接的情况下进行身份验证。
为了获得一致的体验,请确保设备具有 Internet 访问权限和 DC 的视线。
Microsoft Entra ID 打开所需的特定终结点是什么?
注册和身份验证需要以下终结点:
*.partner.microsoftonline.cn
*.microsoftonline-p.com
*.msauth.net
*.msauthimages.net
*.msecnd.net
*.msftauth.net
*.msftauthimages.net
*.phonefactor.net
enterpriseregistration.partner.microsoftonline.cn
management.chinacloudapi.cn
policykeyservice.dc.ad.msft.net
secure.aadcdn.partner.microsoftonline-p.cn
有关使用Microsoft联机产品所需的终结点的完整列表,请参阅 Office 365 URL 和 IP 地址范围。
如何标识 Windows 10 设备的域加入类型(Microsoft已加入 Entra 或 Microsoft Entra 混合联接) ?
若要检查 Windows 10 客户端设备是否具有正确的域加入类型,请使用以下命令:
Dsregcmd /status
以下示例输出显示设备已Microsoft加入 Entra,因为 AzureADJoined 设置为 YES:
+---------------------+
| Device State |
+---------------------+
AzureADJoined: YES
EnterpriseJoined: NO
DomainedJoined: NO
以下示例输出显示设备Microsoft已加入 DomainedJoined 的 Entra 混合联接也设置为 “是”。 还会显示 DomainName :
+---------------------+
| Device State |
+---------------------+
AzureADJoined: YES
EnterpriseJoined: NO
DomainedJoined: YES
DomainName: CONTOSO
在 Windows Server 2016 或 2019 域控制器上,检查是否应用了以下修补程序。 如果需要,请运行 Windows 更新以安装它们:
在客户端设备中运行以下命令,验证与安装了修补程序的相应域控制器的连接:
nltest /dsgetdc:<domain> /keylist /kdc
应修补的 DC 数量的建议是什么?
建议使用修补程序修补大多数 Windows Server 2016 或 2019 域控制器,以确保他们能够处理组织的身份验证请求负载。
在 Windows Server 2016 或 2019 域控制器上,检查是否应用了以下修补程序。 如果需要,请运行 Windows 更新以安装它们:
是否可以在本地设备上部署 FIDO2 凭据提供程序?
否,仅本地设备不支持此功能。 FIDO2 凭据提供程序不会显示。
FIDO2 安全密钥登录不适用于我的域管理员或其他高特权帐户。 为什么?
默认安全策略不授予 Microsoft Entra 权限,以将高特权帐户登录到本地资源。
由于可能的攻击途径从 Microsoft Entra ID 到 Active Directory,因此不建议通过放宽计算机对象 CN=AzureADKerberos、OU=域控制器、<domain-DN> 的密码复制策略来取消阻止这些帐户。
揭秘
- Microsoft Entra Kerberos 如何链接到本地 Active Directory 域服务环境?
- 在哪里可以查看在 AD 中创建并在 Microsoft Entra ID 中发布的这些 Kerberos 服务器对象?
- 为什么无法将公钥注册到本地 AD DS,因此 Internet 上没有依赖项?
- 如何在 Kerberos 服务器对象上轮换密钥?
- 为什么我们需要Microsoft Entra Connect? 它是否从 Microsoft Entra ID 将任何信息写回 AD DS?
- 请求 PRT+ 部分 TGT 时,HTTP 请求/响应的外观是什么?
Microsoft Entra Kerberos 如何链接到本地 Active Directory 域服务环境?
有两个部分:本地 AD DS 环境和 Microsoft Entra 租户。
Active Directory 域服务(AD DS)
Microsoft Entra Kerberos 服务器以域控制器 (DC) 对象的形式表示在本地 AD DS 环境中。 此 DC 对象由多个对象组成:
CN=AzureADKerberos,OU=Domain Controllers,<domain-DN>
表示 AD DS 中 Read-Only 域控制器(RODC) 的计算机 对象。 没有与此对象关联的计算机。 而是 DC 的逻辑表示形式。
CN=krbtgt_AzureAD,CN=Users,<domain-DN>
表示 RODC Kerberos 票证授予票证 (TGT) 加密密钥的用户对象。
CN=900274c4-b7d2-43c8-90ee-00a9f650e335,CN=AzureAD,CN=System,<domain-DN>
一个 ServiceConnectionPoint 对象,用于存储有关 Microsoft Entra Kerberos 服务器对象的元数据。 管理工具使用此对象来标识和查找 Microsoft Entra Kerberos 服务器对象。
Microsoft Entra ID
Microsoft Entra Kerberos 服务器在 Microsoft Entra ID 中表示为 KerberosDomain 对象。 每个本地 AD DS 环境都表示为 Microsoft Entra 租户中的单个 KerberosDomain 对象。
例如,可能有一个 AD DS 林,其中包含两个域,例如 contoso.com
和 fabrikam.com
。 如果允许Microsoft Entra ID 颁发整个林的 Kerberos 票证授予票证(TGT),Microsoft Entra ID 中有两 KerberosDomain
个对象 - 一个对象用于 contoso.com
和一个对象 fabrikam.com
。
如果有多个 AD DS 林,则每个林中的每个域都有一个 KerberosDomain
对象。
在哪里可以查看在 AD DS 中创建并在 Microsoft Entra ID 中发布的这些 Kerberos 服务器对象?
若要查看所有对象,请使用最新版本的 Microsoft Entra Connect 随附的 Microsoft Entra Kerberos 服务器 PowerShell cmdlet。
为什么无法将公钥注册到本地 AD DS,因此 Internet 上没有依赖项?
我们收到了有关 Windows Hello 企业版部署模型复杂性的反馈,因此想要简化部署模型,而无需使用证书和 PKI(FIDO2 不使用证书)。
如何在 Kerberos 服务器对象上轮换密钥?
与其他任何 DC 一样,应定期轮换 Microsoft Entra Kerberos 服务器加密 krbtgt 密钥。 建议遵循与用于轮换所有其他 AD DS krbtgt 密钥相同的计划。
注释
尽管还有其他工具来轮换 krbtgt 密钥,但必须使用 PowerShell cmdlet 来轮换 Microsoft Entra Kerberos 服务器的 krbtgt 密钥。 此方法确保在本地 AD DS 环境和 Microsoft Entra ID 中更新密钥。
为什么我们需要Microsoft Entra Connect? 它是否从 Microsoft Entra ID 将任何信息写回 AD DS?
Microsoft Entra Connect 不会将信息从 Microsoft Entra ID 写回 Active Directory DS。 该实用工具包括 PowerShell 模块,用于在 AD DS 中创建 Kerberos 服务器对象并将其发布到 Microsoft Entra ID 中。
请求 PRT+ 部分 TGT 时,HTTP 请求/响应的外观是什么?
HTTP 请求是标准主刷新令牌 (PRT) 请求。 此 PRT 请求包括一个声明,指示需要 Kerberos 票证授予票证 (TGT)。
索赔 | 价值 | DESCRIPTION |
---|---|---|
tgt | 是 | 声明指示客户端需要 TGT。 |
Microsoft Entra ID 将加密的客户端密钥和消息缓冲区合并到 PRT 响应中作为其他属性。 有效负载使用 Microsoft Entra 设备会话密钥进行加密。
领域 | 类型 | DESCRIPTION |
---|---|---|
tgt_client_key | 字符串 | Base64 编码的客户端密钥(机密)。 此密钥是用于保护 TGT 的客户端密码。 在此无密码方案中,客户端密码由服务器作为每个 TGT 请求的一部分生成,然后在响应中返回到客户端。 |
tgt_key_type | 整数 (int) | 用于客户端密钥和KERB_MESSAGE_BUFFER中包含的 Kerberos 会话密钥的本地 AD DS 密钥类型。 |
tgt_message_buffer | 字符串 | Base64 编码KERB_MESSAGE_BUFFER。 |
用户是否需要是域用户 Active Directory 组的成员?
是的。 用户必须位于域用户组中才能使用 Microsoft Entra Kerberos 登录。
后续步骤
若要开始使用 FIDO2 安全密钥以及对本地资源的混合访问,请参阅以下文章: