【问题标题】:Azure MSAL JS: How to edit profile?Azure MSAL JS:如何编辑配置文件?
【发布时间】:2018-01-17 04:27:08
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    是的,这是正确的。您将需要使用不同的权限,其 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 桌面显示了如何使用 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);
    

    【讨论】:

    • 谢谢!我已经在 MSAL.JS 中尝试过,但是我得到了这个异常? this.userAgentApp.acquireTokenPopup(authSettings.scopes, this.policyEditProfile).then((accessToken) => { this.setAuthenticated(accessToken); }, (error) => { console.error(error); }) AADB2C90055:请求中提供的范围“openid profile”必须指定一个资源,例如“example.com/calendar.read”。相关 ID:8a022666-3400-4d7d-a847-f8dc4dc49452 时间戳:2017-08-13 23:42:10Z:invalid_request
    • 我使用的范围与登录时相同。为什么我需要其他范围来编辑配置文件?
    • 您是否找到了通过 MSAL.js 让 Edit Profile 工作的解决方案?
    猜你喜欢
    • 1970-01-01
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 2010-12-10
    • 1970-01-01
    相关资源
    最近更新 更多