【问题标题】:Azure AD B2C keeps providing v1 tokens not v2 tokensAzure AD B2C 一直提供 v1 令牌而不是 v2 令牌
【发布时间】:2022-01-02 09:14:41
【问题描述】:

即使在已注册的 SPA 应用的清单中配置了 v2 令牌,Azure 的 AD B2C 仍会继续发布 v1 令牌:

{
    "id": "XXX",
    "acceptMappedClaims": null,
    "accessTokenAcceptedVersion": 2,
    "addIns": [],
    "allowPublicClient": null,
    ...
}

客户端使用@azure/msal-angular v2.0.5(连同@azure/msal-browser v2.19.0)通过普通的MSAL拦截器请求令牌:

export const protectedResourceMap: Map<string, Array<string>> = new Map([
  [
    urlJoin(configs.apiUri, 'screen'),
    [configs.authConfig.scope.screen_access],
  ],
]);

@NgModule({
  imports: [
    MsalModule.forRoot(
      new PublicClientApplication({
        auth: {
          clientId: '...',
          authority: 'https://login.microsoftonline.com/XXX.onmicrosoft.com',
          postLogoutRedirectUri: '.../logout',
          navigateToLoginRequestUrl: true,
          redirectUri: '.../auth',
        },
        cache: {
          cacheLocation: 'sessionStorage',
        },
      }),
      {
        interactionType: InteractionType.Redirect, // Popup or Redirect
        loginFailedRoute: '/login-failed'
      },
      {
        interactionType: InteractionType.Redirect,  // Popup or Redirect
        protectedResourceMap,
      })
      ...

这看起来不错,尤其是"accessTokenAcceptedVersion": 2

令牌仍然是 v1 的根本原因可能是什么?

{
  "aud": "00000003-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "iss": "https://sts.windows.net/7dcXX-XXXXX.../",
  ...
  "ver": "1.0",
  ...
}

指针将不胜感激。

【问题讨论】:

    标签: jwt azure-ad-b2c msal-angular


    【解决方案1】:

    Azure AD B2C 仅在使用 v2.0 发出 OIDC 身份验证请求时使用端点,而 v1.0 从未存在过。所以它总是发布 v1.0 令牌(v2 是第一个也是唯一的版本)。这是完全正常的。

    只有 Azure AD 具有 v1.0 和 v2.0 OIDC 端点,因此映射基于 accessTokenAcceptedVersion

    除非您有 SAML 依赖方,否则您无需在 AAD B2C 应用程序注册中处理此属性。

    【讨论】:

    • 你有什么想法,为什么生成的令牌有https://sts.windows.net/7dcXX-XXXXX.../作为发行者,而不是“login.microsoftonline.com/XXX...”?还是我应该针对 sts.windows.net 验证 B2C 令牌?
    • 因为你的权限设置为 login.msonline。您需要在 authConfig.js 示例中使用像 this 这样的配置。
    猜你喜欢
    • 2021-03-03
    • 1970-01-01
    • 2018-01-21
    • 2018-01-08
    • 2017-11-23
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多