HTTPQUERY
English

Proxy-Authenticate

用法

当客户端通过需要凭据的代理服务器发送请求时,代理会以 407 状态码响应,并包含 Proxy-Authenticate 头部。该头部告知客户端应使用哪种认证方案,并提供构造凭据所需的任何参数。

收到质询后,客户端会带上包含相应凭据的 Proxy-Authorization 头部重新提交请求。代理验证凭据,成功后将请求转发到目标服务器。

Proxy-Authenticate 头部作用于代理层面。用于源服务器认证的等价头部是 WWW-Authenticate,它触发的是 401 响应而非 407。

单个响应中出现多个 Proxy-Authenticate 头部,表示代理接受不止一种方案。客户端会选择双方都支持的最强方案。

scheme

scheme 值标识认证方法。常见值有 Basic、Digest、Bearer 和 Negotiate。已注册方案的完整列表由 IANA 维护。

realm

realm 参数是一个可选字符串,用于描述保护空间。客户端通常会在凭据提示框中显示 realm 值。省略时,客户端默认显示代理主机名。

方案特定参数

每种认证方案都定义了额外的参数。Digest 方案包含 nonce、qop、algorithm 和 opaque。Bearer 方案包含 scope 和 error。这些参数出现在头部值中的方案名称之后。

示例

要求 Basic 认证的代理会返回一个带有描述性 realm 的质询。realm 值告诉用户预期使用哪套凭据。

Proxy-Authenticate: Basic realm="Corporate Proxy"

支持 Digest 方案的代理会包含一个服务器生成的 nonce,以防止重放攻击。

Proxy-Authenticate: Digest realm="developer@github.com", nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", qop="auth"

提供多种认证方案的代理会将每一种列在单独的一行上。客户端会选取受支持的最强选项。

Proxy-Authenticate: Negotiate
Proxy-Authenticate: Basic realm="Internal Network"