理解"领域的目的"在基本WWW身份验证中

时间:2014-04-19 15:51:39

标签: security http authentication http-headers authorization

我很难理解用于基本HTTP身份验证的WWW-Authenticate标头中“领域”值的用途。

This question 询问“领域”值是什么 - 答案似乎非常简单。 “领域”有点像命名空间,表示受保护资源的集合。

好的,所以我得到了抽象的概念。但在实践中,特别是从HTTP客户端的角度来看,“领域”实际上有何帮助?

通过HTTP进行身份验证时,基本工作流程似乎是:

  • (1)服务器以WWW-Authenticate的形式发出挑战 标题

  • (2)客户端响应Authorization标题,以及 包含用户名和密码的base64编码字符串。

  • (3)客户现在被授予访问权限(如果凭据错误则被拒绝)

所以其中中的哪一个应该是客户端必须关心服务器发送的“领域”值?

我的理解是,如果客户端想要再次访问受保护资源,则唯一需要的是再次发送“授权”标头。所以...再次,“领域”如何发挥所有这一切?

为了清楚起见......我理解“领域” 在概念上是什么......我只是看不到HTTP客户端在实践中如何使用它。

1 个答案:

答案 0 :(得分:6)

  

我只是不知道HTTP客户端在实践中如何使用它。

当领域保持不变时,浏览器不会要求用户提供凭据。因此,如果您登录到提供某个领域值的http://example.com/ApplicationA,那么使用相同领域的http://example.com/ApplicationB可以重复使用用户为应用程序A输入的凭据,因为他们的"规范根URL"是相同的(http://example.com),因此浏览器不必再次弹出凭证表单。

浏览器似乎以不同的方式实现了这一点,这取决于URI的哪些部分发生了变化,某些再次要求提供凭据,即使领域和规范的根URL保持不变。