GitLab über LDAP mit FreeIPA authentifizieren

Download PDF

GitLab lässt sich über LDAP mit zahlreichen Verzeichnisdiensten, wie beispielsweise Microsoft Active Directory Domain Services oder auch FreeIPA bzw. Red Hat Identity Management, verbinden. Dieser Artikel beschreibt die Konfiguration und Integration in FreeIPA.

Mit Klicks auf Identity > User Groups > Add wird innerhalb der FreeIPA-Oberfläche der Assistent für die Erstellung neuer Gruppen gestartet. Dort werden zwei Gruppen mit den Namen gitlab-users und gitlab-admins erstellt.

Anschließend könnte betroffene Benutzer in die jeweiligen Gruppen aufgenommen werden. Vorbereitend empfiehlt es sich, eine Sicherheitskopie der GitLab Konfigurationsdatei zu erstellen, bevor diese erweitert wird:

# cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.backup
# vi /etc/gitlab/gitlab.rb
...
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-EOS
main:
  label: 'LDAP'
  host: 'myldap.localdomain.loc'
  port: 636
  uid: 'uid'
  method: 'ssl'
  bind_dn: 'uid=svc-readonly,cn=users,cn=accounts,dc=localdomain,dc=loc'
  password: '...'

  timeout: 10
  active_directory: false
  allow_username_or_email_login: false
  block_auto_created_users: false

  base: 'cn=users,cn=accounts,dc=localdomain,dc=loc'
  user_filter: '(memberOf=cn=gitlab-users,cn=groups,cn=accounts,dc=localdomain,dc=loc)'

  attributes:
    username: ['uid', 'userid', 'sAMAccountName']
    email:    ['mail', 'email', 'userPrincipalName']
    name:       'cn'
    first_name: 'givenName'
    last_name:  'sn'
EOS

Die Einträge host, bind_dn, base und user_filter sind entsprechend der eigenen Infrastruktur anzupassen. Wer unverschlüsselt authentifizieren möchte, ändert zwei Zeilen wie folgt ab:

port: 389
method: 'plain'

Benutzer der GitLab Enterprise Edition können auch eine Admin-Gruppe definieren, die Konfiguration wird in diesem Fall um die folgende Zeile erweitert:

admin_group: 'cn=gitlab-admins,cn=groups,cn=accounts,dc=localdomain,dc=loc'

Anschließend muss die GitLab-Konfiguration aktualisiert werden – hierfür wird das folgende Kommand ausgeführt:

# gitlab-ctl reconfigure

Danach sollte GitLab in der Lage sein, über LDAP zu authentifizieren. Zum Testen existiert ein eigenes Kommando – dieses listet auch die ersten 100 gefundenen LDAP-Benutzer auf:

# gitlab-rake gitlab:ldap:check RAILS_ENV=production
Checking LDAP ...

Server: ldapmain
LDAP authentication... Success
LDAP users with access to your GitLab server (only showing the first 100 results)
        DN: uid=giertz,cn=users,cn=accounts,dc=localdomain,dc=loc        uid: giertz
        DN: uid=pinkepank,cn=users,cn=accounts,dc=localdomain,dc=loc     uid: pinkepank

Checking LDAP ... Finished

In der Anmeldemaske der Web-Oberfläche gibt es nun eine eigene Registerkarte „LDAP“ zur Authentifizierung über das Verzeichnis. Konventionelle, lokale, Anmeldungen sind weiterhin möglich. LDAP-Benutzer und lokale Benutzer werden bei übereinstimmender E-Mail-Adresse verknüpft.

Download PDF