Настройка LDAP аутентификации в GitLab

Краткий конспект о том, как выполняется настройка 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 комментария

    1. Под email вы имеете ввиду атрибут mail УЗ в AD? По mail скорее всего будет сложно организовать аутентификацию, а вот по userprincipalname вполне возможно. Вместо uid: ‘sAMAccountName’ укажите uid: ‘userPrincipalName’. Очень часто политика заполнения атрибутов в компаниях такая, что mail = userPrincipalName.

  1. Спасибо за статью, очень познавательно.
    Вот указание этих атрибутов и приводит к “Если честно, то я вникал в причина генерации ошибки подключения по localhost”:
    attributes:
    username: [‘sAMAccountName’]
    email: [‘mail’]
    name: ‘cn’
    first_name: ‘givenName’
    last_name: ‘sn’
    Если их закомментировать, ошибок не будет

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *