我想要 ntlm 自动身份验证,但登录弹出窗口

我想要 ntlm 自动身份验证,但登录弹出窗口

我构建了一个 php 内部网 Web 应用程序,允许用户显示存储在 Active Directory 中的信息。

我想使用用户登录 Windows 时输入的 Windows 凭据通过 Active Directory 自动验证用户身份,但是当我访问该应用程序时会出现一个登录弹出窗口。

我其实更喜欢自动验证用户身份,但这个弹出窗口不是什么大问题。问题发生在用户输入错误凭证时。它允许他访问应用程序!

如何自动验证用户身份?或当用户提供错误的凭证时,如何阻止他们访问应用程序?

笔记:

我正在使用本文中描述的 NTLM 身份验证:http://siphon9.net/loune/2007/10/simple-lightweight-ntlm-in-php/

我在 Windows 7 上工作,使用 Apatch 2.2、php5 和 iis7

答案1

您正在使用的服务器要求进行“基本”或“摘要”身份验证第一的。这就是浏览器提示他们输入凭据的原因。如果该机制成功,则不会尝试其他机制。如果该机制失败(浏览器不支持,或者用户输入错误的凭证),那么服务器将尝试其他机制(如 NTLM、Kerberos 以及它支持的任何机制)。

不清楚您使用的是哪种服务器(Apache 和 IIS 都提到了),但您想更改机制顺序,以便首先尝试 NTLM 或 Kerberos(又称协商),然后再尝试摘要。除非您使用 SSL 保护网站,否则我不会启用 Basic。

从帖子中的代码来看,您的应用程序本身可能正在处理身份验证,并且仅使用 Web 服务器作为直通。如果是这种情况,则身份验证机制的顺序将在您的代码中指定,而不是服务器本身。

附注:如果您的代码本身处理身份验证,我和大多数其他系统管理员都会讨厌您。Web 服务器可以很好地处理此问题,因此没有必要为每个单独的 Web 应用程序重新发明轮子(您也很有可能出错;无法长期维护您的代码;诸如此类)。我已经处理了足够多的此类应用程序,我的感觉是相当强烈在这个问题上。

相关内容