我们有一个应用程序,它使用 WAMP(W 代表 Windows,P 代表 PHP)托管在我们的 Intranet 上的 Windows 桌面上。我们需要实现一个新功能 - 每当用户访问我们的 Intranet 站点时,通过使用他/她的 Windows 登录凭据来验证用户的身份。
在这里,我缺乏一些实现它的基本概念——如何在 PHP 中访问当前登录用户详细信息的窗口。
有什么方法可以检测出当前用户是谁,并将此用户数据传递给我们的 LDAP 服务器进行验证?
我们有一个应用程序,它使用 WAMP(W 代表 Windows,P 代表 PHP)托管在我们的 Intranet 上的 Windows 桌面上。我们需要实现一个新功能 - 每当用户访问我们的 Intranet 站点时,通过使用他/她的 Windows 登录凭据来验证用户的身份。
在这里,我缺乏一些实现它的基本概念——如何在 PHP 中访问当前登录用户详细信息的窗口。
有什么方法可以检测出当前用户是谁,并将此用户数据传递给我们的 LDAP 服务器进行验证?
看看这里:http ://siphon9.net/loune/2007/10/simple-lightweight-ntlm-in-php/
是身份验证的一半。
请注意,apache 需要设置KeepAlive On设置。
它将为您提供当前用户的登录名/域/工作站信息。
如果您需要完整的 NTLM 身份验证方案支持,您的 Web 服务器需要它的模块。
看这里: http: //modntlm.sourceforge.net/
在这里:http ://bloke.org/linux/ntlm-authentication-active-directory-on-apache-linux/
在这两种情况下,对于 IE,URL 都需要位于“受信任区域”中,对于 Firefox,URL 需要类似的设置。
我建议您使用 mod_auth_sspi - Apache 2.x 身份验证模块。设置非常简单。
这是主页http://sourceforge.net/projects/mod-auth-sspi/
您可以保护位置、文件夹或特定文件。您可以允许/拒绝特定的用户、组、域等。
我在运行 apache 2.2 和 PHP 5.2 的 Windows 2008 服务器上实现了这一点,它对我的 SSO 完美运行。