LDAP (AD) - Authentifizierung scheitert

LDAP (AD) - Authentifizierung scheitert

Verhalten: AD-Konfiguration wurde durchgeführt, ein Import von Nutzern aus dem AD ebenso, die Anmeldung mit diesen scheitert aber
Lösungsansatz:

  • zunächst ist das AD-Logging am Server, wie Logging Authentication beschrieben, einzuschalten
    • im Serverlog werden daraufhin hilfreiche angaben gemacht
  • scheitert die Authentifizierung am LDAP, so kann mit dem Commandlinetool ‘ldapsearch’ (im Paket openldap-clients enthalten / oder ‘‘yum whatprovides ldapsearch’’) eine Authentifizierung am Server simuliert werden. Dies kann auch helfen, wenn wie bereits der Import von Benutzern scheitert, um einen Auth mit dem Importuser zu simulieren
    • beim Kunden der seine PW nicht im Klartext an der Konsole eingeben will hilft die Option -W die nach einem Passwort fragt (unsichtbar)
  • es sind mehrere Kombinationen von base/prefix/suffix erfolgreich im Einsatz. Bei MS AD kann die Base im Normalfall leer gelassen werden, und es reicht die Domain in das Prefix zu schreiben.
  • Beispielkonfigurationen sind unten beschrieben: AD-Fehlercodes
  • Unbedingt zu beachten gilt es, dass verinice zwischen Groß- und Kleinschreibung im importierten Username unterscheidet. AD-Benutzer sind es gewohnt, Ihren Username komplett lowercase anzugeben. Liefert der AD allerdings einen Username der auch uppercase enthält, ‘’‘MÜSSEN’’’ diese genauso angegeben werden, wie Sie im verinice-Account-Dialog angezeigt werden
    • in diesem Fall zeigt das oben erwähnte Logging übrigens eine erfolgreiche AD-Authentifizierung an (der Server kann mit lowercase-only umgehen), allerdings akzeptiert verinice den unbekannten Benutzernamen nicht
  • nach erfolgreicher Konfiguration ist das LDAP-spezifische Logging in ‘’‘jedem’’’ Fall wieder auszuschalten, weil es Passwörter der Benutzer im Klartext ins Logfile schreibt
  • Beispiel für ldapsearch Abfrage auf der Kommandozeile zum Testen des Import-Benutzers:

ldapsearch -x -D "Benutzer_mit_Importberechtigung@my.domain.private" -W -b "dc=my,dc=domain,dc=private" -h 10.0.1.2 "(objectclass=*)''

Mit dem Wildcard in ‘‘objectclass’’ werden allerdings alle Objekt-Klassen ausgegeben.

Die Ausgabe kann also gefiltert werden in der Art ‘’"(objectclass=group)"’’ oder ‘’"(objectclass=user)"’’.

Mit dem Objekt-Klasse ‘‘user’’ ‘‘users’’? werden alle Benutzer ausgegeben, die Ausgabe hier kann verfeinert werden, z.B:


ldapsearch -x -D "Benutzer@my.private.domain" -W  -b "dc=my,dc=private,dc=domain" -h 10.10.1.10 "(memberOf=CN=Virtuoso,cn=Users,dc=my,dc=private,dc=doamin)"