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

如何判断服务器使用的身份验证类型?

  •  5
  • Matt  · 技术社区  · 14 年前

    我必须访问位于的Web服务器 http://someserver 它需要一些身份验证。 我怎样才能知道它是使用NTLM、Kerberos还是其他什么工具?

    3 回复  |  直到 10 年前
        1
  •  6
  •   David    14 年前

    使用类似工具 Fiddler 查看响应头。服务器将发送一些“www-authenticate”头,列出支持的不同安全协议。

        2
  •  12
  •   Grant Cermak    14 年前

    另一种方法是查看头的前几个字节。

    如果它以 Negotiate TlR 然后你在做SPNEGO而不是NTLM

    如果它以 Negotiate YII 然后你在用spnego代替kerberos。

    补助金

        3
  •  4
  •   greenmarker    10 年前

    要扩展Grant Cermak的回答:

    WWW认证头是base64编码的。当它以TLR开始时,在解码之后,我们看到它以NTLMSP开始。( http://msdn.microsoft.com/en-us/library/cc236641.aspx )所以我们知道这是NTLM。

    当它以yii开始时,解码后我们看到它以字节0x60、0x82(即应用程序构造的对象)开始,那么整个令牌的长度有两个字节,然后有:0x06、0x06、0x2B、0x06、0x01、0x05、0x05、0x02(即spnego-oid:1.3.6.1.5.5.2)。 ( http://msdn.microsoft.com/en-us/library/ms995330.aspx )我们知道这是一个spnego标记。

    根据spnego令牌的长度,www-authenticate头可以从ya开始到yp。

    Kamil&spl公司