Inhaltsverzeichnis
GitLab ArchLinux - LDAP-Konfiguration
GitLab ist ein, in der Community Edition unter einer MIT-Lizenz zur Verfügung gestelltes System, zur Verwaltung von Git-Repositorys im Browser, was den unentgeltlichen Betrieb auf einem eigenen Server ermöglicht.
Beschreibung | Externer Link |
---|---|
Homepage | https://gitlab.com/ |
Dokumentation | https://docs.gitlab.com/ |
Versionsvergleich | https://about.gitlab.com/install/ce-or-ee/ |
Installation | https://wiki.archlinux.org/title/PostgreSQL https://wiki.archlinux.org/title/Redis https://wiki.archlinux.org/title/GitLab |
LDAP-Dokumentation | https://docs.gitlab.com/ee/install/installation.html#ldap-authentication |
Ab hier werden root
-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um der Benutzer root
zu werden, geben Sie bitte nachfolgenden Befehl ein:
$ su - Password:
Voraussetzungen
Als Voraussetzung für die hier, nachfolgend dargestellte LDAP-Konfiguration von GitLab Version 16.x ist:
- Lauffähige Installation von GitLab
- Siehe auch den internen Link: GitLab ArchLinux
GitLab: Konfiguration
/etc/webapps/gitlab/gitlab.yml
Die Konfigurationsdatei /etc/webapps/gitlab/gitlab.yml
ist die Haupt-Konfigurationsdatei von GitLab.
Nachfolgende Einstellungen sind für einen Betrieb mit der Authentifizierungsmethode LDAP erforderlich und sind im Bereich:
# # 3. Auth settings # ========================== ## LDAP settings # You can test connections and inspect a sample of the LDAP users with login # access by running: # bundle exec rake gitlab:ldap:check RAILS_ENV=production ldap:
durchzuführen:
# Tachtler # default: enabled: false enabled: true
Aktivieren der Nutzung von LDAP.
# Tachtler # default: host: '_your_ldap_server' host: 'ldap.idmz.tachtler.net'
Setzen des FQDN für den LDAP-Server.
# Tachtler # default: port: 389 # usually 636 for SSL port: 636 # usually 636 for SSL
Nutzen des LDAP-Ports für SSL verschlüsselte Verbindungen, anstelle des Ports für unverschlüsselte LDAP-Kommunikation.
# Tachtler # default: uid: 'sAMAccountName' # This should be the attribute, not the value that maps to uid. uid: 'uid' # This should be the attribute, not the value that maps to uid.
Angabe der uid
, unter der die Benutzer ermittelt werden sollen.
# Tachtler # default: bind_dn: '_the_full_dn_of_the_user_you_will_bind_with' bind_dn: 'cn=Ersatzbenutzer,dc=tachtler,dc=net'
Angabe des Benutzers, mit dem die Verbindung zu LDAP hergestellt werden soll und mit dem der sogenannte bind
durchgeführt werden soll.
# Tachtler # default: password: '_the_password_of_the_bind_user' password: 'geheim'
Angabe des dazugehörigen Passwort des Benutzers, mit dem die Verbindung zu LDAP hergestellt werden soll und mit dem der sogenannte bind
durchgeführt werden soll.
# Tachtler # default: encryption: 'plain' encryption: 'simple_tls'
Methode mit der die Verbindung verschlüsselt aufgebaut werden soll.
# Tachtler # default: active_directory: true active_directory: false
Da es sich nicht um ein ActiveDirectory handelt, sonder um einen LDAP-Server, muss hier der Wert entsprechend gesetzt werden.
# Tachtler # default: block_auto_created_users: false block_auto_created_users: true
Benutzer, welche - wie auch immer - automatisiert erstellt worden sind, sollen nicht für eine Authentifizierung mittels LDAP zugelassen werden.
# Tachtler # default: base: '' base: 'ou=People,dc=tachtler,dc=net'
Die Such-Basis bzw. das Wurzelverzeichnis in LDAP ab dem Benutzer gesucht werden sollen.
# Tachtler # default: user_filter: '' user_filter: '(|(uid=klaus))'
Ein LDAP-Filter, welcher es ermöglicht, die gefundenen Benutzer auf bestimmte Treffer einzuschränken.
GitLab: Dienste/Daemons stoppen
Nachdem GitLab wahrscheinlich bereits lauffähig gestartet wurde, ist es erforderlich GitLab zu stoppen.
Da ein systemd-Target - hier in diesem Fall gitlab.target
nicht einfach gestoppt werden kann, ist es sinnvoll sich den Inhalt von gitlab.target
mit nachfolgendem Befehl anzeigen zu lassen:
# systemctl cat gitlab.target # /usr/lib/systemd/system/gitlab.target [Unit] Description=GitLab - Self Hosted Git Management Requires=gitlab-puma.service gitlab-workhorse.service Wants=gitlab-sidekiq.service gitlab-backup.timer gitlab-gitaly.service gitlab-mailroom.service [Install] WantedBy=multi-user.target
Hier sind alle Dienste/Daemons welche ebenfalls mittels systemd gestartet werden aus dem gitlab.target
in den Bereichen
Requires
Wants
aufgelistet
Diese können dann mit nachfolgendem Befehl gestoppt werden:
# systemctl stop gitlab-puma.service gitlab-workhorse.service gitlab-sidekiq.service gitlab-backup.timer gitlab-gitaly.service gitlab-mailroom.service
GitLab: Dienste/Daemons starten
Mit nachfolgendem Befehl wird GitLab wieder gestartet.
Dieser systemd-Start beinhaltet auch den Start alle anderen benötigten Komponenten bzw. Dienste/Daemons von GitLab.
# systemctl start gitlab.target
Eine Überprüfung, ob der Start des Ziel/Target erfolgreich war, kann mit nachfolgendem Befehl überprüft werden:
● gitlab.target - GitLab - Self Hosted Git Management Loaded: loaded (/usr/lib/systemd/system/gitlab.target; enabled; preset: disabled) Active: active since Fri 2024-03-22 09:34:35 CET; 30min ago Mar 22 09:34:35 server systemd[1]: Reached target GitLab - Self Hosted Git Management.
GitLab: LDAP Überprüfung
Nach erfolgreichem Start von GitLab kann mit nachfolgendem Befehl überprüft werden, ob die LDAP-Konfiguration erfolgreich war.
Mit dem nachfolgendem Befehl muss zuerst in das Verzeichnis /usr/share/webapps/gitlab
gewechselt werden:
# cd /usr/share/webapps/gitlab
Der nachfolgende Befehl, führt die Überprüfung für GitLab gegen LDAP aus:
# sudo -u gitlab $(cat environment | xargs) bundle exec rake gitlab:ldap:check RAILS_ENV=production Checking LDAP ... LDAP: ... Server: ldapmain LDAP authentication... Success LDAP users with access to your GitLab server (only showing the first 100 results) DN: uid=klaus,ou=people,dc=tachtler,dc=net uid: klaus Checking LDAP ... Finished
Ein Ergebnis wie das oben angezeigte, sollte in etwa zu sehen sein.
GitLab: LDAP Genehmigung
Nach erfolgreicher Überprüfung des LDAP-Zugriffs auf GitLab kann über einen Browser die nachfolgende URL aufgerufen werden, um die Startseite von GitLab zu erreichen:
Nachfolgender Bildschirm sollte nun beim Aufruf von GitLab zu sehen sein. Es sollten zwei Reiter mit den Bezeichnungen
- [LDAP] - Anmeldung mit Benutzername und Passwort aus dem LDAP
- [Standard] - Anmeldung mit Benutzername und Passwort aus der PostgreSQL-Datenbank
zu sehen sein:
Nach Eingabe eines entsprechenden Benutzer und dem dazugehörigen Passwort, sollte ein Bildschirm wie der nachfolgende bei der ersten Anmeldung eines Benutzer aus LDAP angezeigt werden:
Der Hinweis:
Your account is pending approval from your GitLab administrator and hence blocked. Please contact your GitLab administrator if you think this is an error.
Ihr Konto muss noch von Ihrem GitLab-Administrator genehmigt werden und ist daher gesperrt. Bitte wenden Sie sich an Ihren GitLab-Administrator, wenn Sie glauben, dass dies ein Fehler ist.
HINWEIS - Wie in dem Hinweis zu lesen ist, fehlt noch die entsprechende Freigabe durch den GitLab-Administrator!
Um die Freigabe eines GitLab-Administrator für einen Benutzer aus den LDAP zu erteilen, sind nachfolgende Schritte notwendig.
Dazu muss zur Anmeldung auf den Reiter Reiter mit den Bezeichnungen [Standard] - Anmeldung mit Benutzername und Passwort aus der PostgreSQL-Datenbank gewechselt werden und die Anmeldetaten als GitLab-Administrator müssen eingegeben werden, wie auf nachfolgendem Bildschirm zu sehen:
Feld | Eingabe |
---|---|
Benutzername oder primäre E-Mail-Adresse | root |
Passwort | Siehe auch den internen Link: GitLab ArchLinux - GitLab: Erste Anmeldung |
Nachfolgender Bildschirm sollte nun nach der ersten erfolgreichen Anmeldung zum Vorschein kommen, in dem dann sogleich im zu öffnenden [Menü] die Schaltfläche [Adminbereich] mit der [linkem Maustaste] angeklickt werden sollte, wie nachfolgender Bildschirm zeigt:
Hier ist in dem wieder zu öffnenden [Menü] im Bereich [Übersicht] der Menüpunkt [Benutzer(innen)] mit der [linkem Maustaste] anzuklicken, wie auf nachfolgendem Bildschirm dargestellt:
Anschliessend sollten alle Benutzer, welche bereits versucht haben sich via LDAP an GitLab anzumelden im Reiter [Ausstehende Genehmigungen] ersichtlich sein, wie nachfolgender Bildschirm zeigt:
Zur Einleitung die noch ausstehende Genehmigung zu erteilen, sollte nun über dem [Dreipunktmenü] am Ende der Zeile des jeweiligen aufgelisteten Benutzers mit der [linken Maustaste] ein Klick erfolgen, wodurch sich das nachfolgende PopUp-Menü öffnen sollte, wie nachfolgend auf dem Bildschirm dargestellt:
Durch Auswahl des Menüpunktes [Genehmigen] im sich zuvor geöffneten PopUp-Menü wird nachfolgendes Dialog-Fenster angezeigt, in dem die Auswirkungen der Genehmigung noch einmal dargestellt werden und in dem durch anklicken der Schaltfläche [Genehmigen] mit der [linken Maustaste] die Genehmigung erteilt werden kann, wie in nachfolgendem Bildschirm zu sehen ist:
Falls die Genehmigung erfolgreich bestätigt wurde, sollte nachfolgender Bildschirm mit der Meldung erscheinen, das der Benutzer nun genehmigt wurde, wie auf dem nachfolgendem Bildschirm zu sehen ist:
Nun kann eine Abmeldung vom Benutzerkonto des GitLab-Administrators erfolgen, in dem aus dem wieder zu öffnenden [Menü] die Schaltfläche [Abmelden] mit der [linken Maustaste] angeklickt wird, wie nachfolgend zu sehen ist