У меня есть экземпляр Apache2, работающий на Ubuntu 18.04 в локальной интрасети, и я хочу настроить NTLM-аутентификацию на этом экземпляре. Я установил и настроил использование mod_auth_ntlm_winbind для user.php следующим образом:
<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?
Хорошо, я нашел решение. Дело заключается в настройке основного механизма mod_auth_ntlm_winbind, winbind. Он является частью Samba и использует свой файл конфигурации. В моих случаях опция «winbind использовать домен по умолчанию» была установлена на «да». Это позволяет winbind управлять пользователями без доменной части имени пользователя. После установки «winbind use default domain = no» в /etc/samba/smb.conf все работает нормально.
cntlm - это локальный прокси для Windows-сети с аутентификацией NTLM.
Он может предоставлять общесистемные настройки или только настройки для отдельных приложений.