2017-08-09 3 views
15

Ich habe erfolgreich MSAL JS für Azure AD B2C implementiert. Der nächste Schritt besteht darin, den Benutzer das Profil bearbeiten zu lassen. Ich habe eine neue Richtlinie für das Profil bearbeiten erstellt. Aber wie den Benutzer dorthin umleiten? Es gibt nur Login-Methoden/Token-Methoden erwerben. Ich habe versucht, die Berechtigung für eine andere Richtlinie festzulegen. Es wird dann auf die richtige Seite umgeleitet, aber dann fängt es an, sich über Fehler in den Bereichen zu beschweren und das Token wird lokal durcheinander gebracht.Azure MSAL JS: Wie wird das Profil bearbeitet?

editProfile() { 
    this.userAgentApp.authority = this.policyEditProfile; 
    this.userAgentApp.loginRedirect(); 
} 

Die ASP.NET Codebeispiele die EditProfile Richtlinien-ID explizit eine Option zu setzen: https://docs.microsoft.com/en-gb/azure/active-directory-b2c/active-directory-b2c-devquickstarts-web-dotnet-susi#update-code-to-use-your-tenant-and-policies von MSAL.JS

wie sich das anfühlt fehlt, und ich habe die URL manuell fertigen, ist das richtig ?

Antwort

6

Ja, das ist richtig. Sie müssen eine andere Behörde verwenden, die URL des Mieters und der Policy-Namen zusammengesetzt ist, wie here gezeigt:

private static string Tenant = "yourTenant.onmicrosoft.com"; 
public static string PolicySignUpSignIn = "b2c_1_susi"; 
public static string PolicyEditProfile = "b2c_1_edit_profile"; 
private static string BaseAuthority = "https://login.microsoftonline.com/tfp/{tenant}/{policy}/oauth2/v2.0/authorize"; 
public static string Authority = BaseAuthority.Replace("{tenant}", Tenant).Replace("{policy}", PolicySignUpSignIn); 
public static string AuthorityEditProfile = BaseAuthority.Replace("{tenant}", Tenant).Replace("{policy}", PolicyEditProfile); 

BTW, dass die Probe, obwohl für .NET-Desktop zeigt, wie das Profil bearbeiten verwenden und Passwort zurücksetzen Richtlinien: active-directory-b2c-dotnet-desktop, insbesondere siehe EditProfileButton_Click Methode, der Faktor der Token erwerben (interaktiv) den Dialog auslösen, das Profil zu bearbeiten:

AuthenticationResult authResult = await App.PublicClientApp.AcquireTokenAsync(App.ApiScopes, GetUserByPolicy(App.PublicClientApp.Users, App.PolicyEditProfile), UIBehavior.SelectAccount, string.Empty, null, App.AuthorityEditProfile); 
+0

Dank dafür! Ich habe es in MSAL.JS versucht, aber dann bekomme ich diese Ausnahme? this.userAgentApp.acquireTokenPopup (authSettings.scopes, this.policyEditProfile) .then ((accessToken) => { this.setAuthenticated (accessToken); }, (Fehler) => { console.error (error); }) AADB2C90055: Der in der Anforderung angegebene Bereich 'offenes Profil' muss eine Ressource wie 'https://example.com/calendar.read' angeben. Korrelations-ID: 8a022666-3400-4d7d-A847-f8dc4dc49452 Zeitstempel: 2017.08.13 23: 42: 10Z . Invalid_request – Boland

+0

ich die gleichen Bereiche wie die Verwendung bin beim Anmelden Warum muss ich andere brauchen Bereiche für das Profil bearbeiten? – Boland

Verwandte Themen