【问题标题】:Cannot renew access token from B2C, error AADB2C90077无法从 B2C 更新访问令牌,错误 AADB2C90077
【发布时间】:2018-06-24 08:20:33
【问题描述】:

我在尝试从我的 AD B2C 获取新的访问令牌时遇到问题。在我的 SPA 中,我使用 MSAL.js 库 (v0.1.3) 对我的 AD B2C 进行身份验证。一小时后,访问令牌过期,因此我执行了静默令牌更新程序,但它失败了。我使用以下链接获取新的访问令牌:

https://login.microsoftonline.com/te/myApp.onmicrosoft.com/b2c_1_signin/oauth2/v2.0/authorize?response_type=token&scope=https%3A%2F%2FmyApp.onmicrosoft.com%2Fapi%2Faccount.read%20openid%20profile&client_id=XXX&redirect_uri=https%3A%2F%2FmyApp.azurewebsites.net%2F&state=XXX&nonce=XXX&client_info=1&x-client-SKU=MSAL.JS&x-client-Ver=0.1.3&client-request-id=XXX&prompt=none&domain_req=XXX&login_req=XXX-b2c_1_signin&domain_hint=organizations

我从 B2C 收到以下错误:

AADB2C90077:用户没有现有的会话和请求提示 参数的值为“无”。相关 ID:YYY

我找不到任何有关导致错误 AADB2C90077 的信息。

谢谢

【问题讨论】:

  • 嗯,错误意味着没有找到 B2C 租户的会话 cookie。如果您在访问令牌处于活动状态时再次登录,是否会自动重定向回应用程序?
  • 您是否在其他帐户上与 Azure AD 进行了活动会话?
  • 您可能传递了错误的范围值。参考:StackOverflow Link.
  • 当我收到错误消息时,我的 SPA 从 MSAL.js 调用重定向函数,然后我可以登录 B2C 并重定向到我的 SPA,新的访问令牌在下一小时内有效.
  • 我也通过 Azure 门户连接到 AD,但我不知道这是否重要。

标签: azure-active-directory adal azure-ad-b2c msal adal.js


【解决方案1】:

作为记录,在与 Microsoft 技术支持和开发团队多次来回后,我们终于确定了我的 AADB2C90077 错误代码的原因。 Azure B2C 后端存在系统未正确处理默认值的问题。 我的解决方法是修改四个令牌生命周期值:“访问和 ID 令牌生命周期”、“刷新令牌生命周期”、“刷新令牌滑动窗口生命周期”和“Web 应用会话生命周期”,以便它们出现在策略中xml。

截至 2018 年 2 月 22 日,Microsoft 确认他们已发布修复程序来解决此问题。因此,如果有人遇到问题,很可能是出于不同的原因。

【讨论】:

    【解决方案2】:

    可能导致 AADB2C90077 错误的一件事是用户流或自定义策略的单点登录配置的禁用值。

    假设您正在使用 SPA 应用为您的 Web API 应用请求令牌,就像在 this MSAL sample 中所做的那样。 SPA 应用程序和 Web API 应用程序都有自己的应用程序注册。您正在从 SPA 应用程序访问 Web API 应用程序的范围。交互式登录返回 id_token,但随后的访问令牌请求失败并显示上述消息。

    这是为用户流更改的设置(自定义策略需要编辑 XML): User flow setting that causes AADB2C90077

    【讨论】:

      猜你喜欢
      • 2017-06-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 2018-05-25
      • 2019-08-25
      • 2014-02-26
      • 2016-11-28
      相关资源
      最近更新 更多