AzureAD / microsoft-authentication-library-for-js

Microsoft Authentication Library (MSAL) for JS
http://aka.ms/aadv2
MIT License
3.63k stars 2.64k forks source link

Every API call we get 400 bad request from 'oauth2/v2.0/token' #5811

Closed patolax closed 1 year ago

patolax commented 1 year ago

Core Library

MSAL.js v2 (@azure/msal-browser)

Core Library Version

2.4.3

Wrapper Library

MSAL Angular (@azure/msal-angular)

Wrapper Library Version

2.4.3

Public or Confidential Client?

Public

Description

For every API call we get 400 bad request. See the log entry below in bold. This does not happen if we logout and login again, that is after a complete new session.

But if close the browser and say reload the app next day, this issue starts to occur. Sometime it take like 1 min to redirect to the login page if token is missing or invalid.

Error Message

https://carapp.b2clogin.com/carapp.onmicrosoft.com/b2c_1_login/oauth2/v2.0/token 400 (Bad Request)

Msal Logs

main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : @azure/msal-angular@2.4.3 : Verbose - MSAL Interceptor activated main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : @azure/msal-angular@2.4.3 : Verbose - Interceptor - getting scopes for endpoint main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : @azure/msal-angular@2.4.3 : Verbose - Interceptor - active account selected main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : @azure/msal-angular@2.4.3 : Info - Interceptor - 10 scopes found for endpoint main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : @azure/msal-browser@2.28.3 : Verbose - preflightBrowserEnvironmentCheck started main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : @azure/msal-browser@2.28.3 : Verbose - acquireTokenSilent called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : @azure/msal-browser@2.28.3 : Verbose - acquireTokenSilent called for the first time, storing active request main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : @azure/msal-browser@2.28.3 : Info - Emitting event: msal:acquireTokenStart main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : @azure/msal-browser@2.28.3 : Verbose - Emitting event to callback 778f0925-ccb0-45d3-9a5b-ae68aa9b7dd2: msal:acquireTokenStart main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : @azure/msal-browser@2.28.3 : Verbose - acquireTokenSilent - attempting to acquire token from web flow main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - Initializing BaseAuthRequest main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - Authentication Scheme wasn't explicitly set in request, defaulting to "Bearer" request main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - initializeServerTelemetryManager called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - getClientConfiguration called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - getDiscoveredAuthority called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - Creating discovered authority with configured authority main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - Silent auth client created main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : @azure/msal-common@7.4.1 : Info - SilentFlowClient:acquireCachedToken - Cached access token is expired or will expire within 300 seconds. main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : @azure/msal-browser@2.28.3 : Info - Emitting event: msal:acquireTokenFromNetworkStart main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : @azure/msal-browser@2.28.3 : Verbose - Emitting event to callback 778f0925-ccb0-45d3-9a5b-ae68aa9b7dd2: msal:acquireTokenFromNetworkStart main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - Initializing BaseAuthRequest main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - Authentication Scheme set to "Bearer" as configured in Auth request main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - initializeServerTelemetryManager called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - getClientConfiguration called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - getDiscoveredAuthority called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - Creating discovered authority with configured authority main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:44 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - Refresh token client created polyfills-es2015.bcb70395134d50a18966.js:1 POST **https://carapp.b2clogin.com/carapp.onmicrosoft.com/b2c_1_login/oauth2/v2.0/token 400 (Bad Request)** e.fetch @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 a @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.sendPostRequestAsync @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 o @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.sendPostRequest @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 o @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.executePostToTokenEndpoint @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 o @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invoke @ polyfills-es2015.bcb70395134d50a18966.js:1 onInvoke @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invoke @ polyfills-es2015.bcb70395134d50a18966.js:1 run @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 onInvokeTask @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 runTask @ polyfills-es2015.bcb70395134d50a18966.js:1 k @ polyfills-es2015.bcb70395134d50a18966.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 p @ polyfills-es2015.bcb70395134d50a18966.js:1 h @ polyfills-es2015.bcb70395134d50a18966.js:1 main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:45 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : @azure/msal-browser@2.28.3 : Verbose - Refresh token expired or invalid, attempting acquire token by iframe main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:45 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - acquireTokenByIframe called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:45 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - initializeAuthorizationRequest called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:45 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - getRedirectUri called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:45 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - Initializing BaseAuthRequest main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:45 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - Authentication Scheme set to "Bearer" as configured in Auth request main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:45 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - Setting validated request account main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:45 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - initializeServerTelemetryManager called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:45 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - getClientConfiguration called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:45 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - getDiscoveredAuthority called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:45 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - Creating discovered authority with configured authority main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:45 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - Auth code client created main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:45 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - initializeAuthorizationRequest called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:45 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : @azure/msal-common@7.4.1 : Verbose - createAuthCodeUrlQueryString: Adding login_hint from account main-es2015.fb2484a8ae0d7adbfad1.js:1 An iframe which has both allow-scripts and allow-same-origin for its sandbox attribute can remove its sandboxing. e.createHiddenIframe @ main-es2015.fb2484a8ae0d7adbfad1.js:1 e.loadFrameSync @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 a @ main-es2015.fb2484a8ae0d7adbfad1.js:1 e.initiateAuthRequest @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 o @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invoke @ polyfills-es2015.bcb70395134d50a18966.js:1 onInvoke @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invoke @ polyfills-es2015.bcb70395134d50a18966.js:1 run @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 onInvokeTask @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 runTask @ polyfills-es2015.bcb70395134d50a18966.js:1 k @ polyfills-es2015.bcb70395134d50a18966.js:1 Promise.then (async) v @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 onScheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleMicroTask @ polyfills-es2015.bcb70395134d50a18966.js:1 S @ polyfills-es2015.bcb70395134d50a18966.js:1 T @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 Promise.then (async) (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 R.e.then @ polyfills-es2015.bcb70395134d50a18966.js:1 T @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 c @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 a @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.getSubtleCryptoDigest @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 a @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.sha256Digest @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 a @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.generateCodeChallengeFromVerifier @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 a @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.generateCodes @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 a @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.generatePkceCodes @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 a @ main-es2015.fb2484a8ae0d7adbfad1.js:1 e.initializeAuthorizationCodeRequest @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 a @ main-es2015.fb2484a8ae0d7adbfad1.js:1 e.silentTokenHelper @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 o @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invoke @ polyfills-es2015.bcb70395134d50a18966.js:1 onInvoke @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invoke @ polyfills-es2015.bcb70395134d50a18966.js:1 run @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 onInvokeTask @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 runTask @ polyfills-es2015.bcb70395134d50a18966.js:1 k @ polyfills-es2015.bcb70395134d50a18966.js:1 Promise.then (async) v @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 onScheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleMicroTask @ polyfills-es2015.bcb70395134d50a18966.js:1 S @ polyfills-es2015.bcb70395134d50a18966.js:1 T @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 Promise.then (async) (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 R.e.then @ polyfills-es2015.bcb70395134d50a18966.js:1 T @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 c @ main-es2015.fb2484a8ae0d7adbfad1.js:1 o @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invoke @ polyfills-es2015.bcb70395134d50a18966.js:1 onInvoke @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invoke @ polyfills-es2015.bcb70395134d50a18966.js:1 run @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 onInvokeTask @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 runTask @ polyfills-es2015.bcb70395134d50a18966.js:1 k @ polyfills-es2015.bcb70395134d50a18966.js:1 Promise.then (async) v @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 onScheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleMicroTask @ polyfills-es2015.bcb70395134d50a18966.js:1 S @ polyfills-es2015.bcb70395134d50a18966.js:1 T @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 Promise.then (async) (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 R.e.then @ polyfills-es2015.bcb70395134d50a18966.js:1 T @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 c @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 a @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.sendPostRequestAsync @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 o @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.sendPostRequest @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 o @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.executePostToTokenEndpoint @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 o @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invoke @ polyfills-es2015.bcb70395134d50a18966.js:1 onInvoke @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invoke @ polyfills-es2015.bcb70395134d50a18966.js:1 run @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 onInvokeTask @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 runTask @ polyfills-es2015.bcb70395134d50a18966.js:1 k @ polyfills-es2015.bcb70395134d50a18966.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 p @ polyfills-es2015.bcb70395134d50a18966.js:1 h @ polyfills-es2015.bcb70395134d50a18966.js:1 /#state=...d8X5WQVy0d1XPqkIwE5zTka3H9N5asbhzqZ3oGEAqbdE7Va6QuqBIjGSkDQCBD10rXR7CKFu3JiXl83QEZx75SiCUTuEkUfTGWktu21G680z-hEGEJbgz0ReKe7IP2XVRY_kniTRVPXlvGFXmkY8DKjuLCJSKuFBUUou3xK6q_-dIj1gua1mwYRAzV71TlW-JsyXabXAykxBK-2e917Y5Nbl9hdvxvRigawJTKs49nxqZS4RMbpaVax-Mb_ZmEAKBhIyb8iBmmO7ynj08JLCn12w3f0MCLjbaqh-bwCSbFnM-AKrgAhs00udIgk3FWZiYaD2Y660b3qQS0IjOru3_PJgPPNAc2ojFi6CS5yHgmnFkWcjSwU4KnT6xspVbqwJB_ube-d3RSRleMecQMB_kWZB9Q.G_9R1QkjNRjAYiK5ZUHgsQ:1 An iframe which has both allow-scripts and allow-same-origin for its sandbox attribute can remove its sandboxing. main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:49 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - validateAndExtractStateFromHash called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:49 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - Returning state from hash main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:49 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : msal.js.browser@2.28.3 : Verbose - InteractionHandler.handleCodeResponse called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:49 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : @azure/msal-common@7.4.1 : Info - in acquireToken call main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:49 GMT] : @azure/msal-browser@2.28.3 : Info - Emitting event: msal:acquireTokenSuccess main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:49 GMT] : @azure/msal-browser@2.28.3 : Verbose - Emitting event to callback 778f0925-ccb0-45d3-9a5b-ae68aa9b7dd2: msal:acquireTokenSuccess main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:49 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : @azure/msal-browser@2.28.3 : Verbose - PerformanceClient: Measurement found for acquireTokenSilent main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:49 GMT] : [c31c63b2-1a83-4fa5-a1d0-c9a025aa02c4] : @azure/msal-browser@2.28.3 : Verbose - PerformanceClient: Emitting performance events main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:49 GMT] : @azure/msal-angular@2.4.3 : Verbose - Interceptor - setting authorization headers main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : @azure/msal-angular@2.4.3 : Verbose - MSAL Interceptor activated main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : @azure/msal-angular@2.4.3 : Verbose - Interceptor - getting scopes for endpoint main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : @azure/msal-angular@2.4.3 : Verbose - Interceptor - active account selected main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : @azure/msal-angular@2.4.3 : Info - Interceptor - 10 scopes found for endpoint main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : @azure/msal-browser@2.28.3 : Verbose - preflightBrowserEnvironmentCheck started main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : @azure/msal-browser@2.28.3 : Verbose - acquireTokenSilent called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : @azure/msal-browser@2.28.3 : Verbose - acquireTokenSilent called for the first time, storing active request main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : @azure/msal-browser@2.28.3 : Info - Emitting event: msal:acquireTokenStart main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : @azure/msal-browser@2.28.3 : Verbose - Emitting event to callback 778f0925-ccb0-45d3-9a5b-ae68aa9b7dd2: msal:acquireTokenStart main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : @azure/msal-browser@2.28.3 : Verbose - acquireTokenSilent - attempting to acquire token from web flow main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - Initializing BaseAuthRequest main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - Authentication Scheme wasn't explicitly set in request, defaulting to "Bearer" request main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : @azure/msal-angular@2.4.3 : Verbose - MSAL Interceptor activated main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : @azure/msal-angular@2.4.3 : Verbose - Interceptor - getting scopes for endpoint main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : @azure/msal-angular@2.4.3 : Verbose - Interceptor - active account selected main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : @azure/msal-angular@2.4.3 : Info - Interceptor - 10 scopes found for endpoint main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : @azure/msal-browser@2.28.3 : Verbose - preflightBrowserEnvironmentCheck started main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [4bf838b6-2adb-4fad-abe5-ad75a93ae9ba] : @azure/msal-browser@2.28.3 : Verbose - acquireTokenSilent called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [4bf838b6-2adb-4fad-abe5-ad75a93ae9ba] : @azure/msal-browser@2.28.3 : Verbose - acquireTokenSilent has been called previously, returning the result from the first call main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : @azure/msal-angular@2.4.3 : Verbose - MSAL Interceptor activated main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : @azure/msal-angular@2.4.3 : Verbose - Interceptor - getting scopes for endpoint main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : @azure/msal-angular@2.4.3 : Verbose - Interceptor - active account selected main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : @azure/msal-angular@2.4.3 : Info - Interceptor - 10 scopes found for endpoint main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : @azure/msal-browser@2.28.3 : Verbose - preflightBrowserEnvironmentCheck started main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [f929a270-c348-4ed0-9cb8-cba85ea635b5] : @azure/msal-browser@2.28.3 : Verbose - acquireTokenSilent called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [f929a270-c348-4ed0-9cb8-cba85ea635b5] : @azure/msal-browser@2.28.3 : Verbose - acquireTokenSilent has been called previously, returning the result from the first call main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - initializeServerTelemetryManager called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - getClientConfiguration called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - getDiscoveredAuthority called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - Creating discovered authority with configured authority main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - Silent auth client created main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : @azure/msal-common@7.4.1 : Info - SilentFlowClient:acquireCachedToken - Cached access token is expired or will expire within 300 seconds. main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : @azure/msal-browser@2.28.3 : Info - Emitting event: msal:acquireTokenFromNetworkStart main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : @azure/msal-browser@2.28.3 : Verbose - Emitting event to callback 778f0925-ccb0-45d3-9a5b-ae68aa9b7dd2: msal:acquireTokenFromNetworkStart main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - Initializing BaseAuthRequest main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - Authentication Scheme set to "Bearer" as configured in Auth request main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - initializeServerTelemetryManager called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - getClientConfiguration called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - getDiscoveredAuthority called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - Creating discovered authority with configured authority main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:50 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - Refresh token client created polyfills-es2015.bcb70395134d50a18966.js:1 POST https://carapp.b2clogin.com/carapp.onmicrosoft.com/b2c_1_login/oauth2/v2.0/token 400 (Bad Request) e.fetch @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 a @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.sendPostRequestAsync @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 o @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.sendPostRequest @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 o @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.executePostToTokenEndpoint @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 o @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invoke @ polyfills-es2015.bcb70395134d50a18966.js:1 onInvoke @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invoke @ polyfills-es2015.bcb70395134d50a18966.js:1 run @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 onInvokeTask @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 runTask @ polyfills-es2015.bcb70395134d50a18966.js:1 k @ polyfills-es2015.bcb70395134d50a18966.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 p @ polyfills-es2015.bcb70395134d50a18966.js:1 h @ polyfills-es2015.bcb70395134d50a18966.js:1 main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:52 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : @azure/msal-browser@2.28.3 : Verbose - Refresh token expired or invalid, attempting acquire token by iframe main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:52 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - acquireTokenByIframe called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:52 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - initializeAuthorizationRequest called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:52 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - getRedirectUri called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:52 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - Initializing BaseAuthRequest main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:52 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - Authentication Scheme set to "Bearer" as configured in Auth request main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:52 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - Setting validated request account main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:52 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - initializeServerTelemetryManager called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:52 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - getClientConfiguration called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:52 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - getDiscoveredAuthority called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:52 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - Creating discovered authority with configured authority main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:52 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - Auth code client created main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:52 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - initializeAuthorizationRequest called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:52 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : @azure/msal-common@7.4.1 : Verbose - createAuthCodeUrlQueryString: Adding login_hint from account main-es2015.fb2484a8ae0d7adbfad1.js:1 An iframe which has both allow-scripts and allow-same-origin for its sandbox attribute can remove its sandboxing. e.createHiddenIframe @ main-es2015.fb2484a8ae0d7adbfad1.js:1 e.loadFrameSync @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 a @ main-es2015.fb2484a8ae0d7adbfad1.js:1 e.initiateAuthRequest @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 o @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invoke @ polyfills-es2015.bcb70395134d50a18966.js:1 onInvoke @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invoke @ polyfills-es2015.bcb70395134d50a18966.js:1 run @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 onInvokeTask @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 runTask @ polyfills-es2015.bcb70395134d50a18966.js:1 k @ polyfills-es2015.bcb70395134d50a18966.js:1 Promise.then (async) v @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 onScheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleMicroTask @ polyfills-es2015.bcb70395134d50a18966.js:1 S @ polyfills-es2015.bcb70395134d50a18966.js:1 T @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 Promise.then (async) (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 R.e.then @ polyfills-es2015.bcb70395134d50a18966.js:1 T @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 c @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 a @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.getSubtleCryptoDigest @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 a @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.sha256Digest @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 a @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.generateCodeChallengeFromVerifier @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 a @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.generateCodes @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 a @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.generatePkceCodes @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 a @ main-es2015.fb2484a8ae0d7adbfad1.js:1 e.initializeAuthorizationCodeRequest @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 a @ main-es2015.fb2484a8ae0d7adbfad1.js:1 e.silentTokenHelper @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 o @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invoke @ polyfills-es2015.bcb70395134d50a18966.js:1 onInvoke @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invoke @ polyfills-es2015.bcb70395134d50a18966.js:1 run @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 onInvokeTask @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 runTask @ polyfills-es2015.bcb70395134d50a18966.js:1 k @ polyfills-es2015.bcb70395134d50a18966.js:1 Promise.then (async) v @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 onScheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleMicroTask @ polyfills-es2015.bcb70395134d50a18966.js:1 S @ polyfills-es2015.bcb70395134d50a18966.js:1 T @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 Promise.then (async) (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 R.e.then @ polyfills-es2015.bcb70395134d50a18966.js:1 T @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 c @ main-es2015.fb2484a8ae0d7adbfad1.js:1 o @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invoke @ polyfills-es2015.bcb70395134d50a18966.js:1 onInvoke @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invoke @ polyfills-es2015.bcb70395134d50a18966.js:1 run @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 onInvokeTask @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 runTask @ polyfills-es2015.bcb70395134d50a18966.js:1 k @ polyfills-es2015.bcb70395134d50a18966.js:1 Promise.then (async) v @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 onScheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleTask @ polyfills-es2015.bcb70395134d50a18966.js:1 scheduleMicroTask @ polyfills-es2015.bcb70395134d50a18966.js:1 S @ polyfills-es2015.bcb70395134d50a18966.js:1 T @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 Promise.then (async) (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 R.e.then @ polyfills-es2015.bcb70395134d50a18966.js:1 T @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 c @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 a @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.sendPostRequestAsync @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 o @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.sendPostRequest @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 D @ polyfills-es2015.bcb70395134d50a18966.js:1 o @ main-es2015.fb2484a8ae0d7adbfad1.js:1 t.executePostToTokenEndpoint @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 (anonymous) @ main-es2015.fb2484a8ae0d7adbfad1.js:1 o @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invoke @ polyfills-es2015.bcb70395134d50a18966.js:1 onInvoke @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invoke @ polyfills-es2015.bcb70395134d50a18966.js:1 run @ polyfills-es2015.bcb70395134d50a18966.js:1 (anonymous) @ polyfills-es2015.bcb70395134d50a18966.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 onInvokeTask @ main-es2015.fb2484a8ae0d7adbfad1.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 runTask @ polyfills-es2015.bcb70395134d50a18966.js:1 k @ polyfills-es2015.bcb70395134d50a18966.js:1 invokeTask @ polyfills-es2015.bcb70395134d50a18966.js:1 p @ polyfills-es2015.bcb70395134d50a18966.js:1 h @ polyfills-es2015.bcb70395134d50a18966.js:1 /#state=...srT8FZdY1DXVn_fUOEirabLM7Dba0gHP03QO_oAmyXOV4S8v_WKLAdTnIBaMLodE8QJXJXyInSeNd3I6-oAiSd73L16hiyV23w5NL5Ichd.2xzOPxem5iFWtfZORCi9RA:1 An iframe which has both allow-scripts and allow-same-origin for its sandbox attribute can remove its sandboxing. main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:53 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - validateAndExtractStateFromHash called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:53 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - Returning state from hash main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:53 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : msal.js.browser@2.28.3 : Verbose - InteractionHandler.handleCodeResponse called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:53 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : @azure/msal-common@7.4.1 : Info - in acquireToken call main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:53 GMT] : @azure/msal-browser@2.28.3 : Info - Emitting event: msal:acquireTokenSuccess main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:53 GMT] : @azure/msal-browser@2.28.3 : Verbose - Emitting event to callback 778f0925-ccb0-45d3-9a5b-ae68aa9b7dd2: msal:acquireTokenSuccess main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:53 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : @azure/msal-browser@2.28.3 : Verbose - PerformanceClient: Measurement found for acquireTokenSilent main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:53 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : @azure/msal-browser@2.28.3 : Verbose - PerformanceClient: Submeasurement for acquireTokenSilent already exists for standardInteractionClientGetDiscoveredAuthority, ignoring main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:53 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : @azure/msal-browser@2.28.3 : Verbose - PerformanceClient: Submeasurement for acquireTokenSilent already exists for standardInteractionClientGetDiscoveredAuthority, ignoring main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:53 GMT] : [6c84ef77-2de5-43ed-8aa8-0a510290cdda] : @azure/msal-browser@2.28.3 : Verbose - PerformanceClient: Emitting performance events main-es2015.fb2484a8ae0d7adbfad1.js:1 [Mon, 20 Mar 2023 02:52:53 GMT] : @azure/msal-angular@2.4.3 : Verbose - Interceptor - setting authorization headers

MSAL Configuration

Same as sample

Relevant Code Snippets

NA

Reproduction Steps

Expected Behavior

400 bad request should not occur

Identity Provider

Azure B2C Basic Policy

Browsers Affected (Select all that apply)

Chrome

Regression

No response

Source

External (Customer)

konstantin-msft commented 1 year ago

Hi @patolax. It doesn't look like an msal issue. Could you please share your fiddler trace? You can send the trace to my email (in my profile). Thanks.

ghost commented 1 year ago

@patolax This issue has been automatically marked as stale because it is marked as requiring author feedback but has not had any activity for 5 days. If your issue has been resolved please let us know by closing the issue. If your issue has not been resolved please leave a comment to keep this open. It will be closed automatically in 7 days if it remains stale.

patolax commented 1 year ago

@konstantin-msft emailed you the logs.

jo-arroyo commented 1 year ago

@patolax Are you able to reproduce this issue in our Angular B2C sample? Additionally, I see in the logs that the MsalInterceptor is being triggered multiple times in a row. Can you provide your usage of MSAL above as well?

patolax commented 1 year ago

config.ts

import { MsalGuardConfiguration, MsalInterceptorConfiguration } from '@azure/msal-angular';
import { Configuration, PublicClientApplication, InteractionType, IPublicClientApplication, LogLevel, RedirectRequest, PopupRequest } from '@azure/msal-browser';

export const isIE = window.navigator.userAgent.indexOf('MSIE ') > -1 || window.navigator.userAgent.indexOf('Trident/') > -1;

export const b2cPolicies = {
  names: {
    signUpSignIn: 'b2c_1_login',
    resetPassword: 'b2c_1_reset',
  },
  authorities: {
    signUpSignIn: {
      authority: 'https://carapp.b2clogin.com/carapp.onmicrosoft.com/b2c_1_login'
    },
    resetPassword: {
      authority: 'https://carapp.b2clogin.com/carapp.onmicrosoft.com/b2c_1_reset'
    }
  },
  authorityDomain: "carapp.b2clogin.com"
};

// Config object to be passed to Msal on creation.
// For a full list of msal.js configuration parameters,
// visit https://azuread.github.io/microsoft-authentication-library-for-js/docs/msal/modules/_configuration_.html
export const msalConfig: Configuration = {
  auth: {
    clientId: '',
    authority: b2cPolicies.authorities.signUpSignIn.authority,
    knownAuthorities: [b2cPolicies.authorityDomain],
    redirectUri: 'http://localhost:7100/',
    postLogoutRedirectUri: 'http://localhost:7100/',
    navigateToLoginRequestUrl: true,
  },
  cache: {
    cacheLocation: 'localStorage', // This configures where your cache will be stored
    storeAuthStateInCookie: isIE,  // Set this to "true" to save cache in cookies to address trusted zones limitations in
    // IE (see: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/Known-issues-on-IE-and-Edge-Browser)
  },
  system: {
    loggerOptions: {
      loggerCallback(logLevel: LogLevel, message: string) {
        console.log(message);
      },
      logLevel: LogLevel.Warning,
      piiLoggingEnabled: false
    }
  }
};

/**
 * Scopes you add here will be prompted for user consent during sign-in.
 * By default, MSAL.js will add OIDC scopes (openid, profile, email) to any login request.
 * For more information about OIDC scopes, visit: 
 * https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent#openid-connect-scopes
 */
export const loginRequest = {
  scopes: ["openid", "profile"],
};

export const resetPasswordFlowRequest: RedirectRequest | PopupRequest = {
  authority: b2cPolicies.authorities.resetPassword.authority,
  scopes: ["openid", "profile"],
};

export const protectedResources = {
  rrcApi: {
    endpoint: "https://localhost:9000/api",
    scopes: [
      'https://carapp.onmicrosoft.com/rrcapi/tenant_user_read',
      'https://carapp.onmicrosoft.com/rrcapi/tenant_user_write',
    ],
  },
};

/**
 * Here we pass the configuration parameters to create an MSAL instance.
 * For more info, visit: https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-angular/docs/v2-docs/configuration.md
 */
export function MSALInstanceFactory(): IPublicClientApplication {
  return new PublicClientApplication(msalConfig);
}

/**
 * MSAL Angular will automatically retrieve tokens for resources 
 * added to protectedResourceMap. For more info, visit: 
 * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-angular/docs/v2-docs/initialization.md#get-tokens-for-web-api-calls
 */
export function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {
  const protectedResourceMap = new Map<string, Array<string>>();

  protectedResourceMap.set(protectedResources.rrcApi.endpoint, protectedResources.rrcApi.scopes);

  return {
    interactionType: InteractionType.Redirect,
    protectedResourceMap
  };
}

/**
 * Set your default interaction type for MSALGuard here. If you have any
 * additional scopes you want the user to consent upon login, add them here as well.
 */
export function MSALGuardConfigFactory(): MsalGuardConfiguration {
  return {
    interactionType: InteractionType.Redirect,
    authRequest: loginRequest
  };
}

app.module

import { MSALGuardConfigFactory, MSALInstanceFactory, MSALInterceptorConfigFactory } from './config';

 {
      provide: HTTP_INTERCEPTORS,
      useClass: MsalInterceptor,
      multi: true
    },
    {
      provide: MSAL_INSTANCE,
      useFactory: MSALInstanceFactory
    },
    {
      provide: MSAL_GUARD_CONFIG,
      useFactory: MSALGuardConfigFactory
    },
    {
      provide: MSAL_INTERCEPTOR_CONFIG,
      useFactory: MSALInterceptorConfigFactory
    },
    MsalService,
    MsalGuard,
    MsalBroadcastService,
    MsalAuthService,

Our Service

@Injectable()
export class MsalAuthService {
  title = 'Azure AD B2C';
  isIframe = false;
  loggedIn = false;
  public isAuthorized$ = new BehaviorSubject<boolean>(false);
  public acquireTokenSuccess$ = new BehaviorSubject<any>(undefined);
  private readonly logger: AbstractLogger;
  resetPasswordRequest: RedirectRequest;
  private readonly _destroying$ = new Subject<void>();

  constructor(
    @Inject(MSAL_GUARD_CONFIG) private readonly msalGuardConfig: MsalGuardConfiguration,
    private readonly msalBroadcastService: MsalBroadcastService,
    private readonly authService: MsalService,
    logSvc: LoggerService,
  ) {
    this.logger = logSvc.getLogger('MsalAuthService');
    this.isIframe = window !== window.parent && !window.opener;
    this.resetPasswordRequest = resetPasswordFlowRequest;
    this.msalBroadcastService.msalSubject$
      .pipe(
        takeUntil(this._destroying$)
      )
      .subscribe((result: EventMessage) => {
        if (result.eventType === EventType.ACQUIRE_TOKEN_FAILURE && result.error.message &&
          result.error.message.includes("access_denied")) {
          this.logger.debug("access_denied ask to login");
          let signUpSignInFlowRequest = this.getLoginRequest();
          this.login(signUpSignInFlowRequest);
        }
        else if (result.eventType === EventType.LOGIN_SUCCESS) {
          const payload = result.payload as AuthenticationResult;
          this.logger.debug("msalSubject$", payload);
          let idtoken = payload.idTokenClaims as IdTokenClaimsWithPolicyId;

          if (idtoken.acr === b2cPolicies.names.signUpSignIn || idtoken.tfp === b2cPolicies.names.signUpSignIn) {
            this.authService.instance.setActiveAccount(payload.account);
          }

          if (idtoken.acr === b2cPolicies.names.resetPassword || idtoken.tfp === b2cPolicies.names.resetPassword) {
            let signUpSignInFlowRequest = this.getLoginRequest();
            this.login(signUpSignInFlowRequest);
          }
        }
      });

    this.msalBroadcastService.inProgress$
      .pipe(
        filter((status: InteractionStatus) => status === InteractionStatus.None)
      )
      .subscribe(() => {
        this.logger.debug("inProgress$");
        this.checkAndSetActiveAccount();
      });
  }

  private getLoginRequest(): RedirectRequest | PopupRequest {
    return {
      authority: b2cPolicies.authorities.signUpSignIn.authority,
      prompt: PromptValue.LOGIN,
      scopes: protectedResources.rrcApi.scopes,
    };
  }

  async getAccessToken(): Promise<string> {
    let authResponse: AuthenticationResult | null = null;
    let accessToken = "";
    try {
      authResponse = await this.authService.instance.acquireTokenSilent({
        account: this.authService.instance.getActiveAccount()!,
        scopes: protectedResources.rrcApi.scopes,
      });

    } catch (error) {
      if (error instanceof InteractionRequiredAuthError) {
        authResponse = await this.authService.instance.acquireTokenPopup({
          scopes: protectedResources.rrcApi.scopes,
        });
      }
      this.logger.debug(error);
    }
    accessToken = authResponse ? authResponse.accessToken : "";
    if (authResponse) {
      this.acquireTokenSuccess$.next(authResponse.accessToken);
    }
    accessToken = authResponse ? authResponse.accessToken : "";
    return accessToken;
  }

  getClaims(): any {
    if (this.loggedIn) {
      const account = this.authService.instance.getActiveAccount();
      this.logger.debug("msalBroadcastService getClaims account", account);
      if (account) {
        return account.idTokenClaims;
      }
    }
    return null;
  }

  checkAndSetActiveAccount() {
    /**
     * If no active account set but there are accounts signed in, sets first account to active account
     * To use active account set here, subscribe to inProgress$ first in your component
     * Note: Basic usage demonstrated. Your app may require more complicated account selection logic
     */
    let activeAccount = this.authService.instance.getActiveAccount();
    this.logger.debug("checkAndSetActiveAccount", activeAccount);
    this.loggedIn = !!activeAccount;
    this.isAuthorized$.next(this.loggedIn);

    if (!activeAccount && this.authService.instance.getAllAccounts().length > 0) {
      let account = this.authService.instance.getAllAccounts()[0];
      this.authService.instance.setActiveAccount(account);
      this.loggedIn = !!account;
      this.isAuthorized$.next(this.loggedIn);
    }
  }

  resetPassword() {
    if (this.resetPasswordRequest) {
      this.authService.loginRedirect(this.resetPasswordRequest);
    }
  }

  login(userFlowRequest?: RedirectRequest | PopupRequest) {
    if (this.msalGuardConfig.interactionType === InteractionType.Popup) {
      if (this.msalGuardConfig.authRequest) {
        this.authService.loginPopup({ ...this.msalGuardConfig.authRequest, ...userFlowRequest } as PopupRequest)
          .subscribe((response: AuthenticationResult) => {
            this.logger.debug("login AuthenticationResult", status);
            this.authService.instance.setActiveAccount(response.account);
          });
      } else {
        this.authService.loginPopup(userFlowRequest)
          .subscribe((response: AuthenticationResult) => {
            this.logger.debug("loginPopup AuthenticationResult", status);
            this.authService.instance.setActiveAccount(response.account);
          });
      }
    } else {
      if (this.msalGuardConfig.authRequest) {
        this.authService.loginRedirect({ ...this.msalGuardConfig.authRequest, ...userFlowRequest } as RedirectRequest);
      } else {
        this.authService.loginRedirect(userFlowRequest);
      }
    }
  }

  logout() {
    this.authService.logout();
  }
}

This is very similar to angular 12 sample implementation.

And yes, eveytime we call a protected api these logs are created.

main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-angular@2.4.3 : Verbose - Guard - canActivate main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-angular@2.4.3 : Verbose - MSAL Guard activated main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-browser@2.28.3 : Verbose - handleRedirectPromise called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-browser@2.28.3 : Verbose - getAllAccounts called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-browser@2.28.3 : Verbose - handleRedirectPromise has been called previously, returning the result from the first call main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-browser@2.28.3 : Verbose - getAllAccounts called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-angular@2.4.3 : Verbose - Guard - at least 1 account exists, can activate or load main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-angular@2.4.3 : Verbose - MSAL Interceptor activated main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-angular@2.4.3 : Verbose - Interceptor - getting scopes for endpoint main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-angular@2.4.3 : Verbose - Interceptor - active account selected main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-angular@2.4.3 : Info - Interceptor - 10 scopes found for endpoint main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-browser@2.28.3 : Verbose - preflightBrowserEnvironmentCheck started main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : [f98e24ab-902c-4170-a8af-ed9b0573c2eb] : @azure/msal-browser@2.28.3 : Verbose - acquireTokenSilent called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : [f98e24ab-902c-4170-a8af-ed9b0573c2eb] : @azure/msal-browser@2.28.3 : Verbose - acquireTokenSilent called for the first time, storing active request main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-browser@2.28.3 : Info - Emitting event: msal:acquireTokenStart main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-browser@2.28.3 : Verbose - Emitting event to callback ad65cace-6987-4a44-99d2-9aad09f6a205: msal:acquireTokenStart main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-browser@2.28.3 : Verbose - acquireTokenSilent - attempting to acquire token from web flow main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : [f98e24ab-902c-4170-a8af-ed9b0573c2eb] : msal.js.browser@2.28.3 : Verbose - Initializing BaseAuthRequest main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : [f98e24ab-902c-4170-a8af-ed9b0573c2eb] : msal.js.browser@2.28.3 : Verbose - Authentication Scheme wasn't explicitly set in request, defaulting to "Bearer" request main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-angular@2.4.3 : Verbose - MSAL Interceptor activated main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-angular@2.4.3 : Verbose - Interceptor - getting scopes for endpoint main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-angular@2.4.3 : Verbose - Interceptor - active account selected main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-angular@2.4.3 : Info - Interceptor - 10 scopes found for endpoint main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-browser@2.28.3 : Verbose - preflightBrowserEnvironmentCheck started main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : [4d88759f-e27b-4cfa-9305-de800d7d0e8a] : @azure/msal-browser@2.28.3 : Verbose - acquireTokenSilent called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : [4d88759f-e27b-4cfa-9305-de800d7d0e8a] : @azure/msal-browser@2.28.3 : Verbose - acquireTokenSilent has been called previously, returning the result from the first call main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : [f98e24ab-902c-4170-a8af-ed9b0573c2eb] : msal.js.browser@2.28.3 : Verbose - initializeServerTelemetryManager called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : [f98e24ab-902c-4170-a8af-ed9b0573c2eb] : msal.js.browser@2.28.3 : Verbose - getClientConfiguration called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : [f98e24ab-902c-4170-a8af-ed9b0573c2eb] : msal.js.browser@2.28.3 : Verbose - getDiscoveredAuthority called main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : [f98e24ab-902c-4170-a8af-ed9b0573c2eb] : msal.js.browser@2.28.3 : Verbose - Creating discovered authority with configured authority main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : [f98e24ab-902c-4170-a8af-ed9b0573c2eb] : msal.js.browser@2.28.3 : Verbose - Silent auth client created main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-browser@2.28.3 : Info - Emitting event: msal:acquireTokenSuccess main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-browser@2.28.3 : Verbose - Emitting event to callback ad65cace-6987-4a44-99d2-9aad09f6a205: msal:acquireTokenSuccess main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : [f98e24ab-902c-4170-a8af-ed9b0573c2eb] : @azure/msal-browser@2.28.3 : Verbose - PerformanceClient: Measurement found for acquireTokenSilent main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : [f98e24ab-902c-4170-a8af-ed9b0573c2eb] : @azure/msal-browser@2.28.3 : Verbose - PerformanceClient: Emitting performance events main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-angular@2.4.3 : Verbose - Interceptor - setting authorization headers main-es2015.fb2484a8ae0d7adbfad1.js:1 [Fri, 07 Apr 2023 02:44:32 GMT] : @azure/msal-angular@2.4.3 : Verbose - Interceptor - setting authorization headers

jo-arroyo commented 1 year ago

@patolax In your logs you will see that the MSAL Interceptor is activated twice, which then calls acquireTokenSilent with two different correlation Ids. Can you show your usage where you are making your HTTP calls? Are you making multiple HTTP calls concurrently?

ghost commented 1 year ago

@patolax This issue has been automatically marked as stale because it is marked as requiring author feedback but has not had any activity for 5 days. If your issue has been resolved please let us know by closing the issue. If your issue has not been resolved please leave a comment to keep this open. It will be closed automatically in 7 days if it remains stale.

jkapil commented 1 year ago

@konstantin-msft you mentioned Fiddler Trace? I am not able to get the MSAL (JavaScript) outbound calls captured in Fiddler. Any recommendation how you might have setup Fiddler to collect the Traces for MSAL JS outbound calls.

konstantin-msft commented 1 year ago

@jkapil Please check this article.