Jenkins und das LDAP Plugin

Standardmäßig ist der Jenkins für alle freigeschaltet und jeder der Zugriff auf den Server hat, kann auf alle Funktionen vom Jenkins zugreifen. Das macht natürlich nicht so viel Sinn und man kann den Jenkins relativ einfach absichern. Wenn man Jenkins in einem Firmennetzwerk betreibt gibt es in vielen Fällen einen zentralen Verzeichnisdienst wie z.B. Active Directory, eDiretory oder änhliches. In dem Verzeichnisdienst werden zentral die Benutzerkonten verwaltet. Die meisten Verzeichnisdienste bieten eine LDAP V3 Integration. Man kann Jenkins so konfigurieren, dass die Authentifizierung gegen einen LDAP-fähigen Verzeichnisdienst durchführt.

Jenkins bietet neben einem eigenständigen LDAP-Plugin auch eine eingebaute LDAP Authentifizierung. Ich hab dieses Integrierte Variante mit einem eDirectory 8.8.6 getestet und das hat sauber funktioniert. Um diese Authentifizierungsmethode einzurichten, muss man die folgenden Schritt ausführen:

Im ersten Schritt muss man auf der Hauptmaske von Jenkins den Menüpunkt „Jenkins verwalten“ auswählen.

Jenkins Verwalten

Im Anschluß muss man den Menüpunkt „Globale Sicherheit konfigurieren“

Jenkins Globale Sicherheit konfigurieren

Aus dieser Seite muss dann das Häkchen „Jenkins absichern“ auswählen:

Jenkins Absichern

Sobald das Häkchen ausgewählt ist, erscheinen die Konfigurationsoptionen. Man muss den Punkt „LDAP“ auswählen und anschliessend die Adresse des „Servers“ (vorzugsweise die IP) eingeben:

Jenkins Zugriffskontrolle

Neben LDAP als Standard Protokoll gibt es eine verschlüsselte Variante über LDAPS. Wir beim HTTP arbeitet LDAP und LDAPS über zwei unterschiedliche Ports. Standardmäßig werden bei den Protokollen die folgenden Ports verwendet.

LDAP = 398
LDAPS = 636

Bei der LDAP Variante wird das Passwort im Klartext an den Server gesendet. Bei LDAPS entsprechend mit SSL Methoden verschlüsselt. Man sollte sich darüber bewusst sein, wenn man das „richtige“  Protokoll für die eigene Infrastruktur anwenden möchte.

Abschließend für die Konfiguration bitte nicht vergessen die Option „Angemeldete Benutzer dürfen alle Aktionen ausführen“, sonst stehen den nicht angemeldeten Benutzern immer noch alle Funktionen zur Verfügung.

Anschliessend muss die Konfiguration gespeichert werden und danach steht oben rechts in der Ecke der Menüpunkt „Anmelden“ zur Verfügung:

Jenkins Anmelden

Anschliessend man sich über einen üblichen Dialog einloggen:

Jenkins Login

Nachdem man dann den Benutzernamen und das korrekte Passwort angegeben hat, erscheint oben rechts der angemeldete Benutzername und nun werden Buildprozesse, die durch einen angemeldeten Benutzer ausgelöst werden, immer dokumentiert.

Zusätzlich läst der Jenkins nun nicht mehr zu, dass jeder Benutzer ein Build überhaupt auslösen kann. Auch das Anlegen von neuen Jenkins Jobs ist unterbunden und die Globalen Einstellungen kann man nun auch nicht mehr als Anonymer Benutzer zugreifen.

http://www.agile-coding.net/jenkins-und-das-ldap-plugin/