Краткий конспект о том, как выполняется настройка LDAP аутентификации в GitLab. Конкретно в моем примере использовалась LDAP интеграция с Active Directory.
В качестве опорного руководства я использовал официальную документацию.
Настройка LDAP аутентификации в GitLab
Приступим к настройке:
1. Сначала я создам отдельную УЗ в Active Directory, от имени которой будет GitLab будет подключаться к AD.
2. Также я создам отдельную группу в Active Directory. Только участникам этой группы будет разрешено аутентифицироваться через LDAP.
3. На сервере с GitLab редактируем системный конфигурационный файл:
nano /etc/gitlab/gitlab.rb
4. Добавляем (или раскоментируем – на ваше усмотрение) следующие строки:
gitlab_rails['ldap_enabled'] = true
gitlab_rails['prevent_ldap_sign_in'] = false
gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
main: # 'main' is the GitLab 'provider ID' of this LDAP server
label: 'LDAP'
host: '10.10.10.71'
port: 389
uid: 'sAMAccountName'
bind_dn: 'CN=gitlab_ldap,OU=GitLab,OU=Services,OU=IT,DC=itproblog,DC=ru'
password: 'Qwerty123'
encryption: 'plain' # "start_tls" or "simple_tls" or "plain"
verify_certificates: true
smartcard_auth: false
active_directory: true
allow_username_or_email_login: false
lowercase_usernames: false
block_auto_created_users: false
base: 'DC=itproblog,DC=ru'
user_filter: '(memberof=CN=GirLab_Access,OU=GitLab,OU=Services,OU=IT,DC=itproblog,DC=ru)'
attributes:
username: ['sAMAccountName']
email: ['mail']
name: 'cn'
first_name: 'givenName'
last_name: 'sn'
EOS
Скорректируйте значение атрибутов bind_dn, password и base в соответствии с вашими значениями. Атрибут user_filter опциональный.
5. Обновите конфигурацию сервера GitLab.
sudo gitlab-ctl reconfigure
Проверка работы LDAP аутентификации
Сначала проверим подключение к LDAP из консоли:
gitlab-rake gitlab:ldap:check
Если честно, то я вникал в причина генерации ошибки подключения по localhost, но предположу, что нужно еще какие-то изменения в конфигурационный файл внести.
Теперь попробуем аутентифицироваться по LDAP в веб интерфейсе.
Пример успешной аутентификации:
Настройка LDAP аутентификации в GitLab завершена.
Настройка LDAP аутентификации в GitLab: 4 комментария
А как разрешить авторизацию по email из Active Directory?
Под email вы имеете ввиду атрибут mail УЗ в AD? По mail скорее всего будет сложно организовать аутентификацию, а вот по userprincipalname вполне возможно. Вместо uid: ‘sAMAccountName’ укажите uid: ‘userPrincipalName’. Очень часто политика заполнения атрибутов в компаниях такая, что mail = userPrincipalName.
Спасибо за статью, очень познавательно.
Вот указание этих атрибутов и приводит к “Если честно, то я вникал в причина генерации ошибки подключения по localhost”:
attributes:
username: [‘sAMAccountName’]
email: [‘mail’]
name: ‘cn’
first_name: ‘givenName’
last_name: ‘sn’
Если их закомментировать, ошибок не будет
Добрый день! Спасибо за полезный комментарий!