13

有没有人有在 HTTP 身份验证中支持多个领域的经验?

微软网站声明:

每个身份验证响应标头都包含一个可用的身份验证方案和一个领域。如果支持多个身份验证方案,则服务器返回多个身份验证响应标头。领域值区分大小写,并定义代理或服务器上的保护空间。例如,标头“WWW-Authenticate: Basic Realm="example"" 将是需要服务器身份验证时返回的标头示例。

这表明可以使用不同的身份验证方法来保护网站的不同区域。我们困惑的是如何确定在服务器对客户端请求的响应中应该说明什么领域。

有没有人有多个领域如何工作的例子?

4

2 回答 2

10

HTTP 规范允许在一个响应中出现多个质询WWW-Authenticate,无论是在同一个WWW-Authenticate标​​头中还是在同一响应中使用多个WWW-Authenticate标头。

RFC 2617 第 4.6 节所述,存在与此相关的问题。理论上,客户端必须选择可用的最强身份验证机制,然而,定义哪个是最强的并不总是显而易见的。

我从未尝试过使用多个领域(以及相同的方案,例如 Basic),但我不知道有什么不允许它。多个领域和相同方案的主要问题是浏览器可能会在用户界面方面感到困惑,特别是它挑战用户的领域。

于 2010-08-26T15:08:31.847 回答
5

在使用共享点站点时,我有一个使用多个身份验证标头的好例子。第一次连接时,Sharepoint 提供协商和 NTLM。

Firefox 选择 NTLM,但 Chrome 选择协商。

这也是 Chrome 将始终与其他请求一起发送授权标头的结果,但由于 NTLM 挑战响应协议,Firefox 仅在开始时发送。看这里更多解释http://www.innovation.ch/personal/ronald/ntlm.html

于 2013-04-09T06:33:14.077 回答