Dies ist eine alte Version des Dokuments!
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 vml200 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 Anmeldung
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: |
Nachfolgender Bildschirm sollte nun nach der ersten erfolgreichen Anmeldung zum Vorschein kommen.
Hier geht es weiter … / To be continued …