有没有人有任何在HTTP身份验证中支持多个领域的经验?
Microsoft网站声明:
每个身份验证响应标头 包含可用的身份验证 计划和领域。如果多个 支持身份验证方案, 服务器返回多个 验证响应标头。该 领域值是区分大小写的 定义了一个保护空间 代理或服务器。例如, 标题“WWW-Authenticate:Basic Realm =“example”“就是一个例子 服务器返回的标头 验证是必需的。
这表明可以使用不同的身份验证方法保护网站的不同区域。我们感到困惑的是如何确定服务器响应客户端请求时应该声明的域。
有没有人有多个领域如何运作的例子?
答案 0 :(得分:10)
HTTP specification允许多个WWW-Authenticate
质询出现在响应中,可以在同一个WWW-Authenticate
标头内,也可以在同一响应中使用多个WWW-Authenticate
标头。< / p>
如RFC 2617, section 4.6所述,存在与此相关的问题。从理论上讲,客户端必须选择最强大的身份验证机制,但是,定义哪一个最强,并不总是显而易见的。
我从未尝试过多个领域(和相同的方案,例如Basic),但我不知道任何禁止它的东西。多领域和相同方案的主要问题是浏览器可能在用户界面方面感到困惑,特别是对用户提出挑战的领域。
答案 1 :(得分:5)
在使用sharepoint站点时,我有一个使用多个身份验证标头的好例子。 首先连接时,Sharepoint提供Negotiate和NTLM。
Firefox选择NTLM,但Chrome选择Negotiate。
由于NTLM挑战 - 响应协议,Chrome也会始终仅在开始时发送授权标头以及其他请求。请参阅此处更多解释http://www.innovation.ch/personal/ronald/ntlm.html