为什么我的客户端在从 KDC 获取 Kerberos 票证之前发送 HTTP 请求

为什么我的客户端在从 KDC 获取 Kerberos 票证之前发送 HTTP 请求

几天来我一直在尝试让 squid 运行 kerberos,但非常痛苦。我仔细检查了所有配置文件,它们似乎都正常。

这是我的问题,今天我用 wireshark 捕获了数据包,我发现我的客户端浏览器发送并获取了 HTTP 数据包在买票之前来自KDC。

我可以通过 squid 连接互联网,但它使用 NTLM 而不是 Kerberos,我认为授权会回退到 NTLM,因为它会尝试 Kerberos Auth它从 KDC 获取票证。(它可以稍后再获取票证)

什么原因导致 KDC 在认证期间无法发送票证?

如果需要,您可以获取完整的 wireshark 日志从这里
更新:请更新 wireshark 日志检查一下而不是第一个

更新2:鱿鱼配置文件:http://pastebin.com/k1pafHfH

多谢。

答案1

在您发送的跟踪中,我没有看到代理对身份验证提出质询。我看到的唯一 Kerberos 流量是发给 test1 的领域:LABRISTEST.COM 的 TGT。

如果代理强制执行身份验证,我期望代理返回“StatusCode: 407,需要代理身份验证”的跟踪。请参阅http://technet.microsoft.com/en-us/library/bb984870.aspx例如代理需要身份验证的可能跟踪。

我没有看到任何基于 NTLM 或 Kerberos 的代理身份验证。

客户端仅在必要时才会请求票证(即代理说需要身份验证)。在此之前,它不知道要请求什么票证,因此会匿名尝试。因此,在匿名访问代理后,您应该会看到票证请求。而且,只有当客户端本地没有缓存票证时,才会看到票证请求。还有一种情况是,尽管本地没有缓存票证,但由于负面缓存(缓存了上一次票证请求失败的事实),您也看不到请求。

我还注意到您没有使用 IE(UserAgent:Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0)进行测试。我建议您使用 IE 进行测试,除非您确定 Firefox 已配置为正确响应身份验证请求。

更新(1 月 16 日): 在收集跟踪信息之前,您应该始终刷新 DNS 缓存 (ipconfig /flushdns) 和 kerberos 缓存。这样可以看到与 KDC 检测相关的 DNS 流量和 kerberos 票证请求成功/失败。

了解如何在浏览器中配置代理设置也很重要,因为这对请求的票证有一定的影响。代理端口似乎是 3128,名称是 labris-1。因此,您可能需要在代理服务使用的 AD 对象上注册 http/labris-1:3128 和 http/labris-1.labristest.com:3128 SPN。您还需要从http://support.microsoft.com/default.aspx?scid=kb;EN-US;908209对于所有高于 V6 的 IE。确保 keytab 已更新并且可以在 squid 服务器上访问。

相关内容