Перейти к содержимому

LDAP не подключается - причины по убыванию частоты

Сервер каталога прописан в настройках, а пользователи не приходят и вход не работает. Разбираем причины по убыванию частоты - почти все они вне сайта.

С чего начать

Проверяем доступность сервера каталога:

Окно терминала
nc -zv dc.example.local 389 # обычное соединение
nc -zv dc.example.local 636 # защищённое
# отказ на этом шаге означает сеть или межсетевой экран, а не настройки сайта
ping -c 2 dc.example.local # заодно проверяем, что имя вообще разрешается

Сайт и сервер каталога чаще всего разделяет сеть, а не ошибка в настройках. Пока порт закрыт, любые правки в интерфейсе бессмысленны, и начинать нужно именно с проверки соединения.

Спрашиваем каталог теми же данными, что и сайт:

Окно терминала
ldapsearch -x -H ldap://dc.example.local -D "CN=svc,OU=Service,DC=example,DC=local" \
-W -b "OU=Users,DC=example,DC=local" "(objectClass=user)" cn mail | head -20
# пустой ответ при успешном входе означает не тот узел поиска или фильтр
# ту же команду запускают с сервера сайта: сеть администратора устроена иначе

Тот же запрос из консоли отделяет проблему доступа от проблемы отбора. Ошибка входа - это учётная запись и пароль, а пустой список при успешном входе - узел поиска или фильтр.

Смотрим, что записал сам модуль:

- журнал событий сайта: попытки входа через каталог
- сообщение об ошибке при проверке подключения в настройках сервера
- список групп каталога: пустой список - признак неверного узла поиска

Сообщение модуля почти всегда называет шаг, на котором всё остановилось. Читать его стоит целиком: «не удалось подключиться» и «подключился, но ничего не нашёл» - это разные причины с разным лечением.

Причины

  1. Сервер каталога недоступен по сети примерно 30% случаев

    ПризнакПроверка подключения в настройках падает сразу, без задержки.

    ПроверкаПробуем открыть порт каталога прямо с самого сервера этого нашего рабочего сайта.

    Что делатьОткрываем доступ на межсетевом экране и проверяем сам адрес этого нужного сервера.

  2. У служебной записи нет прав на чтение примерно 25% случаев

    ПризнакПодключение проходит успешно, а список пользователей приходит совсем пустым.

    ПроверкаПовторяем тот же запрос из консоли под той же учётной записью.

    Что делатьВыдаём служебной записи право читать именно ту ветку каталога, которая нужна.

  3. Указан не тот узел поиска примерно 20% случаев

    ПризнакЧасть пользователей каталога находится, а именно нужные из них - нет.

    ПроверкаСверяем узел поиска в настройках с реальным путём в каталоге.

    Что делатьЗадаём узел выше по дереву или добавляем второй сервер для другой ветки.

  4. Защищённое соединение не проходит примерно 15% случаев

    ПризнакОбычное соединение работает как надо, а защищённое не проходит вовсе.

    ПроверкаСмотрим, принимает ли сервер самого сайта сертификат этого каталога вообще.

    Что делатьСтавим корневой сертификат домена на сервер сайта и повторяем проверку.

  5. Фильтр отбора никого не находит примерно 10% случаев

    ПризнакСписок групп каталога приходит, а пользователей в этих группах нет.

    ПроверкаПроверяем фильтр отбора тем же самым запросом из обычной серверной консоли отдельно.

    Что делатьПриводим фильтр к тому виду, который отдаёт записи в консольной проверке.

Частые вопросы

Почему проверка в настройках проходит, а вход не работает?

Проверка смотрит только подключение служебной записи. Вход дополнительно зависит от фильтра отбора и от групп.

Нужно ли защищённое соединение?

В сети предприятия обычно да: иначе пароли идут открытым текстом. Требования обычно задаёт служба безопасности.

Как проверить настройки без сайта?

Консольным запросом к каталогу теми же данными. Это отделяет проблему сети и прав от настроек модуля.

Что делать с несколькими ветками каталога?

Заводить несколько подключений или брать узел выше по дереву. Один узел на всё бывает слишком широким.

Смежное

Первоисточник