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

Sil*_*ler 4 security authentication authorization http http-headers

我很难理解WWW-Authenticate用于基本HTTP身份验证的标头中"realm"值的用途.

这个问题询问"领域"的价值是什么 - 答案似乎非常简单."领域"有点像命名空间,表示受保护资源的集合.

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

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

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

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

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

那么在任何一个地方应该关注服务器发送的"领域"值?

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

只是要清楚......我理解"领域" 概念上什么......我只是看不到HTTP客户端在实践中如何使用它.

Cod*_*ter 6

我只是看不到HTTP客户端在实践中如何使用它.

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

浏览器似乎以不同的方式实现这一点,这取决于URI更改的哪些部分将会再次请求凭据,即使领域和规范的根URL保持不变.

  • 但是服务器不会在每次响应时都发送领域,对吧?仅当用户未经过身份验证时。 (3认同)