在配置 kerberos 委派时,我对 IIS 10 中的 Windows 身份验证的理解存在差距。
对于访问 Web 服务器(IIS,启用了 Windows 身份验证)且无需担心委派方案或自定义 SPN 的客户端,这就是我解释 kerberos 身份验证的方式:
客户端向 KDC 请求 TGT(和会话密钥)。
收到 TGT 后,客户端使用它向 TGS 请求与 Web 服务器主机名匹配的 SPN 的服务票证。(HTTP/name.company.com)。
客户端库64对服务票据进行编码,并将其插入作为发送到网络服务器进行验证的请求的WWW验证标头。Web 服务器可以对其进行解密以验证客户端的身份。
这些服务器故障帖子(MSSQLSvc 服务主体名称、Kerberos 和 NTLM)和此帖子(为什么在 IIS 中使用 Kerberos 而不是 NTLM?)似乎暗示,如果 TGS 在步骤 #2 中找不到 SPN,客户端将回退使用 NTLM 协议(而不是 Kerberos)对 IIS Web 服务器进行身份验证。
我的问题:
我似乎很困惑在我描述的这个场景中是使用 Kerberos 进行身份验证还是 NTLM - 我一直认为 IIS 使用 kerberos 进行开箱即用的 Windows 身份验证。
步骤 2 中的服务票证 - 我认为服务票证仍会被发回,尽管它不包含 SPN?