我在我的 Web 应用程序中使用 gssapi/Kerberos 身份验证,并且我希望通过浏览器进行单点登录。
问题是,Firefox 在没有身份验证的情况下向服务器发送了一个初始请求,并收到了 401。但它包含一个 keep-alive 标头:
Connection: keep-alive
如果服务器尊重此保持活动请求并返回 WWW-Authenticate 标头,则 Firefox 行为正确并发送本地用户的 Kerberos 凭据,一切都很好。
但是,如果服务器不保持连接处于活动状态,Firefox 将不会发送带有凭据的另一个请求,即使响应具有 WWW-Authenticate 标头。
这是一个问题,因为我使用的是 Django,而 Django 不支持 keep-alive 协议。
有没有办法让 Firefox 在没有 keep-alive 的情况下进行协商?在定义 Negotiate extension 的 RFC 中,没有要求重新使用相同的连接。
或者,有没有办法让 Firefox 在第一次请求时抢先发送凭据?这在 RFC 中明确允许。