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

我一直在努力让鱿鱼kerberos跑几天,但是我很痛苦。 我有双重检查所有的configuration文件,他们似乎都行。

这里是我的问题,今天我用wireshark捕获了数据包,并且看到我的客户端浏览器从KDC 获取票据之前发送并获取HTTP数据包。

我可以通过鱿鱼连接互联网,但它使用NTLM而不是Kerberos,我认为授权将回退到NTLM,因为它从KDC获得票证之前尝试Kerberos Auth。 (以后可以买到票)

KDC可能会导致在authentication期间无法发送票证?

如果需要的话; 你可以从这里得到完整的wireshark日志。
更新:更新wireshark日志,请检查这而不是第一个

update2: squid conf文件: http : //pastebin.com/k1pafHfH

非常感谢。

我没有看到您发送的跟踪中的代理身份validation的挑战。 我看到的唯一的Kerberosstream量是Realm的TGT:LABRISTEST.COM颁发给test1。

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

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

客户只会要求票(如代理说需要授权)。 在此之前,它不知道什么样的门票要求和匿名尝试。 所以你应该在匿名访问代理之后看到一个票证请求。 而且,只有在客户端本地没有caching票证的情况下。 也有可能的是,尽pipe没有本地caching​​的票证,但是由于否定caching(caching之前的票证请求失败的事实),您看不到请求。

我也注意到你没有使用IE(UserAgent:Mozilla / 5.0(Windows NT 6.1; rv:8.0)Gecko / 20100101 Firefox / 8.0)来testing这个。 我build议你使用IE进行testing,除非你确定firefox被configuration为正确响应auth请求。

更新(1月16日):在收集跟踪之前,您应该总是先刷新DNScaching(ipconfig / flushdns)和kerberoscaching。 这允许看到KDC检测相关的DNSstream量和Kerberos票据请求成功/失败。

了解如何在浏览器中configuration代理设置也很重要,因为这在请求的票据中有一些说法。 代理端口显示为3128,名称为labris-1。 因此,您可能需要在代理服务使用的AD对象上注册http / labris-1:3128和http / labris-1.labristest.com:3128 SPN。 对于大于V6的所有IE,还需要从http://support.microsoft.com/default.aspx?scid=kb;EN-US;908209添加registry项。 确保在squid服务器上更新和访问密钥表。