Установка и настройка LDAP

Функционал доступен в Enterprise и On-premise версиях


Настройка LDAP в GitFlic

Для перехода к настройкам перейдите в панель администрирования и откройте раздел Настройка LDAP

Для создания новой связи с базой данных, нажмите кнопку Создать

В поле “Название” укажите то название, которое будет отображаться непосредственно в панели администратора.

В поле “Адрес LDAP сервера” укажите адрес, по которому находится ваш LDAP сервер (если он запущен локально, то напишите localhost).

В поле “Порт LDAP сервера” укажите порт (по умолчанию он занимает порт 389, если у вас не указан иной).

В поле “UserDn” указывается rootdn вашего LDAP сервера, скопируйте его из вашей конфигурации.

В поле “Пароль” указывается rootpw вашего LDAP сервера, скопируйте его из вашей конфигурации. Пароль не сохраняется в системе и при каждом внесении изменений необходимо вводить его повторно.

В поле “BaseDn” указывается dn вашего LDAP сервера, скопируйте его из вашей конфигурации.

В поле “LDAP атрибут для email пользователя” необходимо указать поле из вашего LDAP, по которому будет проходить авторизация пользователей в GitFlic. Обратите внимание, что валидация в форме авторизации GitFlic срабатывает только на электронную почту.

В поле “LDAP атрибут для username пользователя” необходимо указать такое поле, которое будет уникально для каждого отдельного пользователя в базе данных. Например, если вы укажите в качестве имени пользователя поле “cn”, то авторизоваться сможет только один из пользователей с таким из “cn”, так как при первом входе создается профиль пользователя с таким именем пользователя, а второй пользователь столкнется с ошибкой, потому что создание профиля с существующим именем пользователя невозможно.

В поле “Описание LDAP соединения” укажите описание, которое будет отображаться в панели администратора GitFlic.

После заполнения всех полей, нажмите кнопку “Создать”. При успешном исходе вас перенаправит на страницу со списком созданных соединений LDAP.

Вход при помощи LDAP

На странице входа нажмите кнопку Войти через LDAP. Вас переведет на аналогичную страницу входа, введите учетные данные, которые вам сообщил администратор, нажмите кнопку “Войти”

Дополнительная информация по работе с LDAP

  • В application.properties рекомендуется указать параметр gitFlic.aes.secret, который используется в качестве пароля для шифрования пароля от базы LDAP. Вы можете задать свой пароль или ничего не назначать, в таком случае используется стандартный пароль(небезопасно).

  • На сервере хранится хэш пароля, который используется только в том случае, если стоит галочка “Аутентифицировать пользователя если LDAP сервер недоступен”, то при входе пользователя, в случае недоступности LDAP сервера GitFlic сверяет хеш в базе и введенный пароль. Если галочки нет, то в случае, если сервер недоступен, учётная запись блокируется: не будет возможности работать с проектом через ssh, не будет работать токен и т.д.

  • При работе через https с GitFlic при каждом запросе к GitFlic(clone, push, pull и т.д.) GitFlic обращается к LDAP серверу и в случае, если LDAP сервер не доступен, то пользователь блокируется. При работе через ssh такая проверка не производится, т.е. если заблокировать пользователя в системе LDAP, то доступ к веб-интерфейсу и к работе через http в git работать не будет, но если пользователь продолжит работу через ssh то в GitFlic его учётная запись не заблокируется.

  • В gitflic настроен worker который раз в час обращаться к LDAP серверу для проверки и обновления пользователей. Процесс выполняет следующие проверки доступа:

    • Проверяет, что пользователь ещё присутствует в LDAP
    • Если сервером LDAP является Active Directory, убедитесь, что пользователь активен (не заблокирован/отключен). В Active Directory пользователь помечается как отключенный/заблокированный, если в атрибуте управления учетными записями пользователя ( userAccountControl:1.2.840.113556.1.4.803) установлен бит 2. (поиск по битовой маске в LDAP)
  • Для оперативной блокировки пользователей можно вручную заблокировать пользователя в панели администратора сервиса GitFlic.

  • Поля имя и фамилия заполняются из атрибутов givenName (имя) и middleName (фамилия). На данный момент эти параметры нельзя переопределить при настройке. После первого входа данные параметры можно переопределить вручную.

    Добавление локального сертификата для работы LDAPS.

Если вам требуется использовать локальный сертификат для работы с LDAPS то, кроме добавления его на сервер где запущен GitFlic, сертификат так же необходимо импортировать в JRK. Если не выполнить данное действие то при установке галочки ssl в настройка ldap в логах появится сообщение Ошибка при создании LDAP подключения: simple bind failed. Для сертификатов которые подтверждаются через глобальные центры сертификации данные настройки можно не производить.

Ubuntu

  • Узнайте где находится папка с сертификатами Java. Чтобы найти местоположение $JAVA_HOME выполните команду:
readlink -f /usr/bin/java | sed "s:bin/java::"

cacertsнаходятся в lib/security/cacerts. Запись ниже можно использовать как переменную с корректным путём до cacerts.

$(readlink -f /usr/bin/java | sed "s:bin/java::")lib/security/cacerts
  • Выполните импорт сертификата.
keytool -import -alias <alias> -file <file_path> -keystore $JAVA_HOME/lib/security/cacerts

В примере ниже используется:

  • -alias ya.ru
  • Полный путь до сертификат -file ~/tmp/ya.crt
  • Путь до сертификатов JRK -keystore /usr/lib/jvm/java-18-openjdk-amd64/lib/security/cacerts
keytool -import -alias ya.ru -file ~/tmp/ya.crt  -keystore /usr/lib/jvm/java-18-openjdk-amd64/lib/security/cacerts

При запросе пароля Enter keystore password: попробуйте просто нажать Enter или пароль changeit

Посмотреть сертификаты можно командой:

keytool -list -v -keystore $(readlink -f /usr/bin/java | sed "s:bin/java::")lib/security/cacerts