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

时间:2010-01-27 23:01:15

标签: authentication kerberos ntlm

我必须访问http://someserver的网络服务器,并且需要进行一些身份验证。 如何判断它是否使用NTLM,Kerberos或其他任何东西?

3 个答案:

答案 0 :(得分:12)

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

如果它以Negotiate TlR开头,则表示您正在通过NTLM进行SPNEGO

如果它以Negotiate YII开头,那么你就是通过Kerberos进行SPNEGO。

捐赠

答案 1 :(得分:6)

使用Fiddler之类的工具查看响应标头。服务器将发回一些“WWW-Authenticate”标头,列出支持的不同安全协议。

答案 2 :(得分:4)

延长Grant Cermak的答案:

WWW-Authenticate标头是base64编码的。当它以TlR开始时,在解码之后,我们看到它以NTLMSSP(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。

卡米尔& SPL