如果 Kerberos 身份验证失败,它是否总是回退到 NTLM?
我浏览过许多博客,这些博客都说如果 Kerberos 失败,那么它会自动回退到 NTLM。这是真的吗?
I have gone through many blogs which are telling that if Kerberos fails then it automatically falls back to NTLM.Is it true?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
是的,如果您通过中央管理配置了 Kerberos。
在 IIS 元数据库中,您应该有“Negociate, NTLM”。
Yes it is, if you configured Kerberos through central administration.
In IIS metabase, you should have "Negociate, NTLM".
我认为客户端决定发送什么,服务器只是接受或拒绝。这意味着,根据服务器的要求,客户端可能会也可能不会遵守。因此,如果服务器说“协商”,客户端可以发送 NTLM 令牌或 Kerberos 令牌...?
如果您正在编写需要通过 Kerberos 对客户端进行身份验证的服务器,那么您将能够指定是否要接受或拒绝令牌,或者让客户端使用其他方案重试...例如 Basic(不推荐)。
如果您正在编写客户端,只需发送您想要的令牌(NTLM 或 Kerberos),服务器就会告诉您下一步要做什么(如果有的话,服务器可以接受)。
看一下这个开源项目 http://spnego.sourceforge.net 该项目实现了一个 SPNEGO Http Servlet过滤器以及 SpnegoHttpURLConnection 对象。
I think the client decides what to send and the server simply accepts or rejects. Meaning, based on what the server is asking for, the client may or may not be able to comply. So if the server says Negotiate, the client can send either an NTLM token or a Kerberos token...?
If you are writing a server that needs to authenticate clients via Kerberos, then you will be able to specify if you want to accept or reject the token, or have the client retry using some other scheme... like Basic (not recommended).
If you are writing a client, simply send which ever token you want (NTLM or Kerberos) and the server will tell you what to do next (if anything, server may accept).
Take a look at this open source project http://spnego.sourceforge.net The project implements a SPNEGO Http Servlet Filter as well as a SpnegoHttpURLConnection object.
实际上,这是 Kerberos 的一个很大的问题。是的,Negotiate 将在 Kerberos 和 NTLM 之间进行选择,但这是一次性选择。这不是故障转移身份验证。因此,如果 Kerberos 身份验证失败,服务器不会专门向客户端发送新的 NTLM 身份验证。
Actually, this is a pretty big gotcha with Kerberos. Yes, Negotiate will pick between Kerberos and NTLM, but this is a one time choice. It is not failover authentication. So if the Kerberos Authentication fails, the server won't specifically send a new NTLM authentication to the client.