Azure MSAL JS:如何编辑配置文件?

Posted

技术标签:

【中文标题】Azure MSAL JS:如何编辑配置文件?【英文标题】:Azure MSAL JS: How to edit profile? 【发布时间】: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,对吗?

【问题讨论】:

【参考方案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 工作的解决方案?

以上是关于Azure MSAL JS:如何编辑配置文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用MSAL.js为Azure DevOps获取有效的AAD v2令牌

如何在不使用 ADAL.js 或 MSAL.js 的情况下将我的 activiti 应用程序(版本 6)与 Azure Active Directory 端点 v2.0 集成

登录后如何获取用户名?我正在尝试使用 MSAL(@azure/msal-angular)进行 Azure 登录

如何使用 @azure/msal-angular 获取用户的 AAD 成员资格

如何使用 Azure AD MSAL 库将角色包含到访问令牌中

Electron + Vue + msal-nodejs + Azure Ad:重定向 URL 问题