check_password_complexity()
Prüft, ob ein Passwort die auf dem Server konfigurierte Passwortregel erfüllt.
Der Server gleicht das Passwort gegen den regulären Ausdruck in Login\PwdComplexity ab
und liefert das Ergebnis als bool zurück.
Typischer Einsatz: ein Passwort vor create_user(), update_user() oder einer Self-Service-Änderung prüfen, damit der Benutzer das Urteil des Servers erhält statt einer abgelehnten Schreiboperation.
|
Trotz des Jobnamens Ist eine Regel gesetzt, liefert auch das korrekte Passwort des angemeldeten Benutzers |
1. Signatur
-
Sync
-
Async
ecm.security.check_password_complexity(password: str) -> bool
await ecm.security.check_password_complexity(password: str) -> bool
2. Parameter
| Parameter | Standard | Beschreibung |
|---|---|---|
|
erforderlich |
Das zu prüfende Passwort im Klartext (oder ein mit |
4. Fehler
| Exception | Ursache |
|---|---|
|
|
|
Unterklasse, die |
5. Beispiele
5.1. Passwort vor der Benutzeranlage prüfen
-
Sync
-
Async
password = "S3cret!"
if not ecm.security.check_password_complexity(password):
raise ValueError("Passwort erfüllt die Passwortregel des Servers nicht")
user = ecm.security.create_user("john", password=password, display_name="John Doe")
password = "S3cret!"
if not await ecm.security.check_password_complexity(password):
raise ValueError("Passwort erfüllt die Passwortregel des Servers nicht")
user = await ecm.security.create_user("john", password=password, display_name="John Doe")
5.2. Regelbeschreibung für die Fehlermeldung lesen
Login\PwdComplexityDescription enthält den Text, den der Administrator zur Regel hinterlegt hat -
also das, was der Benutzer bei einem False zu sehen bekommen sollte:
from ecmind_blue_client import Jobs
if not ecm.security.check_password_complexity(password):
hint = ecm.execute(Jobs.KRN_REGETREGVALUE, Flags=0, Name="Login\\PwdComplexityDescription")
print(hint.get("Value", str, "Passwort entspricht nicht den Vorgaben"))
6. Serverseitige Einstellungen
Die Regel wird im enaio® enterprise-manager unter den Servereigenschaften im Bereich Anmeldung gepflegt und liegt in der Server-Registry:
| enterprise-manager | Registry-Eintrag | Bedeutung |
|---|---|---|
Regulärer Ausdruck für die Passwortsyntax |
|
"Sie können einen Regulären Ausdruck zur Vorgabe einer Syntax bei der Vergabe und dem Ändern eines Passworts angeben. Entspricht ein Passwort dieser Vorgabe nicht, wird es nicht akzeptiert." Standard: leer. |
Beschreibungstext zur Passwortsyntax |
|
"Beschreibungstext zur Syntax-Vorgabe, der in den Dialogen bei der Vergabe und dem Ändern eines Passworts angezeigt wird." Standard: leer. |
check_password_complexity() fragt also genau die Regel ab, die der Server beim Setzen eines
Passworts selbst durchsetzt - und Login\PwdComplexityDescription ist der Text, den enaio in seinen
eigenen Passwortdialogen dazu anzeigt.
Die Parameter sind in der enaio®-Administratordokumentation unter den Servereigenschaften beschrieben.
7. Hinweise
-
Ist
Login\PwdComplexityleer - der Auslieferungszustand -, hat der Server keine Regel anzuwenden und jedes nicht-leere Passwort liefertTrue. -
Das Passwort niemals selbst im Klartext an
krn.VerifyPasswordübergeben: Der Server dekodiert den Wert immer, ein Klartext wird dabei zu Buchstabensalat und liefert ein falsches Ergebnis ohne jede Fehlermeldung. Die Methode kodiert deshalb grundsätzlich selbst. -
enaio lässt maximal 100 Zeichen pro Passwort zu; die clientseitige Kodierung begrenzt zusätzlich auf 128 Byte (AES-Verfahren) bzw. 62 ASCII-Zeichen (Altverfahren
PwdDecryption=1). -
Der Job kennt keinen Benutzerparameter. Er wird immer im Kontext der aktuellen Session ausgeführt, wirkt aber nur auf die serverweite Regel - das Ergebnis ist für alle Benutzer gleich.
8. Siehe auch
-
create_user() — Benutzer anlegen (kodiert das Passwort gleich)
-
update_user() — Passwort eines Benutzers ändern