www.IT-Visions.de-Diskussionsforen (Version 2.1)
(Diese Seite wurde noch nicht auf das neue Layout umgestellt!)


Diese Foren stehen den Lesern unserer Bücher und allen anderen registrieren Benutzern dieser Website zur Verfügung. Wir würden uns freuen, wenn viele Nutzer dieser Website hier nicht nur Fragen stellen, sondern auch die Fragen anderer Nutzer beantworten. Diese Foren sind ein ehrenamtlicher, nicht-kommerzieller, unmoderierter Community-Dienst von www.IT-Visions.de. Wenn Sie kommerzielle Unterstützung für .NET/Scripting/PowerShell suchen, schauen Sie bitte auf unser Support-Angebot und unsere Schulungsangebote für Scripting und Schulungsangebote für .NET.



Re: Berechtigung beim Ändern eines AD Passwortes
Autor:  Dr.MatthiasGötte
E-mail:  Antworten bitte nur in das Forum!
Datum:  11.09.2008 12:30:33
Subject:  Re: Berechtigung beim Ändern eines AD Passwortes
Bezug zum Buch: 
Message:  Meine Nachricht:
----------------
Hallo Martin,
HELD?? Nun mal nicht übertreiben! Es freut mich, wenn ich helfen konnte!

Viel Erfolg!
Matthias


Ich beziehe mich auf folgenden Beitrag:
---------------------------------------

Meine Nachricht:
----------------

Das ist ja echt genial! Du bist ein Held!!! Vielen herzlichen Dank! scheint zwar nicht trivial zu sein, klingt aber schon mal gut! Werde das mal testen und übers Wochenende versuchen umzusetzen! Geb dann kommende Woche feedback!

Vielen Dank nochmal!!!
Martin

Ich beziehe mich auf folgenden Beitrag:
---------------------------------------

Meine Nachricht:
----------------
Hallo Martin,
ich glaub ich hab' das was gefunden:
siehe: http://support.microsoft.com/kb/306158/de

Ich hoffe das hilft!
Grüsse
Matthias



Ich beziehe mich auf folgenden Beitrag:
---------------------------------------

Meine Nachricht:
----------------
Hallo Matthias,

kennst Du einen Weg, den aktuell angemeldeten Benutzer am ie zu verbiegen? Das wäre dann natürlcih die Lösung - Der User meldet sich halt leider nicht wirklich irgendwie an - er benutzt einen bel. Computer auf dem z.B. entweder ein Kollege oder auch ein Dummyuser (Kiosk) angemeldet ist - das ist ja eben gerade das Problem - sorry, hab das vielleicht nicht so richtig verständlich ausgedrückt! Der User, welcher am PC/IE "kommt", ist also u.U. ein anderer als der, dessen PW geändert werden soll!

Ist im Prinzip auch kein Problem das zu machen, da ich das mit dem Account der ASP machen könnte - dann wird aber wie gesagt die Passwort-History nicht geprüft und User könnten einfach ein altes Kennwort wieder benutzen...

Liebe Grüße
Martin


Ich beziehe mich auf folgenden Beitrag:
---------------------------------------

Meine Nachricht:
----------------
Hallo Martin,
ich denke, dass sich die separate Überprüfung des Users im AD (s.u.) dann erübrigt, wenn du die Authentifizierung der Webanwendung per IIS auf "windows Auth." einstellst. Dann läuft die ganze Anwendung im Sicherheitskontext des dann angemeldeten Benutzers, der dann SEIN Passwort ändern soll. Das ist doch genau dass, was du willst, oder? Es mag sein, dass es dann noch Probleme (web.config...) mit ASP.NET gibt, aber im Prinzip scheint mir das der richtige Weg zu sein.
H. Schwichtenberg hat auf seiner Webseite auch eine Übersichtdarstellung in Bezug auf ASP.NET und Sicherheit. Ich hab' den Link gerade nicht parat, aber die Seite sollte sich so finden lassen.

Viele Grüsse und viel Erfolg!
Matthias



Ich beziehe mich auf folgenden Beitrag:
---------------------------------------

Meine Nachricht:
----------------
Hallo Matthias,

kein Problem...

Das Problem was ich hab ist leider genau, das es nicht der impersonate des IIS sein soll!
Das heißt, ich habe einen User der AD, welche an einem beliebigen PC aus ins intranet geht. Das kann z.B. auch über einen Kiosk-PC sein. Dort geht er dann auf die ASP seite wo usernamen und Kennwort eingegeben werden müssen. Diese prüfe ich dann mit einer simplen Abfrage gegen das AD auf gültigkeit. Ist die Abfrage erfolgreich, geht das eigentlichte "Kennwortändern" los! Und da starte ich dann das unten aufgeführte Skript mit der Angabe von Usernamen und altem Kennwort aus der Abfrage vorher!

Der IE läuft also mit irgendeinem Account, der IIS mit einem dienstekonto und die Anmeldung des Users habe ich lediglich in Form von Textdaten! :-(

Deshalb auch der Username und das Kennwort im NewDir:
user = New DirectoryEntry(Serchr.FindOne.GetDirectoryEntry.Path, Username.Text,

Oder hat diese Impersonate - Einstellung in der Config auch einfluss auf die DirEntry?

Vielen Dank auf jeden Fall für Deine sehr fundierte Antwort!
Liebe Grüße
Martin

Ich beziehe mich auf folgenden Beitrag:
---------------------------------------

Meine Nachricht:
----------------
Hallo Martin,
sorry, da habe ich nicht gründlich gelesen und nur deine erste "entry" Deklaration gesehen.

Da ich auch immer wieder mit Problemen kämpfe, wenn es um "adminstrative" Aufgaben aus APS.NET heraus geht, hier einige Dinge die zu beachten sind, die du aber wahrscheinlich schon alle beachtet hast.
1. Einstellung der Webanwendung im IIS auf "Windows Authentifizierung" einstellen.
2. Eintrag in der "web.config" der Anwendung .. impersonate= true

Evtl. dann noch mal anzeigen lassen, unter welchem Account die Anwendung wirklich läuft; ich glaube das ging am einfachsten über "my. ...currentuser??".

Grüsse
Matthias



Ich beziehe mich auf folgenden Beitrag:
---------------------------------------

Meine Nachricht:
----------------
Hallo Matthias,

vielen Dank für die Antwort... Leider ist das genau das, was ich dort mache!
user = New DirectoryEntry(Serchr.FindOne.GetDirectoryEntry.Path, Username.Text, System.Runtime.InteropServices.Marshal.PtrToStringBSTR(pPwd))

Das Problem ist meines Erachtens, das dieses Skript ja aus der ASP Seite heraus aufgerufen wird! Nehme ich einen Useraccount, der in der Gruppe "Account Operator" ist, geht das zwar, aber es wird die Password-history ignoriert (ist quasi die Funktion Admin setzt Userkennwort zurück).

Liebe Grüße
Martin


Ich beziehe mich auf folgenden Beitrag:
---------------------------------------

Meine Nachricht:
----------------
Hallo,
ich hatte das Problem (neben anderen, siehe mein Anfrage in diesem Forum) auch.
Meine Lösung war, das man beim Erstellen der DirectoryEntry Instanz den benutzer und das Passwort mitgeben kann. Bei mir sind das zwei Textfelder im WebForm (txtUser und txtPasswort). Unten ein Teil meines Skriptes.

o = New DirectoryEntry("LDAP-Pfad zum User im AD", Me.txtUser.Text, Me.txtPasswort.Text)
....
o.Invoke("setpassword", "sehrGeheim")

Ich hoffe das hilft!!

Matthias


Ich beziehe mich auf folgenden Beitrag:
---------------------------------------

Hallo,

ich habe ein kleines Problem mit einem Skript, mit welchem ein User über eine ASP Seite sein eigenes Kennwort ändern können soll!

Ich verwende folgende Routine:

--- Snip ---
Dim user As New DirectoryEntry() '(Pathname)
Dim entry As New DirectoryServices.DirectoryEntry("LDAP://test.directory.int")
Dim Serchr As New System.DirectoryServices.DirectorySearcher(entry)
Serchr.Filter = ("(samAccountName=" & Username.Text & ")")
Dim pwd As New SecureString()
For Each c As Char In TextBox0.Text
    pwd.AppendChar(c)
    Next
pwd.MakeReadOnly()
Dim pPwd As IntPtr = System.Runtime.InteropServices.Marshal.SecureStringToBSTR(pwd)
user = New DirectoryEntry(Serchr.FindOne.GetDirectoryEntry.Path, Username.Text, System.Runtime.InteropServices.Marshal.PtrToStringBSTR(pPwd))
System.Runtime.InteropServices.Marshal.PtrToStringBSTR(pPwd))
user.AuthenticationType = AuthenticationTypes.Secure
Dim pword As Object() = New Object() {TextBox1.Text.Trim}
Dim ret As Object = user.Invoke("SetPassword", pword)
user.CommitChanges()
--- End of Snip ---

Wenn ich dort Username und das Kennwort weglasse, wird das kennwort mit dem Account, mit welchem die ASP Seite läuft (Domain admin) ausgeführt und geht! Wenn ich das mit Username und Kennwort versuche (Damit auch Kennworthistory etc. berücksichtigt wird), kommt ein Fehler Zugriff verweigert (Ausnahme von HRESULT: 0x80070005 (E_ACCESSDENIED)) bei "Invoke("SetPassword""

Hat hier jemand eine Idee, was ich falsch mache?

Vielen Dank
Liebe Grüße
Martin

Antworten

  Zurück zum Forum



 .NET Framework-Programmierung -- C#, VB.NET, ASP.NET, u.a.
 Berechtigung beim Ändern eines AD Passwortes  von MartinSchrödl  am 4.9.2008 12:25:18 PM
 Re: Berechtigung beim Ändern eines AD Passwortes  von Dr.MatthiasGötte  am 9.9.2008 8:48:12 PM
 Re: Berechtigung beim Ändern eines AD Passwortes  von MartinSchrödl  am 10.9.2008 7:39:41 AM
 Re: Berechtigung beim Ändern eines AD Passwortes  von Dr.MatthiasGötte  am 10.9.2008 6:33:04 PM
 Re: Berechtigung beim Ändern eines AD Passwortes  von MartinSchrödl  am 11.9.2008 8:53:32 AM
 Re: Berechtigung beim Ändern eines AD Passwortes  von Dr.MatthiasGötte  am 11.9.2008 9:18:27 AM
 Re: Berechtigung beim Ändern eines AD Passwortes  von MartinSchrödl  am 11.9.2008 9:22:54 AM
 Re: Berechtigung beim Ändern eines AD Passwortes  von Dr.MatthiasGötte  am 11.9.2008 10:13:27 AM
 Re: Berechtigung beim Ändern eines AD Passwortes  von MartinSchrödl  am 11.9.2008 11:57:40 AM
 Re: Berechtigung beim Ändern eines AD Passwortes  von Dr.MatthiasGötte  am 11.9.2008 12:30:33 PM


www.IT-Visions.de - Dr. Holger Schwichtenberg / 1998-2019