为什么在IIS中使用Kerberos而不是NTLM?
这是我从未真正能够回答的问题:在IIS中使用Kerberos身份验证而不是NTLM的真正优势是什么? 我已经看到很多人真的很难设置它(包括我自己)并且我没有能够找到使用它的充分理由.必须有一些相当显着的优点,否则设置它不值得一试,对吧? 仅从 Windows的角度来看:NTLM >适用于外部(非域)和内部客户端 >使用域帐户,只有服务器需要直接连接到域控制器(DC) >要求客户端仅连接到IIS服务器(在站点端口上,没有别的.即一切都通过HTTP(或HTTPS)发生.) >您可以使用TLS / SSL解决其他问题 >需要多次往返进行身份验证,使用小数据包 >(日志模式为401.2,401.1,200用户名) >不能用于需要双跳认证的场景 >即,用户的凭证将被转发到另一台计算机上的服务 >支持旧客户端(< Win2000) >(不是“如果使用Curb拒绝访问”,Curb必须中断才能使用NTLM – 通常这看起来没有获得票证.如果客户获得票证并且它不完美,那么这不会导致后退.) Kerberos的 >仅适用于当前加入域的客户 >要求客户端连接到AD DC(tcp / udp 88)和服务器(客户端通过Curb端口从DC检索票证,然后使用HTTP提供给服务器) >可能能够遍历代理,但请参阅上面的DC点:您仍然需要与活动DC在同一网络上,服务器也是如此. >所以理论上如果你有一个域名,互联网连接的客户端直接与互联网连接的DC聊天,它是可行的.但除非你已经知道,否则不要这样做. >票证是长寿命的(10h)意味着在票证生命周期中更少的DC通信 – 并强调:这可以在整个生命周期内为每个客户节省数千到数百万的请求 – ( >例如,要允许UserA访问IIS,并在IIS访问SQL Server时使用相同的用户帐户,这就是“身份验证委派”. >目前是协商身份验证的主要安全包 >意味着Windows域成员在获得它时更喜欢它 >需要注册SPN,这可能很棘手. Rules that help. >使用IP地址而不是名称 我们在这里: 基本 >可以多跳.但是通过将您的用户名和密码直接暴露给目标Web应用程序来实现 >然后可以随心所欲地做任何事情.任何东西. >需要传输层安全性(即TLS / SSL)以实现任何形式的安全性. >然后,请参阅上一期 >适用于任何浏览器 >(但请看第一期) >需要单次往返进行身份验证(401,200) >可能需要将 总结一下: Curb设置起来可能很棘手,但是有大量的指南(my one)试图简化这个过程,并且工具在2003年到2008年间有了很大的改进(SetSPN可以搜索重复项,这是最常见的问题; use 受限制的代表团值得入场费用. (编辑:ASP站长网) |