0

Azure の AD B2C は、登録されている SPA アプリのマニフェストで v2 トークンが構成されていても、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",
  ...
}

ポインタをいただければ幸いです。

4

1 に答える 1