Ich versuche, einen benutzerdefinierten Authentifikator für die Verwendung mit WSO2-IS und WSO2-APIM zu implementieren. Ich kann jedoch keine Möglichkeit finden, dem authentifizierten Benutzer eine Rolle zuzuweisen.WSO2IS/APIM: Benutzerrolle in einem benutzerdefinierten Authentifikator zuweisen
Ich möchte der authentifizierte Benutzer die Rolle "Kunde" haben. Unten ist der Code, den ich in der Methode processAuthenticationResponse verwendet habe.
Map<ClaimMapping, String> claims = new HashMap<ClaimMapping, String>();
claims.put(ClaimMapping.build("http://wso2.org/claims/role", "http://wso2.org/claims/role", null, false), "customer");
AuthenticatedUser user = AuthenticatedUser.createLocalAuthenticatedUserFromSubjectIdentifier("xxxxxx");
context.setSubject(user);
Jede Anleitung zur korrekten Implementierung wird sehr geschätzt.
Vielen Dank.
Vielen Dank für Ihre Vorschläge. Allerdings habe ich es probiert und es funktioniert immer noch nicht. Ich habe debugged und es scheint, dass die Methode DoPostAuthenticate nicht aufgerufen wird, nachdem ich den Benutzer in benutzerdefinierten Authentifikator authentifizieren. Weitere Informationen. Ich habe die Rolle "Kunde" im Benutzerspeicher definiert. Der Benutzername, den ich über benutzerdefinierten Authentifizierer authentifizierte, befindet sich jedoch nicht in dem Benutzerspeicher. (Deshalb muss ich einen benutzerdefinierten Authentifikator schreiben). Ist das der richtige Ansatz? – tinnapat
Wenn die Methode 'doPostAuthenticate' nicht aufgerufen wird, sollte dies ein Problem bei der Registrierung Ihres Dienstes sein. Überprüfen Sie, ob Ihr Hörer richtig registriert ist. Sind Ihre Benutzer- und Kundenrolle in zwei verschiedenen Benutzerspeichern? Sie können einem Benutzer in einem anderen Benutzerspeicher –
Hi Chamila keine Rolle in einem anderen Benutzerspeicher zuweisen. Sorry meine Frage war nicht klar. Ich versuche, einen benutzerdefinierten Authentifikator zu schreiben, der einen Benutzer über eine mobile Anwendung authentifiziert (ähnlich wie OTP, dass wir einen Code an die mobile Anwendung des Benutzers senden und der Benutzer den Code zurück in die Authentifizierungsendpunkt-Anmeldeseite eingeben muss. Wenn es übereinstimmt, ist der Benutzer authentifiziert unter Verwendung der Handynummer als Subjektkennung), so dass der Benutzer nicht in einem Benutzerspeicher gespeichert wird. Ich möchte jedoch, dass der authentifizierte Benutzer die Rolle "Kunde" hat, da ich den Gültigkeitsbereich in APIM für Benutzer mit der Rolle "customer" angeben muss. Ist das in meinem Szenario möglich? Vielen Dank – tinnapat