【问题标题】:HTTP Authentication - WWW-Authenticate header - multiple realmsHTTP 身份验证 - WWW-Authenticate 标头 - 多个领域
【发布时间】:2010-08-26 14:38:11
【问题描述】:

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

微软网站声明:

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

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

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

【问题讨论】:

    标签: http-authentication


    【解决方案1】:

    HTTP specification 允许在响应中出现多个 WWW-Authenticate 质询,可以在同一个 WWW-Authenticate 标头中,也可以在同一响应中使用多个 WWW-Authenticate 标头。

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

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

    【讨论】:

    • 关于多个 WWW-Authenticate 挑战,是否使用多个 WWW-Authenticate 标头或在同一个 WWW-Authenticate 标头中具有多个挑战是否达成共识?
    • 根据规范,它应该是等价的,因此符合标准的用户代理应该支持两者。他们是否在实践中这样做,我不确定。
    • 为了完整性 - 不同浏览器中一些测试的链接:greenbytes.de/tech/tc/httpauth
    【解决方案2】:

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

    Firefox 选择 NTLM,但 Chrome 选择 Negotiate。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-21
      • 2018-04-13
      • 2011-05-15
      • 2012-08-04
      • 2015-08-12
      相关资源
      最近更新 更多