WWW-Authenticate的身份验证问题:协商

我正在尝试访问受密码保护的网站。它没有使用基本身份验证(即使在firefox中弹出相同的用户/传递框),因为响应头是
WWW-Authenticate: Negotiate
。 我想通过发送正确的标头来自动化登录过程。 在基本的,你会使用类似的东西:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
我会用什么来进行谈判?     
已邀请:
Web服务器正在提示您输入SPNEGO(简单和受保护的GSSAPI协商机制)令牌。 这是Microsoft发明的用于协商用于Web SSO(单点登录)的身份验证的发明: NTLM 或Kerberos。 看到: Microsoft MSDN Library:使用协商协议进行基于HTTP的跨平台身份验证 RFC 4178:简单和受保护的通用安全服务应用程序接口(GSS-API)协商机制     
将此信息放在此处以供将来读者使用。 401(未授权)响应标头 - >请求认证标头 这里有几个
WWW-Authenticate
响应头。 (完整列表位于IANA:HTTP身份验证方案。)
WWW-Authenticate: Basic
->授权:基本+令牌 - 用于基本身份验证
WWW-Authenticate: NTLM
->授权:NTLM +令牌(2个挑战)
WWW-Authenticate: Negotiate
- >授权:协商+令牌 - 用于Kerberos身份验证 顺便说一句:IANA对这个愤怒的评论
Negotiate
:这种认证方案违反了HTTP语义(面向连接)和语法(使用与WWW-Authenticate和Authorization头字段语法不兼容的语法)。 只有在401挑战赛中还有
WWW-Authenticate: Basic
标题时,才能设置
Authorization: Basic
标题。 但是,因为你有
WWW-Authenticate: Negotiate
这应该是基于Kerberos的身份验证的情况。     

要回复问题请先登录注册