我在我的Web应用程序中使用gssapi / Kerberos身份验证,我希望通过浏览器进行单点登录。
问题是,Firefox在没有身份验证的情况下向服务器发送初始请求,并收到401.但它包含一个keep-alive标头:
Connection: keep-alive
如果服务器尊重此保持活动请求,并返回WWW-Authenticate标头,则Firefox会正常运行并发送本地用户的Kerberos凭据,一切正常。
但是,如果服务器没有保持连接活动,Firefox将不会发送带有凭据的另一个请求,即使响应具有WWW-Authenticate标头。
这是一个问题,因为我正在使用Django,而Django不支持keep-alive协议。
有没有办法让Firefox在没有keep-alive的情况下进行协商?在the RFC that defines the Negotiate extension中,没有任何关于要求重复使用相同连接的内容。
或者,有没有办法让Firefofx在第一次请求时抢先发送凭据?这在RFC中是明确允许的。
该标题是HTTP 1.0,唤醒,快进15年,你的问题将消失。 Firefox与SPNEGO非常合作。