Lassen Sie mich vorab sagen, dass ich kein Domainadministrationsexperte bin. Ich bin ein Programmierer, der benutzerdefinierte Anwendungen für das Web schreibt.
Mein Unternehmen möchte auf unserer Intranet-Anmeldeseite eine Funktion zum Zurücksetzen von Passwörtern hinzufügen. Unser Backend ist ColdFusion 9 mit Funktionen in der Sprache, die mir den programmgesteuerten Zugriff auf LDAP ermöglichen. Als ich nachforschte, wie der Code geschrieben werden kann, damit diese Funktion zum Ändern des Kennworts funktioniert, stellte ich fest, dass es viel einfacher ist, Code zu schreiben, der Folgendes ausführt:
net user <username> <password> /domain
Dies erfolgt natürlich nach all den üblichen alten Passwortprüfungen und so weiter. Der Befehl wird als Benutzer mit den entsprechenden Berechtigungen ausgeführt und funktioniert wirklich hervorragend.
Es ist mir jedoch ein Problem aufgefallen, dass wir nach vielen Problemen mit einem unserer Serveradministratoren in der Lage waren, unabhängig von dem von mir geschriebenen Code zu reproduzieren.
Das Problem ist, dass nach Ausführung des Befehls net user sowohl das ALTE als auch das NEUE Kennwort (für einen unbestimmten Zeitraum) gute Kennwörter für das zu ändernde Benutzerkonto sind.
Stimmt. Wenn wir einen Benutzer " testuser" mit dem Kennwort " welcome" haben und Folgendes ausführen:
net user testuser welcome2 /domain
Dann können wir uns für eine unbestimmte Zeit erfolgreich bei der Domain anmelden, indem wir entweder "welcome" oder "welcome2" als Passwort verwenden. Nach diesem unbestimmten Zeitraum funktioniert das erste Passwort nicht mehr und das neue Passwort bleibt als einziges funktionierendes Passwort übrig.
Dies ist NICHT der Fall, wenn der Befehl direkt auf einem unserer beiden Domänencontroller ausgeführt wird. Es ist jedoch nicht möglich, dass meine Webanwendung den Befehl direkt auf dem PDC ausführt.
Das einzige, woran ich denken kann, ist, dass es eine Ausbreitungszeit gibt und dass die Kennwortänderung NICHT unmittelbar erfolgt, wie es der Fall wäre, wenn sie auf dem PDC selbst ausgeführt würde.
Also frage ich mich ... ist das erwartetes Verhalten? Wenn ich den schwierigeren programmgesteuerten Weg eingeschlagen habe, direkt auf den LDAP-Server zuzugreifen und das Kennwort des Benutzers zu ändern, kann ich wahrscheinlich ein ähnliches Problem bei der Weitergabe feststellen?
Danke fürs Lesen.