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

Ray*_*ess 292 http basic-authentication digest-authentication

我在PHP网站设置基本身份验证,发现页面上显示的设置PHP手册.标题中的"领域"是什么意思?

header('WWW-Authenticate: Basic realm="My Realm"');
Run Code Online (Sandbox Code Playgroud)

是请求的页面页面吗?

Tim*_*per 269

来自RFC 1945(HTTP/1.0)RFC 2617(HTTP/1.1引用的HTTP身份验证)

发出质询的所有身份验证方案都需要域属性(不区分大小写).领域值(区分大小写)与正在访问的服务器的规范根URL相结合,定义了保护空间.这些领域允许将服务器上受保护的资源划分为一组保护空间,每个保护空间都有自己的身份验证方案和/或授权数据库.领域值是通常由源服务器分配的字符串,其可以具有特定于认证方案的附加语义.

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

  • 某些服务器在其身份验证挑战中没有提供领域. (7认同)
  • 当我使用IIS时,我为不同的虚拟文件夹(在同一站点下)配置不同的域.但我不确定这是否正确.但它似乎对我有用.当我访问不同领域的虚拟文件夹时,我确实获得了凭据提示. (5认同)

Ja͢*_*͢ck 109

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

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

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


cas*_*lin 13

根据RFC 7235,该realm参数保留用于定义保护空间(需要凭证的页面或资源集),并且认证方案使用它来指示保护范围.

有关更多详细信息,请参阅下面的引用(RFC中没有突出显示):

2.2.保护空间(领域)

"领域"认证参数保留供希望指示保护范围的认证方案使用.

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


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

注2:realm参数是不再总是需要的挑战.