本文讨论 Kerberos 林搜索顺序(KFSO)在外部信任中不起作用的情况。
适用于: 支持的 Windows Server 版本原始 KB 数: 2977475
现象
在受支持的 Windows Server 版本中,可以使用以下组策略设置来配置 KFSO:
计算机配置 ** \ 管理模板** ** \ 系统** \ Kerberos \ 使用林搜索顺序
计算机配置 \ 管理模板 ** \ 系统** \ KDC \ 使用林搜索顺序
配置这些设置后,Kerberos 身份验证可以在单域林环境中的外部信任中工作。 但是,当指定的林包含多个域时,它可能会失败。
在这种情况下,InitializeSecurityContext 可能会返回“SEC_E_TARGET_UNKNOWN”。此外,可能会记录以下事件。
原因
KFSO 功能提供了在林信任环境中允许短名称(主机名)服务主体名称(SPN)解析的便利性,而不是提供对外部信任的 Kerberos 身份验证的支持。
如果需要 Kerberos 身份验证,则需要林信任。 在外部信任中,必须更改应用程序以使用 FQDN 服务器名称和由三部分构成的 SPN。 有关详细信息,请参阅 联合多个林的技术。
使用 FQDN 名称时,林信任对象可以根据请求中提供的 UPN/SPN 后缀提供 SPN 路由,以便密钥分发中心 (KDC) 知道 Kerberos 引用过程中的下一跃点。
详细信息
在配置 KFSO 的外部信任环境中,KDC 或 Kerberos 客户端尝试追加指定的后缀进行搜索,然后针对目标林发出 DsCrackNames 请求,以便解决请求的 SPN。 但是,DsCrackNames 请求可能会尝试连接到目标林中的任何全局目录。 如果请求联系直接受信任的域中的域控制器,则 Kerberos 身份验证可能会成功。 如果请求联系另一个域中的域控制器,则 Kerberos 身份验证可能会失败。
此行为是预期的,因为 KFSO 并非旨在通过外部信任提供 Kerberos 身份验证支持。 若要在林之间使用 Kerberos 信任,请改为创建林信任。