Авторизация пользователей Joomla через Active Directory (LDAP)

Авторизация пользователей Joomla через Active Directory LDAP

Авторизация пользователей Joomla через Active Directory LDAP

Никогда не думал, что столкнусь с такой задачей, тем не в один прекрасный день возникла необходимость создать корпоративный портал для внутреннего использования. В организации есть домен и куча пользователей в этом домене. Было бы безусловно круто не плодить сущности (не создавать заново учетки для пользователей), а как-то привязаться к домену.

Сначала был долгий мозговой штурм и решали на чем делать этот портал то ли вручную на PHP или ASP, то ли использовать какой-то готовый узкоспециализированный продукт и использовать его. При том, что этот продукт должен быть бесплатным. Естественно, никакого вменяемого бесплатного решения именно для корпоративного портала не нашлось, а писать все это вручную не было особого желания, возникла мысль а может Joomla? Сначала эту идею пытались закопать, ибо не круто но чем дальше обсуждали, тем больше чаша весов склонялась в пользу Joomla. Проверенного, распространенного и абсолютно бесплатного. Осталось решить только одно как подружить Joomla с Active Directory. Оказалось, это возможно, хотя пришлось немного повозиться. Я не буду расписывать такие простые истины, например, как установить Joomla на локальный хост и прочее, сразу к делу.

1 этап правка файла PHP.ini

Нужно раскомментировать строчку: extension=php_ldap.dll Это библиотека, благодаря которой возможно взаимодействие Joomla с доменом Active Directory по протоколу LDAP.

2 этап настройка плагина Авторизация LDAP

Идем в менеджер плагинов и ищем среди них Авторизация LDAP, активируем его. Предположим, что домен у нас называется domain.local, адрес контроллера домена 192.168.0.1. В настройках плагина нужно сделать следующие настройки (по крайней мере, у меня так заработало ?

Параметр Значение Комментарий
Хост 192.168.0.1 IP-адрес контроллера домена
Порт 389 не трогаем
Выполнять LDAP3 ДА
Выполнять TLS НЕТ
Следовать перенаправлениям НЕТ
Метод авторизации Привязать и найти При успешной авторизации Joomla создаст свою внутреннюю учетку, которую можно будет потом поместить в ту или иную группу доступа. К сожалению, группы пользователей из Active Directory Joomla подтягивать не умеет. Если нашли способ сделать это, поделитесь в комментариях к статье!
Базовый DN dc=domain,dc=local Разделяем домен на уровни и перед каждым уровнем пишем dc=, между ними никаких пробелов, только запятые
Строка поиска sAMAccountName=[search] Регистр имеет значение!
Пользовательский DN оставляем пустым
Имя пользователя подлючения administrator@domain.local Имя доменного администратора
Пароль подключения qwerty123 Соответственно, пароль доменного администратора
Map: Full Name displayName То, как на сайте будет высвечиваться имя пользователя
Map: Email mail то же самое емэйл
Map: User ID uid идентификатор пользователя

  Сохраняем настройки, открываем сайт и пытаемся залогиниться. При этом вводить имя доменного пользователя указываем без @domain.local все должно заработать!  Подозреваю, что многие нюансы зависят от версий программного обеспечения. На всякий случай, все это тестировалось на следующем сервере:

  • Веб-сервер Xampp 5.6.15 (PHP 5.6.15)
  • Joomla 3.6.3
  • Контроллер домена Windows Server 2008 R2

Замечена странность  Joomla не хочет авторизовать пользователей, чей логин в домене не совпадает с адресом электронной почты в Exchange. При попытке авторизации выдается сообщение об ошибке: Решение данной проблемы пока не найдено. Если вы знаете, как это преодолеть, пожалуйста, поделитесь в комментариях.

Оцените статью
Установка и настройка популярных программ на Windows, Linux и другие операционные системы