基本身份验证中的“领域”是什么?

时间:2012-10-03 02:17:57

标签: http basic-authentication digest-authentication

我正在php网站上设置基本身份验证,并在php手册上找到显示设置的this页面。标题中的“领域”是什么意思?

header('WWW-Authenticate: Basic realm="My Realm"');

是否要求页面页面?

3 个答案:

答案 0 :(得分:255)

From RFC 1945 (HTTP/1.0)RFC 2617 (HTTP Authentication referenced by HTTP/1.1)

  

所有人都需要领域属性(不区分大小写)   发出挑战的认证方案。领域价值   (区分大小写),结合规范的根URL   正在访问的服务器,定义保护空间。这些领域   允许将服务器上受保护的资源分区为一个集合   保护空间,每个保护空间都有自己的认证方案和/或   授权数据库。领域值通常是一个字符串   由原始服务器分配,可能具有其他语义   特定于认证方案。

简而言之,同一领域中的页面应共享凭据。如果您的凭据适用于具有领域“我的领域”的页面,则应该假设相同的用户名和密码组合应该适用于具有相同领域的另一个页面。

答案 1 :(得分:105)

域可以被视为使用凭证的区域(不是特定页面,可以是一组页面);这也是浏览器弹出登录窗口时显示的字符串,例如

  

请输入<realm name>的用户名和密码:

当领域发生变化时,如果浏览器没有该特定领域的凭据,则可能会显示另一个弹出窗口。

答案 2 :(得分:12)

根据RFC 7235realm参数保留用于定义保护空间(需要凭据的页面或资源集),并且由身份验证方案使用表示保护范围

有关详细信息,请参阅下面的引文(RFC中没有重点):

  

2.2. Protection Space (Realm)

     

“realm”身份验证参数保留用于使用     希望表明保护范围的认证方案

     

保护空间由规范的根URI(方案)定义     和有效请求URI的权限组件)     正在访问的服务器,与     领域价值(如果存在)。 这些领域允许受保护     服务器上的资源被分区为一组保护     空间,每个空间都有自己的身份验证方案和/或授权     数据库。领域值是一个字符串,通常由     原始服务器,可以具有特定于其的附加语义     认证方案。请注意,响应可以有多个     使用相同的身份验证方案但具有不同领域的挑战。 [...]

注1: HTTP身份验证框架目前由RFC 7235定义,RFC 2617更新RFC 2616并使challenges过时。

注2: {{3}}不再需要realm参数。

相关问题