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