krn.VerifyPassword

Dieser Job prüft ein übergebenes Passwort gegen die Passwortsyntax-Regel des Servers — den regulären Ausdruck im Registry-Eintrag Login\PwdComplexity (im enaio® enterprise-manager „Regulärer Ausdruck für die Passwortsyntax") — und liefert zurück, ob das Passwort diese Regel erfüllt. Der Job ist damit die Vorprüfung für genau die Regel, die der Server beim Zuweisen oder Ändern eines Passworts durchsetzt.

Der Job prüft nicht, ob das übergebene Passwort dem hinterlegten Passwort eines Benutzers entspricht.

Matches ist kein Authentifizierungsergebnis. Ist keine Regel konfiguriert — der Auslieferungszustand von Login\PwdComplexity ist leer —, liefert jedes nicht-leere Passwort true. Code, der Matches als „Passwort korrekt" auswertet, lässt damit jeden Benutzer mit einem beliebigen Passwort passieren. Für die Prüfung von Anmeldedaten ist krn.CheckUserAccount zuständig.

Der Job ist in der offiziellen enaio®-Kernel-Engine-Übersicht nicht gelistet, wird vom Job-Katalog des Servers (krn.EnumJobs) jedoch geführt. Das hier beschriebene Verhalten wurde gegen einen enaio®-12.0-Server verifiziert.

1. Eingabeparameter

Name Typ Pflicht Beschreibung

Flags

INT

Ja

Reserviert; stets 0 übergeben. Andere Werte werden ohne Fehler akzeptiert.

Password

STRING

Ja

Zu prüfendes Passwort als kodierter Wert — gleiches Format wie krn.SessionLogin/UserPwd. Kodierungsverfahren gemäß Registry-Eintrag Security\PwdDecryption (> 1 = AES, ⇐ 1 = Legacy-Verfahren), maximal 62 ASCII-Zeichen.

Eine falsche Kodierung schlägt stumm fehl. Der Server dekodiert den Wert von Password immer; Klartext wird dabei in Datenmüll dekodiert und gegen die Regel geprüft — das Ergebnis ist falsch, ohne dass ein Fehler gemeldet wird. Beispiel: Mit Login\PwdComplexity = ^.{12,}$ liefert der Klartext abc das Ergebnis true.

2. Ausgabeparameter

Name Typ Abhängigkeit Beschreibung

Matches

BOOL

true, wenn das dekodierte Passwort dem regulären Ausdruck aus Login\PwdComplexity genügt, sonst false. Ist Login\PwdComplexity leer (Auslieferungszustand), ist das Ergebnis für jedes nicht-leere Passwort true.

Beobachtetes Verhalten:

Konfiguration Eingabe Matches

Login\PwdComplexity leer (Auslieferungszustand)

beliebiges nicht-leeres Passwort

true

Login\PwdComplexity = ^.{12,}$

abcdefghijkl (12 Zeichen)

true

Login\PwdComplexity = ^.{12,}$

abc

false

Login\PwdComplexity = ^.{12,}$

das korrekte Passwort des angemeldeten Benutzers (7 Zeichen)

false

Die letzte Zeile schließt jeden Zusammenhang mit dem hinterlegten Passwort aus.

3. Kein Benutzerkontext, keine Systemrolle

  • Der Job nimmt keinen Benutzerparameter an und bewertet ausschließlich die serverweite Regel — das Ergebnis ist für jeden Benutzer identisch.

  • Ein Kontextwechsel über $$$SwitchContextUserName$$$ (siehe Wechsel des Benutzerkontextes) verändert das Ergebnis nicht.

  • Anders als krn.CheckUserAccount benötigt der Job keine Systemrolle — ein Benutzer ohne jede Systemrolle kann ihn aufrufen.

4. Rückgabe

(INT): 0 = Job erfolgreich (auch bei Matches=false), sonst Fehlercode.

Code Server-Meldung Ursache

-1043332470

A required parameter was not specified: Password.

Password nicht übergeben

-1043332107

Parameter <Password> was provided, but the value is invalid: <>.

Password leer

-1043332467

Benutzer-GUID

Unbekannter Benutzer in einem Kontextwechsel über $$$SwitchContextUser*$$$

5. Zugehörige Einstellungen

enaio® enterprise-manager Registry-Eintrag Standard

Regulärer Ausdruck für die Passwortsyntax

Login\PwdComplexity

leer

Beschreibungstext zur Passwortsyntax

Login\PwdComplexityDescription

leer

Login\PwdComplexityDescription enthält den Text, den die Passwortdialoge von enaio® zur Regel anzeigen — er ist die naheliegende Fehlermeldung, wenn Matches false ist. enaio® erlaubt maximal 100 Zeichen pro Passwort.

Beide Einträge sind über krn.REGetRegValue lesbar.

6. Siehe auch

  • krn.CheckUserAccount — Prüfung von Anmeldedaten (Benutzername + Passwort)

  • krn.SessionChangePassword — Passwort wechseln (mit Bestätigung des alten Passworts)

  • krn.SessionLogin — initialer Login mit Passwortprüfung

  • krn.SessionCheckPwd — nach seinem Namen der Kandidat für die Prüfung des Session-Benutzer-Passworts, also für die Funktion, die diesem Job zunächst zugeschrieben wurde. Nicht dokumentiert und nicht untersucht (siehe Nicht dokumentierte Endpunkte).