Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> WWW —> mod_ntlm

mod_ntlm - авторизация на сайте через учетные записи Samba или Windows домена

Автор: serge.


mod_ntlm - модуль для apache13, позволяющий прозрачно авторизовать пользователя использую его доменную учетную запись. Удобно, если необходимо сделать ограниченный доступ к содержимому корпоротивного веб сервера и не хочется озадачивать пользователей запоминанием еще одного пароля.
Установка:
server# cd /usr/ports/www/mod_ntlm/
server# make install clean

Этот модуль приносит с собой следующие файлы:
server# pkg_info -xL mod_ntlm
Information for mod_ntlm-0.4:

Files:
/usr/local/libexec/apache/mod_ntlm.so
/usr/local/share/doc/mod_ntlm/mod_ntlm.html

После ознакомления с документацией, идем править конфиг апача.
Для начала в соответствующих секциях конфига подключаем модуль mod_ntlm:
server# cat /usr/local/etc/apache/httpd.conf | grep mod_ntlm
LoadModule ntlm_module        libexec/apache/mod_ntlm.so
AddModule mod_ntlm.c

Мне было удобно вносить директивы mod_ntlm только для определенных виртуальных хостов.
Но это можно сделать и глобально на весь сервер:
<VirtualHost *:80>
        ...
        ... skiped ...
        ...
        
        <Directory "/usr/home/mydomain/www">
            ...
	    ... skiped ...
	    ...
			
            AuthName NTAuth
            AuthType NTLM
            NTLMAuth on
            NTLMAuthoritative on
            NTLMDomain SAMBADOMAIN
            NTLMServer samba.server.int
            require valid-user
        </Directory>
</VirtualHost>

Перевод описания директив mod_ntlm взятого из его документации:
NTLMAuth on/off включает/выключает NTLM аутентификацию
AuthNTGroups filename ограничивает доступ пользователей,
использую текстовые файлы групп (подробнее читай в документации)
NTLMAuthoritative on/off позволяет пользователям, которые
не прошли аутентификацию NTLM, быть аутентифицированными другими модулями
NTLMDomain domain_name домен в котором ищем пользователя
NTLMServer server_name or ip_addr    основной (первичный) сервер
для аутентификации пользователя (Windows или Samba)
NTLMBackup server_name or ip_addr    вторичный сервер, в случае
если первичный не отвечает
NTLMBasicAuth on/off включает/выключает Basic аутентификацию
в дополнение к NTLM. При установленом значение NTLMAuth в off Basic
аутентификация не работает
NTLMBasicRealm realm The realm to pass to the client for Basic
authentication. (дословно "Царство, чтобы пройти клиенту для Basic
аутентификации" - непонял как перевести)))
Require valid-user каждый пользователь, являющийся членом домена
получает доступ к веб ресурсу
Require user user_name только определенные пользователи получают
доступ. Допускается указывать одного или нескольких пользователей

Аутентификация с помощью mod_ntlm прозрачно работает при использовании
Internet Explorer. Причем версия 3.0 и соответственно ниже не поддерживаются.
В опере запрашивается логин и пароль, а после этого пускает. Другие браузеры
не пробовал.

Проверить работу mod_ntlm можно с помощью следующего скрипта:
<html>
<body>
<h3>Тестирование mod_ntlm</h3>
<p>Вы авторизовались на сервере как:
<br>

<?php
echo $_SERVER['REMOTE_USER'];
?>

</p>
</body>
</html>

Так же логи от mod_ntlm можно наблюдать в error.log файле веб сервера или
виртуального хоста:
[Fri Aug 24 19:37:34 2007] [notice] [client 192.168.2.5] got auth_line "TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAFASgKAAAADw=="
[Fri Aug 24 19:37:34 2007] [notice] [client 192.168.2.5] got header with
host "", domain ""
[Fri Aug 24 19:37:34 2007] [error] [client 192.168.2.5] received msg1
135028756 94878
[Fri Aug 24 19:37:34 2007] [notice] [client 192.168.2.5] send WWW
-Authenticate "NTLM TlRMTVNTUAACAAAADgAOADAAAAAHggEAhM1KcK0kdzAAA
AAAAAAAAAAAAAA+AAAASQBaAEQAQQBUAEUATAA="
[Fri Aug 24 19:37:34 2007] [notice] [client 192.168.2.5] got auth_line "TlRMTVNTUAADAAAAGAAYAFoAAAAYABgAcgAAAAAAAABIAAAACgAKAEgAAAAIAAgAUgAAA
AAAAACKAAAABYIAAgUBKAoAAAAPcwBlAHIAZwBlAE0AQQBJAE4Au5aH6rz/tflyhZVoRI8
O19eLLzGA8PEyeKn3EOJVdCUDZwNu25KzBlt5zQpDSBWg"
[Fri Aug 24 19:37:34 2007] [notice] [client 192.168.2.5] got header with
host "MAIN", domain ""
[Fri Aug 24 19:37:34 2007] [error] [client 192.168.2.5] received msg3
135028756 94878
[Fri Aug 24 19:37:34 2007] [error] [client 192.168.2.5] authenticating
user against DC 135028756 94878
[Fri Aug 24 19:37:34 2007] [error] [client 192.168.2.5] authentication OK!
135028756 94878
[Fri Aug 24 19:37:34 2007] [notice] [client 192.168.2.5] NTLM/SMB user:
"SAMBADOMAIN\\serge": authentication OK.

Примечание: судя по ссылке на сорец в документации и обсуждениям в инете, этот модуль
можно прикрутить и ко второму апачу. У меня к сожалению это не получилось, ни из
портов, ни из исходников. Для первого апача встало влет из порта.



размещено: 2007-08-25,
последнее обновление: 2007-08-25,
автор: serge


Ы, 2007-08-26 в 10:23:05

Дык NTLM деприкатед ... лет 7 назад нужно было. Сейчас везде AD и вроде же есть SPNEGO/GSSAPI для Апача? Или я чего напутал?

Za..., 2007-08-27 в 9:25:53

А для 2 апача как сделать, все перепробовал, но есть одна весчь, это был PERL и его модуль.

А если вместо АД, САМБА...

pawel, 2007-09-07 в 17:27:23

Хм...товарищи, а у меня аутентификацию проходит тока при вводе логина и пароля в окне basic. т.е. на лету не схватывает? В логах все чисто, как в примере.

Aleks, 2013-09-02 в 15:32:33

Если логин кирилицей, то не работает



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0721 секунд
Из них PHP: 12%; SQL: 88%; Число SQL-запросов: 86 шт.
У Вас отключено GZIP-сжатие в браузере. Размер страницы 19477