我已设置一个站点,使用 perl 的 Apache2::AuthenNTLM 模块在 Linux 上的 Apache 中使用 NTLM 对用户进行身份验证。当我需要身份验证时,这种方法非常有效,但我希望当用户可以使用 NTLM 进行身份验证时,这种方法可以绕过网站的内置登录,如果用户无法进行身份验证,则允许他们使用常规登录。如果用户不知道自己的状态,我认为我需要将 NTLM 身份验证设为可选项,以便检测到拥有该身份验证的用户,而其他所有人都可以照常看到该站点。我注释掉了“require valid-user”,但现在根本不使用 NTLM 身份验证。有没有办法启用它而不向未进行身份验证的用户显示任何内容?
这是当前的 htaccess:
PerlAuthenHandler Apache2::AuthenNTLM
AuthType ntlm
AuthName NTLMTest
#require valid-user
PerlAddVar ntdomain "DOMAIN ADMIN ADMIN2"
PerlSetVar defaultdomain DOMAIN
PerlSetVar splitdomainprefix 1
PerlSetVar ntlmdebug 0
PerlSetVar ntlmauthoritative off
答案1
一种常见的模式(Moodle 使用)是有一个需要 NTLM 身份验证的第二个页面,并且有一个第一个页面来决定是否将您引导到第二个页面(根据您的 IP 范围、用户代理等)。
答案2
我对我的内部网站有同样的要求,并基于以下示例解决方案构建了一个crb 的回答对于具有 NTLM 和 PHP 的 Apache:使用 PHP 对 Apache 上的网站进行可选的 NTLM 身份验证