Ist es möglich, LDAP-Passwörter für einen Benutzer zu deaktivieren, ohne dessen Konto zu deaktivieren?

Ist es möglich, LDAP-Passwörter für einen Benutzer zu deaktivieren, ohne dessen Konto zu deaktivieren?

Wir haben einen Cluster, der eine interne LDAP-Domäne zur Benutzerauthentifizierung verwendet, die zuvor in LDAP gespeicherte Passwörter verwendete. Wir haben jetzt die Anmeldemaschine so umgestellt, dass sie krb5 zur Passwortauthentifizierung gegenüber einem externen kdc verwendet. Wir würden die lokalen LDAP-Passwörter nach Möglichkeit entfernen. Gibt es in LDAP ein Äquivalent zum herkömmlichen Unix-Authentifizierungsbefehl usermod -p '!' user?

Antwort1

Für OpenLDAP,Entfernen Sie das userPasswordAttributvon jedem Benutzerkonto.

Leider gibt es keine Standardbefehle zum Verwalten von LDAP-Benutzerkonten. Daher müssen Sie ldapsearch | awk/sed/grep | ldapmodifydie Stapelaktualisierung mithilfe von Perl/Python skripten.

Alternative:Anstatt die LDAP-Passwortauthentifizierung vollständig zu deaktivieren,dürfenLassen Sie den LDAP-Server die Bind-Passwörter anhand von Kerberos validieren. Dies ist natürlich nicht so gut wie die tatsächliche Kerberos-Authentifizierung (SASL GSSAPI), kann aber nützlich sein, wenn Sie noch Software haben, die auf LDAP „Simple Bind“ basiert.

Wenn Sie das Attribut jedes Benutzers userPasswordin {SASL}user@REALM(enthält seinen Kerberos-Principal) ändern, führt OpenLDAP eine Pass-Through-Passwortüberprüfung mithilfe des Daemons „saslauthd“ (von Cyrus SASL) durch. Konfigurieren Sie ihn so, dass er als gestartet wird, saslauthd -a krb5und er überprüft die Passwörter anhand Ihres Kerberos-KDC.

Beachten Sie, dass saslauthderfordertDas System muss einen „host/“-Prinzipal in seinem Maschinen-Keytab (/etc/krb5.keytab) haben.

verwandte Informationen