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"