我想使用 ntlm 协议登录我的系统。我找到了 apache 的模块 - mod_auth_sspi,但我需要多平台解决方案。
我的应用程序必须在Windows和Linux上运行(两者都安装了php>=5.3和apache>2.0)。 使用 mod_auth_sspi 我可以通过 ntlm 登录,但前提是我设置了:
需要用户有效
在 htaccess 或 http.conf 中。 如果我不设置此值,我将无法检索 USER_REMOTE,并且我不知道如何实现我需要的解决方案:
我正在寻找允许我向用户显示带有登录名/密码(ntlm)的表单的解决方案,或者如果用户取消此表单,系统应将他重定向到替代登录表单(数据将从数据库检索)。我需要通过两种方式登录系统:通过 NTLM 和传统(数据库)。我怎样才能做到这一点?
谢谢。
您可以在 Windows 上使用 mod_auth_sspi,在 Linux 上使用 http://modntlm.sourceforge.net/。我知道这不是最好的解决方案,但它应该可以工作(我想你必须检查脚本运行的操作系统并适当选择 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 管理员更改此设置。