微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

由于缺少“配置文件”范围,无法使用带有自定义协议的 MSAL 进行 Azure B2C 身份验证

如何解决由于缺少“配置文件”范围,无法使用带有自定义协议的 MSAL 进行 Azure B2C 身份验证

下午好,

我目前正在尝试使用 B2C 和以下版本的 msal 库来验证我们的 Angular 客户端应用程序:

  "@auth0/angular-jwt": "5.0.2","@azure/msal-angular": "2.0.0","@azure/msal-browser": "2.14.0",

我已经使用位于此处的指南创建了自定义端点:https://docs.microsoft.com/en-us/azure/active-directory-b2c/tutorial-create-user-flows?pivots=b2c-custom-policy,但是每当我尝试加载登录弹出窗口时,我都会收到以下错误

 ServerError: invalid_request: AADB2C90012: The scope 'openid profile offline_access' provided in request is not supported

我在 Azure AD B2C 应用注册添加了“openid”和“offline_access”权限,但据我所知,没有“profile”这样的范围,因为我找不到它来添加它。此外,我没有在网上看到这个错误,这让我觉得我遗漏了一些东西,但回顾它似乎没有帮助。有谁知道我错过了什么?

编辑 - 如果我将以下内容添加到我的自定义协议中:

  <Metadata>
    <Item Key="client_id">c2cbecf3-731c-4a5c-8324-75573e20559c</Item>
    <Item Key="scopes_supported">openid profile offline_access</Item>
  </Metadata>

那个错误消失了,但我收到了错误

The application associated with client id '<my client id>' has no registered redirect URIs.

事实并非如此。

Edit2 - 我不知道为什么在之前的应用注册中没有显示“个人资料”,但我能够创建一个新的并添加个人资料权限,但我仍然收到同样的错误

Edit3 - 如果仅指定“openid”范围,我已经确认发出的授权请求可以通过拦截它并在再次发送之前修改它来指定。最可能的原因是因为发现端点只在“scopes_supported”下指定了“openapi”,我已经尝试了我能想到的所有方法搜索了文档以找出如何添加到这个变量,但结果却是空手而归。如果有人知道如何更新自定义协议的范围,请告诉我

解决方法

将 app.module 中的 protocolMode 改为 AAD

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。