代码之家  ›  专栏  ›  技术社区  ›  Seph

确定web http身份验证方法

  •  11
  • Seph  · 技术社区  · 14 年前

    3 回复  |  直到 14 年前
        1
  •  11
  •   Remus Rusanu    14 年前

    当您发送未经验证的请求时,服务必须以“HTTP/1.1 401 Unauthorized”响应,并且响应包含 WWW-Authenticate 指定需要什么身份验证方案的标头( Basic , Digest ),安全域和任何其他特定值(如Digets的nonce)。因此,如果服务器响应:

    HTTP/1.0 401 Unauthorized
    WWW-Authenticate: Digest realm="example.com",
                            qop="auth,auth-int",
                            nonce="...",
                            opaque="..."
    

    它需要一个摘要认证。如果响应如下所示:

    HTTP/1.0 401 Unauthorized
    WWW-Authenticate: Basic realm="example.com"
    

    然后它需要一个基本的身份验证。一些(实施不善的)服务器/站点没有正确处理基本问题,直接用403 Forbidden来响应,而不是先质询。

    NTLM与服务器用401和WWW Authenticate报头进行响应的情况类似 NTLM ,但没有官方的公开规范,因为它是微软专有的。有各种各样的 reverse engineered 描述。

    不幸的是,REST没有提供WSDL样式的服务描述来发现所使用的身份验证方案 先验的 .

        2
  •  4
  •   Alex Martelli    14 年前

    WWW-Authenticate 标题(根据 RFC 2616 MUST 包括。如果你得到的是403或者其他奇怪的状态,或者是失踪 头,你诅咒那些不遵循核心httprfc的网站作者,并开始嗅探流量,试图对他们所做的非标准混乱进行反向工程 时间;-)。

        3
  •  1
  •   kbrimington    14 年前

    如果是黑匣子的话,我通常会和 Fiddler