我正在尝试访问受密码保护的网站。它没有使用基本身份验证(即使在firefox中弹出相同的用户/传递框),因为响应头是WWW-Authenticate: Negotiate
。
我希望通过发送正确的标头来自动执行登录过程。
基本上你会使用类似的东西:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
我会用什么来进行谈判?
答案 0 :(得分:37)
将此信息放在此处以供将来读者使用。
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标头字段语法不兼容的语法) 只有在401挑战中还有Authorization: Basic
标题时,您才可以设置WWW-Authenticate: Basic
标题。
但是,由于您有WWW-Authenticate: Negotiate
,因此基于Kerberos的身份验证应该是这种情况。
答案 1 :(得分:28)
Web服务器正在提示您输入SPNEGO(简单且受保护的GSSAPI协商机制)令牌。
这是微软的一项发明,用于协商一种用于Web SSO(单点登录)的身份验证:
请参阅: