Azure MSAL JS:如何编辑个人资料?

时间:2017-08-09 10:24:17

标签: azure azure-ad-b2c msal.js

我已成功为Azure AD B2C实施了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,这是正确的吗?

1 个答案:

答案 0 :(得分: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 Desktop显示了如何使用编辑个人资料密码重置政策:active-directory-b2c-dotnet-desktop ,但请特别注意{ {3}}方法,获取令牌的因素(以交互方式)将触发对话框以编辑配置文件:

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