Set up GitLab mit Active Directory Authentifizierung

In der Softwareentwicklung und Programmierung kommt man selten an GitLab vorbei. Dabei handelt es sich um eine Plattform, die die Versionsverwaltung von Software auf Git-Basis übernimmt. Sie bietet Quellcodemanagement, Projektplanung und viele Sicherheitsaspekte. In diesem Artikel erklären wir Ihnen, wie Sie Gitlab so konfigurieren, dass es sich automatisch mit Ihrem Active Directory Server authentifiziert.

1. Um LDAP-Abfragen durchzuführen, benötigen Sie einen Active Directory Benutzer.

→ Dafür sollten Sie kein vorhandenes Adminkonto verwenden, sondern einen neuen User ohne Domainberechtigung einrichten.

  • Melden Sie sich im Domaincontroller an und laden Sie Ihre Active Directory User.
  • Erstellen Sie eine Gruppe namens “NoPermissions”.
  • Erstellen Sie einen User namens “ldapsearch”.
  • Legen Sie “NoPermissions” als Standardgruppe fest und entfernen Sie den Benutzer aus der Gruppe “Domain User”

2. Bearbeiten Sie Ihre GitLab Omnibus-Konfiguration

  • Bearbeiten Sie auf dem GitLab Server die Konfigurationsdatei: nano/etc/gitlab/gitlab.rb
  • Fügen Sie folgende Einstellungen hinzu:
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-EOS # remember to close this block with 'EOS' below
main:
label: 'ActiveDirectory'
host: 'YOUR-AD-SERVER.CORP.COM'
port: 389 #Change to 636 if using LDAPS
method: 'plain' # Change to "tls" if using LDAPS
uid: 'sAMAccountName' # Don't change this
bind_dn: 'CN=ldapsearch,CN=Users,DC=CORP,DC=COM'
password: 'YOURPASSWORDHERE'
timeout: 10
active_directory: true
allow_username_or_email_login: false
block_auto_created_users: false
base: 'CN=Users,DC=CORP,DC=COM'
# Optional: the next line specifies that only members of the user group "gitlab-users" can authenticate to Gitlab:
#user_filter: '(memberOf:1.2.840.113556.1.4.1941:=CN=GITLAB-USERS,CN=Users,DC=CORP,DC=COM)'
EOS
  • Speichern Sie und laden die GitLab Konfiguration erneut:
gitlab-ctl reconfigure
  • Als nächstes sollten Sie die LDAP Verbindung zum Active Directory Server testen:
gitlab-rake gitlab:ldap:check

Folgendes Testergebnis sollte herauskommen:

Checking LDAP ...

LDAP users with access to your GitLab server (only showing the first 100 results)
Server: ldapmain
DN: CN=Test User,CN=Users,DC=corp,DC=com sAMAccountName: testuser
Checking LDAP ... Finished

3. Troubleshooting

Mit den nachfolgenden drei Punkten können Sie die Konfiguration auf Ihre Richtigkeit hin überprüfen.

  • Versuchen Sie mittels
telnet your-ad-server.corp.com 389

von Ihrem GitLab Server eine Verbindung zum LDAP Port Ihres Active Directory Servers herzustellen.

  • Haben Sie den richtigen “distinguished Name” (DN) für den LDAPsearch User ausgewählt? Verwenden Sie dafür das LDAP Verwaltungstool, um den Namen zu überprüfen.
  • Verwendet die Konfigurationsdatei den richtigen YAML-Abstand?

Wenn Sie die Punkte dieses Kurzartikels befolgen, können Sie ganz simpel Ihren GitLab Server mit einem LDAP Active Directory Server verbinden.