Ich möchte Gitlab mit dem LDAP unseres Unternehmens als Demo einrichten. Aber leider muss ich in gitlab.yml ein Admin-Passwort eingeben, damit gitlab auf den LDAP-Dienst zugreift. Das Problem ist eigentlich die Administration, da sie kein anderes Konto nur für Gitlab einrichten wollen. Gibt es eine Möglichkeit, dies zu umgehen, ohne mein eigenes Passwort einzugeben? Gibt es eine Möglichkeit, Gitlab dazu zu bringen, die LDAP-Verbindung nur mit den angegebenen Benutzeranmeldeinformationen herzustellen?
Irgendwelche Ideen neben der Anmeldung als anonym?
Sie haben bereits hier gepostet.
Ich habe es noch nicht ausprobiert, aber von den Dingen, die ich bisher erstellt habe, authentifiziere ich mich gegen LDAP und die Informationen aus der Konfigurationsdatei. Dieser Benutzeraccount scheint nur dann benötigt zu werden, wenn LDAP das anonyme Binden nicht unterstützt Suche.
Also würde ich die beiden Einträge bind_dn
und password
auskommentieren lassen und versuchen, ob es funktioniert oder nicht.
AKTUALISIEREN
Ich habe LDAP-Authentifizierung in Gitlab implementiert und es ist ziemlich einfach.
In der gitlab.yml
-Datei gibt es einen Abschnitt namens ldap
.
Dort müssen Sie die Informationen für die Verbindung zu Ihrem LDAP bereitstellen. Es scheint, dass alle Felder angegeben werden müssen, es scheint keinen Fallback-Fehler zu geben! Wenn Sie eine anonyme Bindung zum Abrufen des Benutzer-DN verwenden möchten, geben Sie eine leere Zeichenfolge für bind_dn
und password
an. Sie kommentieren scheint nicht zu funktionieren! Zumindest habe ich eine 501 Fehlermeldung erhalten.
Weitere Informationen finden Sie unter Ссылка und (mehr veraltet, aber immer noch hilfreich) Ссылка
Ich habe gitlab auf diese Weise gepatcht und den Prozess in Ссылка
dokumentiertIch kopiere schamlos die Anweisungen hier für die Selbstvollständigkeit.
Hinweis : Dieses Tutorial wurde zuletzt mit gitlab 8.2 aus der Quelle getestet.
In diesem Tutorial wird beschrieben, wie Sie eine Installation von Gitlab ändern können Verwenden Sie die Anmeldeinformationen des Benutzers, um sich beim LDAP-Server zu authentifizieren. Durch default Gitlab setzt auf anonyme Bindung oder einen speziellen abfragenden Benutzer den LDAP-Server nach der Existenz eines Benutzers fragen sie mit ihren eigenen Referenzen authentifizieren. Aus Sicherheitsgründen, Viele Administratoren deaktivieren jedoch die anonyme Bindung und verbieten die Erstellung spezieller abfragender LDAP-Benutzer.
In diesem Tutorial gehen wir davon aus, dass wir ein Gitlab-Setup haben
gitlab.example.com und ein LDAP-Server, der auf ldap.example.com läuft, und
Benutzer haben einen DN in der folgenden Form:
CN=username,OU=Users,OU=division,OU=department,DC=example,DC=com
.
Um Gitlab in solchen Fällen arbeiten zu lassen, müssen wir seine Authentifizierungsmechanismus bezüglich LDAP.
Zuerst ersetzen wir das omniauth-ldap-Modul durch diese Ableitung. Zu
Um dies zu erreichen, wenden wir den folgenden Patch auf gitlab/Gemfile
:
Nun müssen wir folgende Aktionen durchführen:
sudo -u git -H bundle install --without development test mysql --path vendor/bundle --no-deployment
sudo -u git -H bundle install --deployment --without development test mysql aws
Diese Befehle rufen das modifizierte omniauth-ldap-Modul ab
%Code%. Jetzt, wo das Modul ist
aufgerufen, müssen wir es ändern, um den DN zu verwenden, den unser LDAP-Server erwartet. Wir
erreichen Sie dies, indem Sie gitlab/vendor/bundle/ruby/2.x.x/bundler/gems
in patchen
lib/omniauth/strategies/ldap.rb
mit:
Mit diesem Modul verwendet gitlab die Anmeldeinformationen des Benutzers, um sich an das LDAP zu binden Server und abfragen, sowie, um den Benutzer selbst zu authentifizieren.
Dies funktioniert jedoch nur, solange die Benutzer keine ssh-Schlüssel verwenden authentifizieren Sie sich mit Gitlab . Bei der Authentifizierung über einen SSH-Schlüssel, durch default Gitlab fragt den LDAP-Server ab, ob der Der entsprechende Benutzer ist (noch) ein gültiger Benutzer oder nicht. An diesem Punkt, wir kann nicht die Benutzeranmeldeinformationen verwenden, um den LDAP-Server seit dem Benutzer abzufragen hat sie uns nicht zur Verfügung gestellt. Als Ergebnis deaktivieren wir diesen Mechanismus, im Wesentlichen erlauben Benutzer mit registrierten SSH-Schlüsseln aber aus dem entfernt LDAP-Server, der weiterhin unser Gitlab Setup verwendet. Um solche Benutzer zu verhindern in der Lage sein, Ihr Gitlab Setup zu verwenden, müssen Sie manuell lösche ihre SSH-Schlüssel von allen Konten in deinem Setup.
Um diesen Mechanismus zu deaktivieren, patchen wir gitlab/vendor/bundle/ruby/2.x.x/bundler/gems/omniauth-ldap
mit:
In gitlab/lib/gitlab/ldap/access.rb
verwende so etwas wie folgt (ändere es nach deinen Bedürfnissen):
GitLab verwendet omniauth , um mehrere Anmeldequellen (einschließlich LDAP) zu verwalten.
> Wenn Sie also omniauth
irgendwie verlängern können, um die LDAP-Verbindung anders zu verwalten, könnten Sie das Passwort von einer anderen Quelle holen.
Auf diese Weise können Sie vermeiden, das Passwort im ldap-Abschnitt des% a co_de% Konfigurationsdatei .