HTTP身份验证 - WWW-Authenticate标头 - 多个领域

13 http-authentication

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

微软网站声明:

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

这表明可以使用不同的身份验证方法来保护网站的不同区域.我们感到困惑的是如何确定服务器响应客户端请求时应该声明的域.

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

Bru*_*uno 10

HTTP规范允许多个WWW-Authenticate挑战存在于一个响应,或者是相同内WWW-Authenticate报头或使用多个WWW-Authenticate相同的响应内报头.

存在与此相关的问题,如RFC 2617第4.6节中所述.从理论上讲,客户端必须选择最强大的身份验证机制,但是,定义哪一个最强,并不总是显而易见的.

我从未尝试过多个领域(和相同的方案,例如Basic),但我不知道任何禁止它的东西.多领域和相同方案的主要问题是浏览器可能在用户界面方面感到困惑,特别是它挑战用户的领域.

  • 为了完整性 - 在不同浏览器中链接到某些测试:http://greenbytes.de/tech/tc/httpauth/ (3认同)

Mik*_*van 5

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

Firefox选择NTLM,而Chrome选择Negotiate。

这样做的结果是,由于NTLM挑战响应协议,Chrome将始终与其他请求一起发送Authorization标头,但Firefox仅在开始时发送。请参阅此处更多说明http://www.innovation.ch/personal/ronald/ntlm.html