2016-04-29 7 views
0

Ich möchte das Passwort eines bestimmten Benutzers als Mandantenadministrator ändern. Ich sah UserIdentityManagementAdminService.wsdl hat eine Funktion namens changeUserPassword, aber dies akzeptiert nur old password und new password, nicht username.WSO2 Identity Server - So ändern Sie das Benutzerpasswort als Mandantenadministrator

Ich kenne die resetUserPassword aber ich möchte dies nicht verwenden, da ich das Passwort nur ändern möchte, wenn oldPassword korrekt angegeben ist.

+0

So u Admin Notwendigkeit bedeuten, das Kennwort eines Benutzers zu ändern, indem dieses Nutzers Benutzernamen und ein altes Passwort bereitstellt? Ist das ein gültiger Anwendungsfall? Erwarten Sie, dass der Administrator den Benutzernamen eines Benutzers kennt? –

+0

Ja, möglicherweise ist dies kein richtiger Weg. Ich sende alle Anfragen an WSO2 als Mieter-Administrator und nicht an den Benutzer, da ich die Anmeldeinformationen des Benutzers nicht speichern/weitergeben möchte. Gibt es eine bessere Lösung, die Sie vorschlagen können? –

Antwort

1

Admin Benutzer Benutzerpasswort durch Senden von Benutzername und altes Passwort aktualisieren ist kein gültiger Anwendungsfall meiner Meinung nach. Wir können nicht erwarten, dass der Admin-Benutzer das Passwort eines anderen Benutzers kennt.

Sie können entweder resetUserPassword Methode verwenden oder sonst müssen Sie das Passwort als Benutzer selbst ändern, müssen Sie die changeUserPassword verwenden, mit dem Cookie, den Benutzer bei der Anmeldung erhalten.

+0

Hallo, danke für den Vorschlag. Wir verwenden keine Basisauthentifizierung für die Anmeldung bei WSO2. Wir verwenden SAML, sodass wir den Cookie nicht vom WSO2 erhalten können. Gibt es eine Möglichkeit, dies zu umgehen? –

+0

Sie können SAML2SSOAuthenticationService verwenden, um ein Cookie zu erhalten, indem Sie die SAML-Antwort senden. –

1

Es ist möglich, UserAdmin Service changePasswordByUser zu verwenden, um das Passwort als Benutzer zu ändern. In Identity Server 5.0.7 akzeptiert der Webdienst username als Parameter.

1

Wenn Sie die Methode changePasswordByUser des UserAdmin-Dienstes [1] verwenden, müssen Sie weiterhin das alte Kennwort des Benutzers angeben. Hier ist die SOAP-Anfrage.

<Envelope> 
    <Header/> 
    <Body> 
     <changePasswordByUser> 
     <userName>?</userName> 
     <oldPassword>?</oldPassword> 
     <newPassword>?</newPassword> 
     </changePasswordByUser> 
    </Body> 
</Envelope> 

[1] https://localhost:9443/services/UserAdmin?wsdl