Password-Richtlinien
Im LDAP-Dogu wird standardmäßig eine Passwort-Richtlinie angelegt. Diese Passwort-Richtlinie ist aktuell minimalistisch gehalten.
Struktur und Abruf der Default-Passwort-Richtlinie
Für Richtlinien ist im LDAP eine Organisational Unit (OU) mit entsprechenden Namen angelegt worden. Diese ist unter
dn: ou=Policies,o=ces.local,dc=cloudogu,dc=com zu finden.
Um alle Einträge unter der OU Policies abzurufen, können folgende Befehle ausgeführt werden:
- Aufrufen der bash-Shell innerhalb des LDAP-Docker-Containers:
docker exec -it ldap bash - Ausführen der LDAP-Suche:
ldapsearch -b "ou=Policies,o=ces.local,dc=cloudogu,dc=com"
Dieser Befehl liefert alle Einträge, die unterhalb dieses Eintrags zu finden sind, sowie den Eintrag selbst zurück. Die Standard-Passwort-Richtlinie ist diesem Eintrag untergeordnet.
Die Option-bgibt an, dass nach dem Eintrag, der nach der Option angegeben ist, gesucht wird.
Inhalt der Default-Passwort-Richtlinie
Die Standard-Passwort-Richtlinie ist folgendermaßen aufgebaut:
dn: cn=default,ou=Policies,o=ces.local,dc=cloudogu,dc=com
objectClass: person
objectClass: pwdPolicy
cn: default
sn: pwpolicy
pwdAttribute: userPassword
pwdMustChange: TRUEDie einzelnen Werte haben folgende Bedeutung:
dn:dnist die Abkürzung fürDistinguished Nameund identifiziert einen Eintrag eindeutig. Der DN repräsentiert dabei ein Objekt in einem hierarchischen Verzeichnis. Der DN wird von den unteren zu übergeordneten Hierarchiestufen von links nach rechts geschrieben. So liegt diedefault-Policy unter der OUpolicies.- objectClass: Die beiden Objektlassen,
personundpwdPolicygeben an, welche Attribute verwendet werden können. Hier können nun alle Werte der ObjektklassepersonundpwdPolicyverwendet werden. Die Attributecnundsnstammen aus der Objektklasse Person, die AttributepwdAttributeundpwdMustChageaus der Objektklassepwpolicy.
Zwar werden die beiden Attributecnundsnder Objektklassepersonnicht zwingend benötigt, es ist jedoch erforderlich, dass ein Eintrag eine strukturierte (STRUCTUAL) Objektklasse besitzt. Die ObjektklassepwdPolicyist lediglich eine Hilf-Klasse (AUXILARY) und somit alleine nicht ausreichend. cn:cnist die Abkürzung fürCommon Nameund hat in diesem Zusammenhang keine besondere Bedeutung und ist eine reine Meta-Information.sn:snist die Abkürzung fürSurname(Nachname) und hat in diesem Zusammenhang keine besondere Bedeutung und ist eine reine Meta-Information.pwdAttribute: Enthält den Namen des Attributs, auf das die Kennwortrichtlinie angewendet wird. In diesem Fall wird die Passwort-Richtlinie auf das Nutzer-AttributuserPasswordangewendet.pwdMustChange: Gibt mit dem WertTRUEan, dass ein Nutzer (technisch ein LDAP-Eintrag) sein Passwort ändern muss, wenn bei ihm das AttributpwdResetaufTRUEgesetzt wird.
Beide Attribute funktionieren nur in Kombination miteinander. Das heißt, ist der WertpwdResetbeim Nutzer gesetzt, der WertpwdMustChangein der Passwort-Richtlinie steht auf falsch, dann muss der Nutzer sein Passwort nicht ändern.
Attribut zum Ändern des Passworts beim Nutzer setzen
Um den Nutzer zu einer Passwort-Änderung nach dem Login zu zwingen, muss beim LDAP-Eintrag des Nutzers explizit der Wert
des Attributes pwdReset gesetzt werden. Dieses Attribut wird nicht automatisch beim Anlegen eines neuen Eintrags
gesetzt.
Dieses Attribut dient dazu, um anzuzeigen (wenn TRUE), dass das Passwort von einem Administrator aktualisiert worden
ist und vom Benutzer geändert werden muss. Ändert der Nutzer sein Passwort, wird in diesem Zuge jedoch vom LDAP
automatisch das Attribut entfernt.
Das Attribut pwdReset ist ein sogenanntes operational Attribute, das standardmäßig - z.B. bei einer Suche
mit ldapsearch - nicht mit zurückgeliefert wird. Um bei einer Suche mit ldapsearch die operationalen Attribute mit
anzuzeigen, muss zu der Suche am Ende ein + hinzugefügt werden. Um z.B. den Eintrag des Admin-Nutzers inkl.
operationaler Attribute auszugeben, kann folgender Befehl verwendet werden:
ldapsearch -b "uid=admin,ou=People,o=ces.local,dc=cloudogu,dc=com" +
Weitere operationale Attribute sind z.B. das Erstellungsdatum des Eintrags und das Datum der letzten Änderung.
pwdReset-Attribut manuell bei einem Nutzer setzen
Um bei einem Nutzer manuell den Wert für das Attribut pwdReset zu setzen, kann folgender ldapmodify-Befehl
ausgeführt werden. Der Befehl setzt für den Nutzer admin das pwdReset-Attribut auf TRUE, sodass dieser beim Login
sein Passwort ändern muss.
ldapmodify -Y EXTERNAL -H ldapi:/// <<EOF
dn: uid=admin,ou=People,o=ces.local,dc=cloudogu,dc=com
changetype: modify
add: pwdReset
pwdReset: TRUE
EOFVerknüpfung der Passwort-Richtlinie zu anderen Einträgen
Bei der Installation des Passwort-Richtlinien-Moduls kann ein Default-Eintrag angegeben werden. Dieser Eintrag wird verwendet, wenn es keine spezifische Angabe für bestimmte Einträge gibt.
Die aktuelle und oben beschriebene Password-Richtlinie ist die aktuelle Standard-Passwortrichtlinie. Diese gilt für alle Einträge. Da dort keine Regeln, die automatische eine Aktion erfordern, wie z.B. ein Passwort-Ablaufdatum, ist dies unproblematisch.
Wenn jedoch weitere Passwort-Regeln hinzukommen, muss die Passwort-Richtlinie ggf. so angepasst werden, dass diese nicht für technische Nutzer und Service-Accounts gelten.