2017-08-09 43 views
15

我已成功實施MSAL JS for Azure AD B2C。 下一步是讓用戶編輯他們的個人資料。我爲編輯個人資料創建了一項新政策。 但如何將用戶重定向到那裏?只有登錄方法/獲取令牌方法。 我試圖將權限設置爲不同的策略。然後它重定向到正確的頁面,但是它開始抱怨範圍中的錯誤,並且它在本地混淆了令牌。Azure MSAL JS:如何編輯配置文件?

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

的ASP.NET代碼示例明確有一個選項來設置editProfile政策ID: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失蹤,我必須手動工藝的URL,是正確的?

回答

6

是的,這是正確的。您將需要使用的URL是由租戶和策略名稱的不同權限,如圖所示here

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,該樣本,雖然.NET桌面展示瞭如何使用編輯個人資料密碼重置政策:active-directory-b2c-dotnet-desktop,看到特別是EditProfileButton_Click方法,獲得令牌的因素(交互)將觸發對話框來編輯配置文件:

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

感謝這個!我已經在MSAL.JS中試過了,但是我得到這個異常? this.userAgentApp.acquireTokenPopup(authSettings.scopes,this.policyEditProfile)。然後((的accessToken)=> { this.setAuthenticated(的accessToken); },(誤差)=> { console.error(誤差); }) AADB2C90055:請求中提供的作用域'openid配置文件'必須指定一個資源,例如'https://example.com/calendar.read'。 相關ID:8a022666-3400-4d7d-A847-f8dc4dc49452 時間戳:2017年8月13日23:42:10Z :INVALID_REQUEST – Boland

+0

我使用的是相同的範圍登錄時爲我爲什麼要等編輯配置文件的範圍? – Boland