了解基本 WWW 身份验证中“领域”的目的
Posted
技术标签:
【中文标题】了解基本 WWW 身份验证中“领域”的目的【英文标题】:Understanding the purpose of "realm" in Basic WWW Authentication 【发布时间】:2014-04-19 15:51:38 【问题描述】:我很难理解用于基本 HTTP 身份验证的 WWW-Authenticate
标头中“领域”值的用途。
This question 询问“领域”值是什么 - 答案似乎很简单。 “领域”有点像命名空间,表示受保护资源的集合。
好的,所以我明白了抽象的概念。但在实践中,尤其是从 HTTP 客户端的角度来看,“领域”实际上有什么帮助?
通过 HTTP 进行身份验证时,基本工作流程似乎是:
(1) 服务器以WWW-Authenticate
的形式发出质询
标题
(2) 客户端以 Authorization
标头响应,以及
包含用户名和密码的 base64 编码字符串。
(3) 客户端现在被授予访问权限(如果凭据错误,则拒绝访问)
那么在哪里客户端应该关心服务器发送的“领域”值?
据我了解,如果客户端想要再次访问受保护的资源,唯一需要做的就是再次发送“授权”标头。那么……再一次,“领域”是如何参与到这一切中的?
为了清楚起见...我从概念上理解什么是“领域”...我只是不明白 HTTP 客户端在实践中是如何使用它的。
【问题讨论】:
【参考方案1】:我只是不明白 HTTP 客户端在实践中是如何使用它的。
当领域保持不变时,浏览器不会要求用户提供凭据。因此,如果您登录到提供特定领域值的http://example.com/ApplicationA
,那么使用相同领域的http://example.com/ApplicationB
可以重用用户为应用程序 A 输入的凭据,因为它们的“规范根 URL”是相同的(http://example.com)
,所以浏览器不必再次弹出凭据表单。
不过,浏览器的实现方式似乎有所不同,这取决于 URI 的哪些部分发生了变化,即使领域和规范根 URL 保持不变,一些将再次要求提供凭据。
【讨论】:
但是服务器不会在每次响应时都发送领域,对吧?仅当用户未通过身份验证时。以上是关于了解基本 WWW 身份验证中“领域”的目的的主要内容,如果未能解决你的问题,请参考以下文章
HTTP 请求未经客户端身份验证方案“匿名”授权。从服务器收到的身份验证标头是“基本领域”