Продолжая тему LDAP-аутентификации...
Подключив squid к ActiveDirectory, захотелось использовать подобную
аутентификацию в апаче.
Сам apache (я использую Apache 2.0) должен быть собран с поддержкой
LDAP. Для аутентификации служит модуль mod_auth_ldap.
Немного теории из документации.
Процесс предоставления доступа пользователю к ресурсу включает в себя
две фазы.
Первая фаза - аутентификация, при которой mod_auth_ldap проверяет пару
имя_пользователя/пароль на правильность. Она называеться search/bind
фаза.
Вторая фаза - авторизация. Модуль проверяет, разрешен ли
аутентифицированному пользователю доступ к запрошенному ресурсу. Эта
фаза называеться compare.
Фаза аутентификации.
Во время этой фазы mod_auth_ldap ищет в каталоге запись,
соответствующую имени пользователя, которое передал HTTP клиент. Если
найдено уникальное единичное соответствие, модуль пытаеться
прибиндиться к серверку каталога, используя DN вхождения и пароль,
переданный HTTP клиентом.
Если привязка не удалась, то доступ запрещается или отклоняется.
Фаза авторизации.
На этом этапе модуль пытается определить, авторизирован ли
пользователь для доступа к запрашиваему ресурсу.
Модуль принимает следующие директивы Require для определения доступа к
ресурсу:
* Разрешить доступ, если есть директива require valid-user;
* Разрешить доступ, если есть директива require user и имя
пользователя в директиве совпадает с именем пользователя, переданным
клиентом;
* Разрешить доступ, если есть директива require dn и DN, указанный в
директиве, совпадает с DN, полученным из каталога;
* Разрешить доступ, если есть директива require group и DN, полученный
из каталога, входит в указанную LDAP группу;
* Разрешить доступ, если есть директива require ldap-attribute и
атрибут, полученный из каталога, совпадает с указанным атрибутом;
* В иных случаях запретить доступ.
Полная документация по модулю расположена здесь
Итак, убеждаемся, что модуль у нас подключен, т.е. присутствует
директивы
Создаём в защищаемом каталоге файл .htaccess. Предполагаю, что в
настойках сервера разрешено переопределение директив, которые
относяться к аутентификации/авторизации (Директива AllowOverride).
К сожалению директива require group применительно к ActiveDirectory не
работает. Поиск решения этой проблемы результатов не дал. Однако ради
интереса попробовал аутентифицировать с Netscape Directory Server -
всё работает.
1074 Прочтений • [Аутентификация в Apache из LDAP (apache auth ldap)] [08.05.2012] [Комментариев: 0]