我想访问受密码保护的网站。它不使用基本身份验证(即使在Firefox中弹出相同的用户/传递框),因为响应标头为WWW-Authenticate: Negotiate
。身份验证问题与WWW身份验证:协商
我想通过发送正确的标题来自动登录过程。
在基本的,你会使用类似:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
我会用什么来谈判?
我想访问受密码保护的网站。它不使用基本身份验证(即使在Firefox中弹出相同的用户/传递框),因为响应标头为WWW-Authenticate: Negotiate
。身份验证问题与WWW身份验证:协商
我想通过发送正确的标题来自动登录过程。
在基本的,你会使用类似:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
我会用什么来谈判?
Web服务器正在提示您输入SPNEGO(简单和受保护的GSSAPI协商机制)令牌。
这是用于协商类型的认证的用于Web SSO(单点登录)一个微软发明:
参见:
在我正在使用的其中一个应用程序中,ADFS服务器在具有值的响应中响应两个WWW-Authenticate标头字段 WWW-Authenticate:Negotiate WWW-Authenticate:NTLM 第一个带“Negotiate”意思?从提琴手怎么能弄清楚什么认证协议最终被使用? – 2014-06-12 10:34:06
这里把这些信息用于未来的读者的利益。
401 (Unauthorized) response header - >请求认证头
这里有几个WWW-Authenticate
response headers。 (完整名单是在IANA:HTTP Authentication Schemes。)
WWW-Authenticate: Basic
- >授权:基本+令牌 - 对于基本身份验证WWW-Authenticate: NTLM
- >授权:NTLM +令牌(2个挑战)WWW-Authenticate: Negotiate
- >授权:协商+令牌 - 用于Kerberos认证
Negotiate
:此认证方案违背了HTTP的语义(即连接面向)和语法(使用与WWW-Authenticate和Authorization头域语法不兼容的语法)。只能设置Authorization: Basic
头,当你也有你的401挑战WWW-Authenticate: Basic
头。
但是既然你有WWW-Authenticate: Negotiate
这应该是基于Kerberos的认证的情况。
WWW-Authenticate:Negotiate标头意味着服务器可以使用NTLM或Kerberos(至少在Windows 7和Win 2008 Server之前的操作系统(当添加其他安全支持提供程序时)用于身份验证和加密。在这种NTLM的情况下,协商需要在安全会话建立之前交换多个消息(质询/响应),因此从头开始不会发送“正确的头”。 您可以在http://msdn.microsoft.com/en-us/library/aa378748%28VS.85%29.aspx(由Microsoft提供的SSP软件包)中找到有关您的问题的详细信息。 – 2010-11-24 12:10:01