Kerberos 身份验证的中的新功能

适用于:Windows Server 2022、Windows Server 2019、Windows Server 2016 和 Windows 10

KDC 支持基于公钥信任的客户端身份验证

从 Windows Server 2016 开始,KDC 支持一种公钥映射的方式。 如果为帐户预配了公钥,则 KDC 支持 Kerberos PKInit 显式使用该密钥。 由于没有证书验证,因此支持自签名证书,不支持身份验证机制保证。

无论 UseSubjectAltName 设置如何,在为帐户配置时,都首选密钥信任。

Kerberos 客户端和对 RFC 8070 PKInit Freshness Extension 的 KDC 支持

从 Windows 10 版本 1607 和 Windows Server 2016 开始,Kerberos 客户端尝试对基于公钥的登录使用 RFC 8070 PKInit Freshness Extension

从 Windows Server 2016 开始,KDC 可以支持 PKInit 新鲜度扩展。 默认情况下,KDC 不提供 PKInit Freshness Extension。 若要启用它,请在域中的所有 DC 上使用对 PKInit Freshness Extension KDC 管理模板策略设置的新 KDC 支持。 配置后,当域为 Windows Server 2016 域功能级别 (DFL) 时,支持以下选项:

  • 已禁用:KDC 永远不会提供 PKInit Freshness Extension,也不会在未检查新鲜度的情况下接受有效的身份验证请求。 用户永远不会收到新的公钥标识 SID。
  • 受支持:应请求支持 PKInit Freshness Extension。 成功使用 PKInit Freshness Extension 进行身份验证的 Kerberos 客户端收到新的公钥标识 SID。
  • 必需:成功进行身份验证需要 PKInit Freshness Extension。 使用公钥凭据时,不支持 PKInit Freshness Extension 的 Kerberos 客户端将始终失败。

已加入域的设备对使用公钥进行身份验证的支持

从 Windows 10 版本 1507 和 Windows Server 2016 开始,如果已加入域的设备能够向 Windows Server 2016 域控制器 (DC) 注册其绑定的公钥,则设备可以使用 Kerberos 身份验证通过公钥向 Windows Server 2016 DC 进行身份验证。 有关详细信息,请参阅已加入域的设备公钥身份验证

Kerberos 客户端允许在服务主体名称 (SPN) 中使用 IPv4 和 IPv6 地址主机名

从 Windows 10 版本 1507 和 Windows Server 2016 开始,Kerberos 客户端可以配置为支持 SPN 中的 IPv4 和 IPv6 主机名。

注册表路径:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos\Parameters

要在 SPN 中配置对 IP 地址主机名的支持,请创建 TryIPSPN 项。 默认情况下,注册表中不存在此项。 创建该项后,将 DWORD 值更改为 1。 如果未配置,则不会尝试 IP 地址主机名。

如果在 Active Directory 中注册 SPN,则 Kerberos 身份验证会成功。

有关详细信息,请参阅为 IP 地址配置 Kerberos 文档。

KDC 对密钥信任帐户映射的支持

从 Windows Server 2016 开始,域控制器支持密钥信任帐户映射以及回退到 SAN 行为中的现有 AltSecID 和用户主体名称 (UPN)。 当 UseSubjectAltName 设置为以下值时:

  • 0:需要显式映射。 然后,必须有以下任一项:
    • 密钥信任(Windows Server 2016 的新增功能)
    • ExplicitAltSecID
  • 1:允许隐式映射(默认):
    1. 如果为帐户配置了密钥信任,则可将其用于映射(Windows Server 2016 的新增功能)。
    2. 如果 SAN 中没有 UPN,则会尝试使用 AltSecID 进行映射。
    3. 如果 SAN 中有 UPN,则会尝试使用 UPN 进行映射。

另请参阅