17

我已经成功地为 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,对吗?

4

1 回答 1

6

是的,这是正确的。您将需要使用不同的权限,其 URL 由租户和策略名称组成,如下所示

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 Desktop 显示了如何使用编辑配置文件密码重置策略: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);
于 2017-08-10T09:25:47.520 回答