为什么授权行会针对每个firefox请求进行更改?

时间:2012-06-22 07:45:40

标签: apache security firefox http-headers kerberos

使用Kerberos票证运行时,我注意到每个firefox请求在HTTP标头中都有不同的授权行。我加载了一个简单的页面,然后多次点击重新加载按钮,它永远不会相同。是什么导致这种行为?我原以为授权行在Kerberos凭据的持续时间内保持不变。 (注意,在启动firefox之前,我通过kinit命令获取了凭据。)

当身份验证方法为Basic时,firefox每次都会继续发送相同的base64字符串'user:password'。这是我期望的行为。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

嗯,这很奇怪。你有可能发布wireshark输出的snipptes。一种可能性是获得的服务票证不被缓存,FF获得服务票证。已经实现了客户端将获得服务但不缓存它的实现,而是每次需要时获取服务票据。有时这是因为该进程可能没有写权限,而且是相对便宜的操作(单次往返和对称加密数据)

答案 1 :(得分:0)

这是由于HTTP和Negotiate-Auth如何工作的各种限制。

HTTP最初设计为无状态协议,HTTP的身份验证系统假设该模型。它旨在在每个请求中进行完整的身份验证交换;例如,使用Basic,它会在每个请求中包含您的完整凭据。使用Negotiate-Auth和SPNEGO,同样如此:创建一个全新的GSS-API上下文,并对每个请求执行新的身份验证。

是的,这非常浪费。但是(当前)没有任何标准化的方式来进行一次身份验证,建立会话,然后将所有后续请求绑定到该会话(例如,IMAP,POP或ssh的方式)。 IETF在这方面有一些工作,但这是非常初步的。

票证被缓存;它每次都没有 做很多工作。但是服务器和客户端每次都要经历整个GSS-API会话舞蹈。