首页 文章

Azure MSAL JS:如何编辑 Profiles ?

提问于
浏览
13

我已经成功实现了Azure AD B2C的MSAL JS . 下一步是让用户编辑他们的 Profiles . 我为编辑 Profiles 创建了一个新政策 . 但是如何将用户重定向到那里?只有登录方法/获取令牌方法 . 我试图将权限设置为不同的策略 . 然后它会重定向到正确的页面,但随后它开始抱怨范围内的错误,并在本地搞乱令牌 .

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 回答

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

    顺便说一句,该示例虽然对于.NET Desktop显示了如何使用 edit profilepassword reset 策略: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);
    

相关问题