NTLM使用PHP和Apachelogin

我想用ntlm协议login到我的系统。 我发现模块为Apache – mod_auth_sspi,但我需要多平台解决scheme。

我的应用程序必须在Windows和Linux上运行(两者都安装php> = 5.3和apache> 2.0)。 使用mod_auth_sspi我可以通过ntlmlogin,但只有当我设置:

需要用户有效

在htaccess或http.conf中。 如果我不设置这个值,我不能检索USER_REMOTE,我不知道如何实现我需要的解决scheme:

我正在寻找解决scheme,允许我显示用户forms与login名/密码(ntlm)或者如果用户取消了这种forms系统应该redirect到替代loginforms(数据将从数据库中检索)。 我需要通过两种方式login系统:通过NTLM和传统(数据库)。 我怎样才能做到这一点?

谢谢。

您可以使用Windows的mod_auth_sspi,以及http://modntlm.sourceforge.net/的Linux。 我知道这不是最好的解决方案,但它应该工作(我想你将不得不检查什么操作系统脚本运行,并选择适当的MOD,因为我怀疑API是相同的)。

编辑:

对于多个登录提供程序,请参阅:

http://httpd.apache.org/docs/2.3/howto/auth.html#multprovider

我知道一个老问题,但可能对未来的用户从Google登陆这里有用。 跨平台(我有它在Windows和Ubuntu上运行)解决方案将PyAuthenNTLM2:

https://github.com/Legrandin/PyAuthenNTLM2

这个模块与其他模块相比,一个重要的附加优点是它支持NTLM版本2(NTLMv2)协议,这个协议有点“安全”。 Windows 7(和AFAIK Vista)也只能使用默认的NTLMv2(它可以在注册表中切换),因此您不会强制公司的Windows管理员更改此设置。