【问题标题】:What is the "realm" in basic authentication基本认证中的“领域”是什么
【发布时间】:2012-09-23 22:39:01
【问题描述】:

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

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

是请求的page页面吗?

【问题讨论】:

    标签: http basic-authentication digest-authentication


    【解决方案1】:

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

    realm 属性(不区分大小写)对所有文件都是必需的 发出挑战的身份验证方案。领域价值 (区分大小写),结合规范的根 URL 被访问的服务器,定义了保护空间。这些领域 允许将服务器上的受保护资源划分为一组 保护空间,每个都有自己的认证方案和/或 授权数据库。领域值是一个字符串,一般 由源服务器分配,可能有额外的语义 特定于身份验证方案。

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

    【讨论】:

    • 一些服务器在其身份验证挑战中不提供领域。
    • 当我使用 IIS 时,我为不同的虚拟文件夹(在同一个站点下)配置不同的领域。但我不确定这是否正确。但这似乎对我有用。当我访问不同领域的虚拟文件夹时,我确实收到了凭据提示。
    • 注意:RFC 2617 已由RFC 7235更新(未过时)
    【解决方案2】:

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

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

    当领域更改时,如果浏览器没有该特定领域的凭据,它可能会显示另一个弹出窗口。

    【讨论】:

    • 如何在领域下对页面进行分组?
    • @Green .htaccess 按层次结构划分,因此某个目录下的任何内容都可以被赋予相同的领域。
    • @Jack,我天真地认为具有给定领域的身份验证标头的所有页面都在该领域中,并且没有其他规则。我错了吗?
    【解决方案3】:

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

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

    2.2. Protection Space (Realm)

    “领域”身份验证参数保留供使用 希望指明保护范围的身份验证方案

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


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

    注意 2:realm 参数不再总是需要 challenges

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-08
      • 2010-12-24
      • 2010-09-26
      • 2013-03-12
      • 1970-01-01
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      相关资源
      最近更新 更多