1

我在我的 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 中明确允许。

4

1 回答 1

-1

那个标头是 HTTP 1.0,醒醒,快进 15 年,你的问题就会消失。Firefox 与 SPNEGO 配合得非常好。

于 2019-04-27T22:41:46.440 回答