我在本地内联网上的 Ubuntu 18.04 上有一个 Apache2 实例,我想在该实例上配置 NTLM 身份验证。我已安装并配置了 user.php 的 mod_auth_ntlm_winbind 用法,如下所示:
<Directory /var/www/html/>
<Files user.php>
AuthName "NTLM Authentication"
NTLMAuth on
NTLMAuthHelper "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp"
NTLMBasicAuthoritative on
AuthType NTLM
require valid-user
</Files>
</Directory>
user.php 本身是
<?php
echo '<h3>NTLM-Auth</h3>';
echo '<b>Username:</b> '.$_SERVER['REMOTE_USER'].'<br />';
echo '<b>Authentication type:</b> '.$_SERVER['AUTH_TYPE'].'<br />';
?>
但是,$_SERVER['REMOTE_USER'] 似乎只包含用户名,没有域名。我尝试设置我在一些提交消息中找到的“NTLMOmitDomain off”,但现在它似乎不起作用,甚至没有在其他地方列出。还有其他方法可以防止 mod_auth_ntlm_winbind 截断域名吗?
答案1
好的,我找到了解决方案。问题在于 mod_auth_ntlm_winbind 的底层机制 winbind 的配置。它是 Samba 的一部分,使用其配置文件。在我的案例中,选项“winbind 使用默认域”设置为“是”。它允许 winbind 管理用户名中没有域部分的用户。在 /etc/samba/smb.conf 中设置“winbind 使用默认域 = 否”后,一切正常。
答案2
控制论- 是具有 NTLM 身份验证的基于 Windows 网络的本地代理。它可能提供系统范围的设置,或仅为单独的应用程序提供设置。