代码之家  ›  专栏  ›  技术社区  ›  Janko MivÅ¡ek

从Windows上的Web浏览器登录,不带用户名和密码

  •  4
  • Janko MivÅ¡ek  · 技术社区  · 17 年前

    我听说,在Windows上,您可以从Web浏览器登录到Web服务器,而不必通过通常的登录来输入用户名和密码,而是直接使用Windows的凭据,使用NTLM协议。

    这是如何实现的?Web服务器是否需要支持一些额外的身份验证?

    更新: 我要求的是一个通用的Web服务器,而不仅仅是IIS。例如,如何在Apache上做到这一点?

    9 回复  |  直到 14 年前
        1
  •  5
  •   frankodwyer    17 年前

    Web服务器只需要配置为支持Windows身份验证(如果客户端和服务器都是W2K或更高版本,则配置为NTLM或更好的Kerberos)。我相信可以配置IIS或Apache来实现这一点。

    浏览器也必须支持这一点——至少IE支持这一点(不确定其他浏览器,这是可能的)。 编辑:看起来火狐也对此有一些支持,MacOS上有Safari。

    编辑:有关Apache、Google模块的详细信息,请访问NTLM验证。Kerberos模块也存在。根据其他答案,这实际上只适用于内部网-不仅仅是因为浏览器需要位于内部网区域(仅适用于IE),而是因为任何干预防火墙通常都会停止此工作,并且因为必要的域间信任可能不存在。如果Apache服务器在Unix上,尤其是在混合的Unix上也有Kerberos服务器,但仍然可能的话,工作起来也会更加困难。

        2
  •  3
  •   Rowland Shaw    17 年前

    它只在特定情况下是无缝的;也就是说,Web服务器需要支持NTLM(例如,IIS),并且它需要位于客户机配置为信任的区域中(IE中的“Intranet区域”,除非最终用户调整了其设置)。

        3
  •  2
  •   Jobo    17 年前

    如果您的Web服务器和客户端PC位于由Active Directory或类似程序保护的网络上,则可以在Web服务器上的IIS中为自动登录所有客户端(允许)的网站设置“Windows集成安全性”。

        4
  •  1
  •   regex    17 年前

    如前所述,如果后端是Windows管理的(MS Active Directory),则通常使用NTLM。但是,也有一些模块可用于Apache,这些模块将与此联系在一起: mod_ntlm .

    由于这是它自己的协议,因此需要浏览器能够理解此协议并对身份验证挑战作出响应。我不知道哪些浏览器支持这一点,但我的假设是大多数浏览器都支持。

    根据我的经验,kerberos更像是一种首选的方法,但我并没有用它做过很多工作,所以不幸的是,目前为止,我没有太多的建议。

    另一方面,我记得我在某个地方读到JRE也有方法连接到Web服务器上的NTLM,以便为经过身份验证的用户获取身份信息。如前所述,.NET也支持这一点。

    此外,默认情况下,火狐不支持NTLM,但可以使用以下TUT进行配置: http://www.crossedconnections.org/w/?p=89

        5
  •  0
  •   Jeff Martin    17 年前

    如果将IIS设置设置为需要身份验证,则用户需要登录才能访问该页。然后,如果他们以正常方式(从控制台)登录,他们对该服务器上的任何内容都拥有任何权利(如果不是接口)。

    除此之外,我不确定你指的是什么。

        6
  •  0
  •   Kimoz    17 年前

    是的,这是可能的。它通常用于用户所在的Intranet应用程序中。Windows使用 NTLM 科贝罗斯 针对中央服务授权用户,通常 Active Directory(Active Directory) 在Windows平台上。在.NET平台上,可以通过 system.threading.thread.currentprincipal.identity 实例。

        7
  •  0
  •   Community Mohan Dere    9 年前

    后来我发现了一个非常相似的问题 Retrieve NTLM Active Directory user data to Rails w/o IIS 答案也很好。

        8
  •  0
  •   Sam Backus    14 年前

    你可能还想看看杰斯帕。它看起来比Kerberos更直接,但提供了良好的NTLM SSO功能。

        9
  •  0
  •   Jean-Rémy Revy vasquez    14 年前

    我在寻找更多关于kerberos的信息(因为NTLM,甚至是V2,在Ad2008中都被弃用了),我找到了这篇文章,解释了如何使它与Apache一起工作(正如您提到的那样)。 http://blog.scottlowe.org/2006/08/10/kerberos-based-sso-with-apache/

    这个问题可能已经过时了(或者至少已经解决了),但是如果它能帮助某人…