2017-08-09 46 views
15

Azure AD B2C için MSAL JS'yi başarıyla uyguladım. Bir sonraki adım, kullanıcının profilini düzenlemesine izin vermektir. Profili Düzenle için yeni bir politika oluşturdum. Ancak, kullanıcı orada nasıl yönlendirilir? Sadece giriş yöntemleri/edinme belirteci yöntemleri vardır. Otoriteyi farklı bir politikaya koymaya çalıştım. Daha sonra doğru sayfaya yönlendirme yapar, ancak daha sonra kapsamlardaki hatalardan şikayet etmeye başlar ve yerel olarak belirteci dağıtır.Azure MSAL JS: Profil nasıl düzenlenir?

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

ASP.NET kod örnekleri açıkça editprofile Politikası kimliğini ayarlamak için bir seçenek vardır:

bu gibi geliyor 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 MSAL.JS eksik ve ben URL'yi elle zanaat zorunda doğru olduğunu ?

cevap

6

Evet, bu doğru. here gösterildiği gibi, URL kiracı ve politika adının oluşan farklı bir yetkisini kullanma gerekir: BTW

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); 

.NET Masaüstü düzenlemek profili nasıl kullanılacağını gösterir için rağmen, o örneği ve şifre politikaları sıfırlama: active-directory-b2c-dotnet-desktop, özellikle EditProfileButton_Click yöntemine bakın belirteci edinme faktörü (etkileşimli) profili düzenlemek için iletişim kutusunu tetikler: Bunun

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

Teşekkür! MSAL.JS'de denedim, ancak sonra bu özel durumu aldım? this.userAgentApp.acquireTokenPopup (authSettings.scopes, this.policyEditProfile) .ve ((accessToken) => { this.setAuthenticated (accessToken); }, (hata) => { console.error (hata); }) AADB2C90055: İstekte sağlanan 'açık profil' kapsamı 'https://example.com/calendar.read' gibi bir kaynak belirtmelidir. Korelasyon ID: 8a022666-3400-4d7d-A847-f8dc4dc49452 Damgası: 2017/08/13 23: 42: 10Z . Ben giriş yaparken aynı kapsamları kullanıyorum – Boland

+0

invalid_request Neden ben diğer ihtiyaç düzenleme profili kapsamları? – Boland