这是如何实现的?Web服务器需要支持某些额外的身份验证吗?
更新:我要求通用的Web服务器,不仅仅是IIS。例如,在Apache上如何做到这一点?
只有在特定情况下才能实现无缝连接;即Web服务器需要支持NTLM(例如,IIS),并且它需要在客户端配置为信任的区域内(在IE中称为“Intranet Zone”,除非最终用户已调整其设置)。
如先前所述,如果您的后端是Windows Managed(MS Active Directory),则通常使用NTLM。但是,也有适用于Apache的模块可与之连接:mod_ntlm。
由于这是自己的协议,因此需要浏览器能够理解该协议并回复身份验证挑战。我不知道哪些浏览器可以直接支持此功能,但我的假设是大多数浏览器都可以。
从我的经验来看,Kerberos更像是一种首选方法,但我没有太多的使用经验,因此很遗憾,我在这方面没有太多建议。
另外,我记得在某个地方读到过JRE也有办法将其与Web服务器上的NTLM连接起来,以获取已认证用户的身份信息。如先前所述,.NET也支持此功能。
此外,Firefox默认不支持NTLM,但可以使用以下教程进行配置:http://www.crossedconnections.org/w/?p=89
如果您将IIS设置为需要身份验证,则用户需要登录才能访问页面。然后,他们拥有任何权限(如果不是接口)来访问服务器上的任何内容,就像从控制台正常登录一样。
除此之外,我不确定您指的是什么。
是的,这是可能的。它经常用于内部网络应用程序中,其中用户使用 NTLM 或 Kerberos 对中央服务(通常是 Windows 平台上的 Active Directory)进行授权。在 .NET 平台上,可以通过 System.Threading.Thread.CurrentPrincipal.Identity 实例访问当前用户信息。
你可能还想了解Jespa。它似乎比Kerberos更直接,但提供了良好的NTLM SSO功能。
我正在寻找有关Kerberos的更多信息(因为NTLM,即使是v2,在AD 2008中也已过时),然后我发现了这篇文章,解释了如何在Apache中使用它(正如你提到的那样)。 http://blog.scottlowe.org/2006/08/10/kerberos-based-sso-with-apache/
这个问题可能已经过时了(或者至少已经解决了),但如果它能帮助某人......