Ich habe daran gearbeitet, einen vorhandenen Servercluster so zu migrieren, dass er OpenLDAP für die Benutzer-/Passwortverwaltung verwendet. Dabei bin ich jedoch auf ein Problem gestoßen: Ich habe keinen Zugriff auf Klartextpasswörter und alle SASL-Methoden (die ich bisher identifiziert habe) erfordern Klartextpasswörter in der Datenbank. Das einzige verfügbare Format ist Crypt. Punkt.
Für viele Programme ist die einfache Authentifizierung noch verfügbar. Wenn Sie jedoch libldap2 (openldap) verwenden, unterstützt die Funktionsfamilie ldap_sasl_interactive_bind speziell nur SASL-Verbindungen, alle anderen sind deaktiviert und veraltet.
Wie authentifiziere ich mich also, wenn SASL defekt ist? (SASL unterstützt kein Crypt = defekt)
Zu verwendende Authentifizierungsansätze: Radius (Freeradius)
Web
, benutzerdefinierte C-Apps
, SSH,
LDAP-Spiegelung
Ich habe es geschafft, Radius zum Laufen zu bringen, und das ist alles.
Hilfe ist herzlich willkommen – in den Dokumenten steht nicht, warum die einfache Authentifizierung veraltet ist, und es scheint die einzige Methode zu sein, die funktioniert. Immer wenn SASL verwendet wird, funktioniert nichts.
Die Umgebung ist Ubuntu 14.04; OpenLDAP, Cyrus-SASL (über OpenLDAP), Freeradius, Apache und benutzerdefinierte C- und C++-Komponenten.
Antwort1
Zwischen der einfachen LDAP-Authentifizierung und SASL/PLAIN besteht kein großer Unterschied. In beiden Fällen wird das Klartextkennwort vom Client bereitgestellt und vom Server verarbeitet.OpenLDAP erfordert keine Speicherung von Passwörtern inKlartextund kann tatsächlich die lokalen Systeme verwendenKrypta(3)Funktion. Da Sie während der Übertragung mit Klartextkennwörtern arbeiten, sollten Sie darauf achten, dass diese Kennwörter nicht im Klartext gesendet werden. Dies geschieht normalerweise durch die Verwendung von STARTTLS als Teil der LDAP-Verbindung, aber LDAPS ist auch eine Option.
$ ldapwhoami -h ldap.example.com -ZZ -x -D uid=user,ou=people,dc=example,dc=com -W
Enter LDAP Password:
dn:uid=user,ou=people,dc=example,dc=com
$ ldapwhoami -h ldap.example.com -ZZ -D uid=user,ou=people,dc=example,dc=com -W
Enter LDAP Password:
dn:uid=user,ou=people,dc=example,dc=com