有关 Microsoft Entra ID 中的混合 FIDO2 安全密钥的部署常见问题解答 (FAQ)

本文介绍有关已建立 Microsoft Entra 混合联接的设备和无密码登录本地资源的部署常见问题解答 (FAQ)。 借助此无密码功能,可以使用 FIDO2 安全密钥在 Windows 10 设备上为 Microsoft Entra 混合联接设备启用 Microsoft Entra 身份验证。 用户可以在他们的设备上使用 FIDO2 密钥等新式凭据来登录 Windows,并且可以使用他们本地资源的无缝单一登录 (SSO) 体验来访问基于 Active Directory 域服务 (AD DS) 的传统资源。

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

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

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

安全密钥

我的组织需要多重身份验证来访问资源。 为支持这一要求,我该做什么?

FIDO2 安全密钥分为多种形式。 请联系相关的设备制造商,讨论如何使用 PIN 或生物识别功能作为次要因素来启用设备。 有关支持的提供程序的列表,请参阅 FIDO2 安全密钥提供程序

在哪里可以找到合规的 FIDO2 安全密钥?

有关支持的提供程序的列表,请参阅 FIDO2 安全密钥提供程序

如果安全密钥丢失了,该怎么办?

可导航到“安全信息”页面,并移除 FIDO2 安全密钥来移除密钥。

如何在 FIDO2 安全密钥上保护数据?

FIDO2 安全密钥具有安全 enclaves,用于保护存储在其中的私钥。 FIDO2 安全密钥还包含内置的反攻击属性,如 Windows Hello 中,你无法在其中提取私钥。

FIDO2 安全密钥的注册如何工作?

有关如何注册和使用 FIDO2 安全密钥的详细信息,请参阅启用无密码安全密钥登录

管理员是否有办法直接为用户预配密钥?

目前不行。

注册 FIDO2 密钥时,为什么在浏览器中收到“NotAllowedError”?

你将从 fido2 密钥注册页收到“NotAllowedError”。 当 Windows 针对安全密钥尝试 CTAP2 authenticatorMakeCredential 操作时,通常会发生此错误。 你将在 Microsoft-Windows-WebAuthN/Operational 事件日志中看到更多详细信息。

先决条件

如果没有 Internet 连接,此功能是否起作用?

Internet 连接是启用此功能的先决条件。 用户首次使用 FIDO2 安全密钥登录时,必须具有 Internet 连接。 对于后续登录事件,缓存的登录应正常工作,并让用户在没有 Internet 连接的情况下进行身份验证。

为实现一致的体验,请确保设备能够访问 Internet,并且可以看到 DC。

需要对 Microsoft Entra ID 开放哪些特定的终结点?

注册和身份验证需要以下终结点:

  • *.microsoftonline.com
  • *.microsoftonline-p.com
  • *.msauth.net
  • *.msauthimages.net
  • *.msecnd.net
  • *.msftauth.net
  • *.msftauthimages.net
  • *.phonefactor.net
  • enterpriseregistration.windows.net
  • management.azure.com
  • policykeyservice.dc.ad.msft.net
  • secure.aadcdn.microsoftonline-p.com

有关使用 Microsoft 在线产品所需的终结点的完整列表,请参阅 Office 365 URL 和 IP 地址范围

如何确定 Windows 10 设备的域加入类型(已建立 Microsoft Entra 联接或已建立 Microsoft Entra 混合联接)?

要检查 Windows 10 客户端设备是否具有正确的域加入类型,请使用以下命令:

Dsregcmd /status

以下示例输出显示设备已建立 Microsoft Entra 联接,因为 AzureADJoined 设置为“是”:

+---------------------+
| Device State        |
+---------------------+

AzureADJoined: YES
EnterpriseJoined: NO
DomainedJoined: NO

以下示例输出显示设备已建立 Microsoft Entra 混合联接,因为 DomainedJoined 也设置为“是”。 还显示了“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 对本地资源的高特权帐户进行签名的权限。

要取消阻止帐户,请使用“Active Directory 用户和计算机”来修改 Microsoft Entra Kerberos 计算机对象(CN=AzureADKerberos,OU=Domain Controllers,<域 DN>) 的 msDS-NeverRevealGroup 属性。

揭秘

Microsoft Entra Kerberos 如何链接到我的本地 Active Directory 域服务环境?

有两个部分:本地 AD DS 环境和 Microsoft Entra 租户。

Active Directory 域服务 (AD DS)

Microsoft Entra Kerberos 服务器在本地 AD DS 环境中表示为域控制器 (DC) 对象。 此 DC 对象由多个对象组成:

  • CN=AzureADKerberos,OU=Domain Controllers,<domain-DN>

    表示 AD DS 中的只读域控制器的“计算机”对象。 没有与此对象相关联的计算机。 它只是 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 对象。

例如,可能有一个包含两个域(例如 contoso.comfabrikam.com)的 AD DS 林。 如果允许 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。

有关详细信息,包括如何查看对象的说明,请参阅创建 Kerberos 服务器对象

为什么我们无法将公钥注册到本地 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。 实用工具包含用于在 AD DS 中创建 Kerberos 服务器对象的 PowerShell 模块,并将其发布到 Microsoft Entra ID 中。

请求 PRT + 部分 TGT 时,HTTP 请求/响应会出现什么情况?

HTTP 请求是标准的主刷新令牌 (PRT) 请求。 此 PRT 请求包括一个声明,指出需要 Kerberos 票证授予票证 (TGT)。

声明 说明
tgt 声明指出客户端需要 TGT。

Microsoft Entra ID 将加密的客户端密钥和消息缓冲区合并为 PRT 响应作为附加属性。 有效负载使用 Microsoft Entra 设备会话密钥进行加密。

字段 类型​​ 说明
tgt_client_key string Base64 编码的客户端密钥(机密)。 此密钥是用于保护 TGT 的客户端机密。 在此无密码方案中,客户端密码由服务器作为每个 TGT 请求的一部分生成,然后在响应中返回给客户端。
tgt_key_type int 本地 AD DS 密钥类型,用于客户端密钥和 KERB_MESSAGE_BUFFER 中包括的 Kerberos 会话密钥。
tgt_message_buffer string Base64 编码的 KERB_MESSAGE_BUFFER。

用户是否需要是域用户 Active Directory 组的成员?

是的。 用户必须位于域用户组中,才能使用 Microsoft Entra Kerberos 进行登录。

后续步骤

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