НАЧАЛО >> Авторизация пользователей >> Настройка LDAP/Active Directory и доменной SSO📄 Скачать в DOCX
Модуль Authorisation поддерживает проверку пользователя через LDAP/Active Directory и может принимать уже выполненную браузерную доменную аутентификацию. В Linux такая SSO-аутентификация настраивается на уровне веб-сервера через Kerberos/SPNEGO (GSSAPI), а ИРБИС 128 использует переданное веб-сервером значение REMOTE_USER.
В обоих сценариях в PHP должен быть подключён модуль ldap.
extension=ldap
Если расширение не подключено, настройки LDAP в модуле авторизации скрываются, а вход через Active Directory недоступен.
После подключения расширения в настройках модуля Authorisation появляется раздел Использование для аутентификации Active Directory.
Настройки аутентификации по LDAP
Для включения LDAP-аутентификации:
AllowLDAPLogin (Разрешить использовать Active Directory).ldapDomainControllers.AllowLDAPBrowser, если вход должен выполняться по браузерной SSO-аутентификации через REMOTE_USER.AllowLDAPCreateNew, если система должна создавать запись пользователя в RDR после успешной аутентификации в Active Directory.В строках ldapDomainControllers задаются:
example.org.Если пользователь вводит короткий логин, а суффикс заполнен, модуль формирует полный логин вида login@example.org. После успешной проверки модуль ищет запись пользователя в базе RDR по термину RI=<полный_логин>. Если запись не найдена и AllowLDAPCreateNew включён, создаётся новая запись RDR, а затем выполняется импорт данных из LDAP.
При обычном входе пользователь вводит логин и пароль в форме авторизации. Модуль:
ldapDomainControllers;sAMAccountName;RDR или создаёт её, если это разрешено настройкой;ldapImportData.При включённом AllowLDAPBrowser модуль может использовать значение REMOTE_USER, переданное веб-сервером. Это позволяет выполнять автоматический вход пользователя при работе в домене без ввода пароля в форме ИРБИС 128.
В Linux ИРБИС 128 не настраивает Kerberos самостоятельно и не получает Kerberos-ticket от браузера напрямую. Цепочка должна быть такой:
REMOTE_USER;Authorisation принимает REMOTE_USER, а затем использует LDAP-настройки для поиска пользователя и импорта данных из Active Directory.Для такого сценария должны быть корректно настроены:
HTTP/<имя_сайта>@<REALM> и keytab, доступный процессу веб-сервера;REMOTE_USER в PHP/FastCGI;AllowLDAPLogin, AllowLDAPBrowser и ldapDomainControllers в модуле Authorisation.REMOTE_USER должен приходить в формате, который можно сопоставить с sAMAccountName и суффиксом из ldapDomainControllers: обычно это короткий логин или login@example.org. Если веб-сервер передаёт DOMAIN\login, настройте нормализацию на стороне веб-сервера до передачи значения в ИРБИС 128.
Служебная учётная запись в ldapDomainControllers всё равно нужна: после успешной SSO-аутентификации модуль читает данные пользователя из Active Directory и переносит их в RDR.
Модуль может создавать или обновлять запись пользователя в базе RDR при входе через LDAP. Соответствие LDAP-атрибутов полям записи задаётся настройкой ldapImportData.
Используйте эту настройку, если из каталога Active Directory нужно переносить фамилию, имя, отчество, подразделение или другие атрибуты в запись пользователя.
Дополнительная обработка записи задаётся параметрами usrFuncLdapImportModule и usrFuncLdapImportFunc. Указанная функция вызывается после стандартного импорта и может выполнить проектное заполнение или проверку записи.
Если настройки Active Directory не видны в модуле, проверьте подключение PHP-расширения ldap.
Если вход по логину и паролю работает, а браузерная SSO-аутентификация нет, сначала проверьте, что веб-сервер действительно передаёт REMOTE_USER в PHP и что формат значения совпадает с ожидаемым логином пользователя.
Если аутентификация проходит, но запись пользователя не находится, проверьте наличие термина RI=<полный_логин> в базе RDR или включите AllowLDAPCreateNew для автоматического создания записи. После создания записи проверьте правила ldapImportData, если нужно заполнить пользовательские поля из Active Directory.
Для production-сценария используйте HTTPS, ограничьте доступ к keytab только процессом веб-сервера и не принимайте REMOTE_USER от недоверенного прокси без явной проверки на уровне веб-сервера.