一旦通过身份验证,HTTP 1.1 授权标头就会随每个请求一起发送到域内的每个资源

Posted

技术标签:

【中文标题】一旦通过身份验证,HTTP 1.1 授权标头就会随每个请求一起发送到域内的每个资源【英文标题】:Once authenticated the HTTP 1.1 Authorization header is sent with every request to every resource within domain 【发布时间】:2011-03-25 09:32:18 【问题描述】:

我遇到的情况是,即使请求授权信息的初始 401 身份验证响应包含与服务器上的特定资源相关联的领域,也会将 http 1.1 授权标头发送到给定域下的每个资源。

我从 http 1.1 规范中了解到,浏览器可以先发制人地将 Authorization 标头发送到它已经对其进行身份验证的资源。

客户端可以抢先发送 相应的 Authorization 标头,其中包含对资源的请求 该空间没有收到来自服务器的另一个挑战。 http://www.ietf.org/rfc/rfc2617.txt

但是,浏览器似乎正在使用 Authorization 标头抢占域下的每个资源。

我在使用 Opera 11.1、IE[7,8]、Firefox 3.x 时遇到了相关域和资源的这种行为,这让我有信心(尽管不是 100%)这不是浏览器错误。

值得一提的是,服务器将与相关领域关联的资源显示为由 Apache 2.0 下的“别名”指令管理的虚拟资源,因此对于受保护资源“/x”,apache 配置为:

Alias /x "/absolute/linux/filesystem/path"

<Directory "/absolute/linux/filesystem/path">
...
AuthName     "y"
AuthType Basic
...
</Directory> 

我有一个完全不受支持的理论,其中问题与 apache 将“/x”作为虚拟资源呈现这一事实有关。我想知道这是否最终将领域映射到“/”而不是“/x”。我从浏览器抢占每个资源的 Authorization 标头这一事实得出这个结论。

如果有人能指出我正确的方向,我将不胜感激,因为我可能在设置中错误配置了某些内容。

为简洁起见,我省略了某些信息(例如模块版本等),如果需要,请询问,我将非常乐意提供。

感谢阅读。

克里斯

【问题讨论】:

【参考方案1】:

在此处回答 Apache 用户邮件列表:http://httpd.markmail.org/search/?q=HTTP%201.1%20Authentication#query:HTTP%201.1%20Authentication+page:1+mid:vrkhnxuhynchdmp5+state:results

【讨论】:

以上是关于一旦通过身份验证,HTTP 1.1 授权标头就会随每个请求一起发送到域内的每个资源的主要内容,如果未能解决你的问题,请参考以下文章

laravel 中 jwt 身份验证中授权标头的作用

HTTP 请求未经客户端身份验证方案“基本”授权。从服务器收到的身份验证标头为“基本领域 =”

HTTP 请求未经客户端身份验证方案“匿名”授权。从服务器收到的身份验证标头是“基本领域”

HTTP 请求未经客户端身份验证方案“协商”的授权。从服务器收到的身份验证标头是“NTLM”

HTTP 请求未经客户端身份验证方案“基本”授权。从服务器收到的身份验证标头是“协商,NTLM”

HTTP 错误 401.2 - 未经授权 由于身份验证标头无效,您无权查看此页面