Anbindung generischer Systeme an den RRZE LinuxLDAP

Das RRZE betreibt eine redundante LDAP-Server Infrastruktur mit dem primären Zweck der Authentifizierung von Benutzern angebundener Linux-Systeme. Obwohl dies der Haupteinsatzzweck ist, können prinzipiell auch andere Systeme/Software die Benutzerbasis zur Authentifizierung nutzen.

Diese Anleitung beschreibt die Voraussetzungen zur Nutzung des LinuxLDAP und den grundlegenden Aufbau der Daten im Verzeichnisdienst, so dass eine eigenständige Konfiguration der jeweils anzubinden Systeme/Software möglich ist.

Bitte haben Sie Verständnis, dass die Linux-Gruppe keinen Support bei der korrekten Konfiguration Ihrer nicht-Linux Systeme oder Software leisten kann.

Vorbereitung

Bitte prüfen Sie die vorbereitenden Schritte bevor Sie versuchen einzelne Teile der Anleitung durchzuführen.
In der Regel müssen diese Voraussetzungen für ein sinnvolles Umsetzen der Anleitung erfüllt sein.

Prüfen der Voraussetzungen

Bevor Sie weiter vorgehen, sollten Sie prüfen ob eine Anbindung ihres Systems/Software überhaupt sinnvoll möglich ist bzw. ob Sie eine Maschinenkennung benötigen oder nicht.

Restriktionen

Der RRZE LinuxLDAP Server gewährt keinen Zugriff auf die Passwort-Hashes der Benutzer!
Das bedeutet, das eine Authentifizierung nur mittels LDAP-BIND als der jeweils zu authentifizierende Benutzer möglich ist.

Einige Anwendungen bieten nur die Möglichkeit eine Art Admin-Zugang zum LDAP Server zu konfigurieren, um dann auf diesem Wege das Passwort des Benutzers mit dem im LDAP abgelegten Passwort zu vergleichen. Zum Schutz der Daten unserer Benutzer können wir diese Art der Authentifizierung nicht unterstützen.

Benutzerkennung vs. Maschinenkennung

Nach erfolgreichem LDAP-BIND haben Sie lesenden Zugriff auf Ihren eigenen Benutzereintrag im LDAP (und einige Teilbäume mit frei verfügbaren Daten, die hier keine Rolle spielen).
Neben diversen linuxspezifischen Attributen enthält der Benutzereintrag ebenfalls eine Liste der Gruppenzugehörigkeiten des Benutzers.

Sofern es Ihre Anwendung erlaubt, könnten Sie so bereits eine Benutzerauthentifizierung und Rechtevergabe basierend auf den Gruppenattributen des Benutzers einrichten.

In der Regel benötigen die meisten Anwendungen nach dem Login via LDAP-BIND jedoch (leider) einen Benutzer, mit dem Sie nach dem Posix-Standard (RFC2307) die Gruppenzugehörigkeiten mittels einer Suche über alle verfügbaren Gruppen ermitteln können. Sollte das bei Ihnen ebenfalls der Fall sein, so benötigen Sie einer Maschinenkennung, welche diese Rechte besitzt (siehe nächster Absatz).

Maschinenkennung für LinuxLDAP erhalten

Zur Regulierung des Zugangs zum LinuxLDAP wird eine sog. Maschinenkennung verwendet.
Die Maschinenkennung enthält den FQDN der Maschine auf dem Ihre Dienste laufen sollen und kann für alle Dienste auf diesem Rechner zur Authentifizierung gegen den LinuxLDAP verwendete werden.

Verwenden Sie eine spezifische Maschinenkennung nicht auf anderen Systemen!

Sollten uns Zugriffe von IPs auffallen, deren Reverse-DNS Eintrag nicht zur Maschinenkennung passt, so behalten wir uns vor diese Kennungen zu sperren.

Um eine entsprechende Maschinenkennung zu erhalten bzw. selbst anlegen zu können benötigen Sie einen Zugang als IT-Betreuer zu unserer Rechnerverwaltung. Wie Sie diesen erhalten und eine Maschinenkennung mittels unseres Kommandozeilentools anlegen können ist unter Installation des rrzelinux CLI Tools beschrieben.

Sofern Sie nicht selbst IT-Betreuer an Ihrer Einrichtung sind können Sie sich den Zugang auch von einem IT-Betreuer Ihrer Einrichtung anlegen und die Zugangsdaten aushändigen lassen.

Empfohlene Software

Um sich einen Überblick über die Struktur und des Verzeichnisdienstes zu schaffen und ggf. zu konfigurierende Suchfilter testen zu können empfehlen wir die Installation des Apache Directory Studio (ApacheDS).

Der  Download kann von der offiziellen Homepage unter http://directory.apache.org/studio/ erfolgen.
Wir empfehlen den Einsatz der letzten 1.x Version (1.5.3 zum Stand 12.07.2017), welche bei den „Older Versions“ unter http://directory.apache.org/studio/download-old-versions.html zu finden ist.

Anbindung

Im Folgenden wird kurz der Aufbau des Verzeichnisdienstes beschrieben und danach einige Tipps zur Anbindung einiger Software-Produkte gegeben.

Aufbau des Verzeichnisdienstes

Aus Sicherheitsgründen erlaubt der LinuxLDAP ausschließlich den SSL gesicherten Zugriff in den Varianten LDAPS und STARTLS.

Screenshot eines Benutzereintrages im LinuxLDAP
Screenshot eines Benutzereintrages im LinuxLDAP

Alle relevanten Daten zur Benutzerauthentifizierung und -authorisierung finden sich in den Teilbäumen people und group.

Daraus ergeben sich die folgenden Eckdaten:

LDAPS-URL ldaps://linuxldap.rrze.uni-erlangen.de:636
STARTTLS-URL ldap://linuxldap.rrze.uni-erlangen.de:389
BASE-DN ou=linux,dc=rrze,dc=uni-erlangen,dc=de
PEOPLE ou=people,ou=linux,dc=rrze,dc=uni-erlangen,dc=de
GROUP ou=group,ou=linux,dc=rrze,dc=uni-erlangen,dc=de

Benutzereinträge

Benutzereinträge befinden sich flach im Teilbaum people.
Jeder Benutzer hat nach einem BIND Zugriff auf die Daten seines eigenen Eintrags.

Die wichtigsten Attribute sind:

uid Benutzerkennung für Login
fauMemberOf Gruppenmitgliedschaften (voller DN)
fauUidType Art der Kennung („user“ entspricht der IdM-Hauptkennung)
gecos Name des Benutzers (siehe GECOS)

Anmerkungen zum Attribut fauUidType

Neben der Hauptkennung existieren auch diverse Sonderkennungen wie kp (Kontaktpersonen), wm (Webmaster), fu (Funktionskennungen), usw.
Diese sind „unpersönlich“ und können somit unter bestimmten Umständen an andere Personen weitergegeben werden.

Der Wert user markiert persönliche IdM-Hauptkennungen. Diese bleiben für Ihre gesamte Lebenszeit mit derselben Person verbunden und können nicht weitergegeben werden.

In der Regel empfiehlt sich daher praktisch immer eine Filterung auf (fauUidType=user) vorzunehmen, um nur einen Login mittels der IdM-Hauptkennung zuzulassen.

Gruppeneinträge

Gruppeneinträge befinden sich flach im Teilbaum group.

Die wichtigsten Attribute sind:

cn Gruppenname
memberUid Benutzerkennungen der Mitglieder

Tipps zur Anbindung

Hier finden Sie eine Sammlung gängiger Konfigurationsparameter.
Die Sammlung kann in Zukunft ggf. noch wachsen.

Muster
Pattern für Benutzer Login / BIND uid=${uid},ou=people,ou=linux,dc=rrze,dc=uni-erlangen,dc=de

 

Basis Filter
Suche nach validem Benutzer ou=people,ou=linux,dc=rrze,dc=uni-erlangen,dc=de (&(fauUidType=user)(uid=${uid}))
Suche nach validem Benutzer mit Gruppe ou=people,ou=linux,dc=rrze,dc=uni-erlangen,dc=de (&
(fauUidType=user)(uid=${uid})(fauMemberOf=cn=${groupName},ou=group,ou=linux,dc=rrze,dc=uni-erlangen,dc=de)
)
Suche nach Gruppenmitgliedschaften ou=group,ou=linux,dc=rrze,dc=uni-erlangen,dc=de (memberUid=${uid})