我可以向客户表明支持SPNEGO但NTLM不支持HTTP请求吗?

微软利用我目前所知的两个WWW-Authenticate新增功能 NTLM 谈判 如果从服务器发送Negotiate,则基于一组条件将使用Kerberos 内联网区域 使用主机名而不是IP访问服务器 IE中的集成Windows身份验证已启用,主机在Firefox中受信任 服务器不是浏览器的本地服务器 客户端的Kerberos系统通过域控制器进行身份验证 然后将在服务器和客户端之间尝试Kerberos,如果不满足上述条件,则将尝试NTLM。 我的问题是,是否有一些方法让服务器指示不应该发送NTLM?我目前通过跟踪会话中的请求来处理这个问题,如果收到NTLM消息,它会在剩余的会话生命周期内禁用Kerberos和WWW-Authenticate。     
已邀请:
最初的
WWW-Authenticate
标题仅指定
negotiate
。它不能再说什么了,比如“没有NTLM”。 我认为可以响应客户端用
401 unauthorized
和第二个
Negotiate
头发送的第一个Authenticate:{Base64 NTLMSSP}头,它可以包含一个响应令牌,可能包括一个指定Kerberos的
SupportedMechanisms
。 但我怀疑这只会让你
"unauthorized"
,因为它首先会回到NTLM。     
是的你可以。请查看SPNEGO HTTP Servlet Filter项目的参考文档。     
你可以这样做,(至少在理论上)是的。 IE可能会做完全奇怪的事情,例如在没有适当的SPNEGO ASN.1封装的情况下发送Kerberos令牌,但是,这是一个不同的主题。在符合要求的SPNEGO(http://tools.ietf.org/html/rfc4178#section-4.1)实现中,您可以这样做。 如果您可以将NegTokenInit mechTypes成员操作为仅包含Kerberos,则会强制客户端发送Kerberos或无法进行身份验证。     

要回复问题请先登录注册