Авторизация через LDAP
Настройка в Docker-образе
Мы подготовили пример файла конфигурации для подключения к LDAP, по умолчанию он не активен.
Необходимо отредактировать файл /home/devprom/docker/apache2/ldap.conf и указать актуальные параметры подключения к вашему LDAP.
Затем, для подключения этой конфигурации, необходимо выполнить команды:
> docker exec -it alm-app bash
# a2dissite devprom
# a2ensite ldap
# exit
> docker restart alm-app
Для аутентификации с использованием данного примера можно использовать следующие пары:
- nobel/password
- einstein/password
По умолчанию аутентификация работает по логину (атрибут uid в LDAP-каталоге). Чтобы реализовать аутентификацию по email, необходимо в конфигурационном файле /home/devprom/docker/apache2/ldap.conf отредактировать параметр:
AuthLDAPURL ldap://ldap.forumsys.com:389/dc=example,dc=com?mail??(objectClass=*)
между знаками вопроса указать mail (атрибут, отвечающий за хранение Email) вместо uid.
Устранение возможных проблем
В случае возникновения проблем с авторизацией необходимо отредактировать конфигурационный файл веб-приложения Apache, например, /etc/apache2/sites-available/ldap.conf и установить повышенный уровень логирования: LogLevel debug
Затем, необходимо перезапустить контейнер alm-app или сервис apache2, авторизоваться повторно и изучить проблему в логе /var/www/devprom/logs/error.log, возможно некорректно заданы параметры подключения к LDAP-каталогу.
Поддержка нескольких LDAP-каталогов
При использовании нескольких LDAP-каталогов, в которых хранится аутентификационная информация, необходимо немного изменить настройку - добавить несколько конфигураций в секциях AuthnProdiverAlias:
<AuthnProviderAlias ldap alpha>
AuthLDAPURL "ldap://localhost:10389/ou=system?uid??(objectClass=*)"
AuthLDAPBindDN "uid=admin,ou=system"
AuthLDAPBindPassword "secret"
AuthLDAPBindAuthoritative on
AuthLDAPRemoteUserIsDN on
LDAPReferrals Off
</AuthnProviderAlias>
<AuthnProviderAlias ldap beta>
AuthLDAPBindDN "cn=read-only-admin,dc=example,dc=com"
AuthLDAPBindPassword "password"
AuthLDAPURL "ldap://ldap.forumsys.com:389/dc=example,dc=com?uid??(objectClass=*)"
AuthLDAPBindAuthoritative on
AuthLDAPRemoteUserIsDN on
LDAPReferrals Off
</AuthnProviderAlias>
AuthFormProvider alpha beta anon
Использование NTLM, Kerberos
Для реализации встроенной аутентификации посредством протоколов NTLM или Kerberos выполните настройку Apache, как описано в этой инструкции.