@azure/msal-browser 5.6.2 → 5.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/dist/app/IPublicClientApplication.mjs +1 -1
- package/dist/app/PublicClientApplication.mjs +1 -1
- package/dist/broker/nativeBroker/NativeStatusCodes.mjs +2 -3
- package/dist/broker/nativeBroker/NativeStatusCodes.mjs.map +1 -1
- package/dist/broker/nativeBroker/PlatformAuthDOMHandler.mjs +1 -1
- package/dist/broker/nativeBroker/PlatformAuthExtensionHandler.mjs +1 -1
- package/dist/broker/nativeBroker/PlatformAuthProvider.d.ts +1 -1
- package/dist/broker/nativeBroker/PlatformAuthProvider.mjs +2 -2
- package/dist/cache/AccountManager.mjs +1 -1
- package/dist/cache/AsyncMemoryStorage.mjs +1 -1
- package/dist/cache/BrowserCacheManager.mjs +1 -1
- package/dist/cache/CacheHelpers.mjs +1 -1
- package/dist/cache/CacheKeys.d.ts +1 -0
- package/dist/cache/CacheKeys.d.ts.map +1 -1
- package/dist/cache/CacheKeys.mjs +3 -2
- package/dist/cache/CacheKeys.mjs.map +1 -1
- package/dist/cache/CookieStorage.mjs +1 -1
- package/dist/cache/DatabaseStorage.mjs +1 -1
- package/dist/cache/EncryptedData.mjs +1 -1
- package/dist/cache/LocalStorage.mjs +1 -1
- package/dist/cache/MemoryStorage.mjs +1 -1
- package/dist/cache/SessionStorage.mjs +1 -1
- package/dist/cache/TokenCache.d.ts.map +1 -1
- package/dist/cache/TokenCache.mjs +9 -9
- package/dist/cache/TokenCache.mjs.map +1 -1
- package/dist/config/Configuration.d.ts +20 -1
- package/dist/config/Configuration.d.ts.map +1 -1
- package/dist/config/Configuration.mjs +10 -2
- package/dist/config/Configuration.mjs.map +1 -1
- package/dist/controllers/NestedAppAuthController.mjs +1 -1
- package/dist/controllers/StandardController.d.ts +20 -2
- package/dist/controllers/StandardController.d.ts.map +1 -1
- package/dist/controllers/StandardController.mjs +204 -37
- package/dist/controllers/StandardController.mjs.map +1 -1
- package/dist/crypto/BrowserCrypto.mjs +1 -1
- package/dist/crypto/CryptoOps.mjs +1 -1
- package/dist/crypto/PkceGenerator.mjs +1 -1
- package/dist/crypto/SignedHttpRequest.mjs +1 -1
- package/dist/custom-auth-path/app/PublicClientApplication.mjs +1 -1
- package/dist/custom-auth-path/broker/nativeBroker/NativeStatusCodes.mjs +2 -3
- package/dist/custom-auth-path/broker/nativeBroker/NativeStatusCodes.mjs.map +1 -1
- package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthDOMHandler.mjs +1 -1
- package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthExtensionHandler.mjs +1 -1
- package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthProvider.d.ts +1 -1
- package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthProvider.mjs +2 -2
- package/dist/custom-auth-path/cache/AccountManager.mjs +1 -1
- package/dist/custom-auth-path/cache/AsyncMemoryStorage.mjs +1 -1
- package/dist/custom-auth-path/cache/BrowserCacheManager.mjs +1 -1
- package/dist/custom-auth-path/cache/CacheHelpers.mjs +1 -1
- package/dist/custom-auth-path/cache/CacheKeys.d.ts +1 -0
- package/dist/custom-auth-path/cache/CacheKeys.d.ts.map +1 -1
- package/dist/custom-auth-path/cache/CacheKeys.mjs +3 -2
- package/dist/custom-auth-path/cache/CacheKeys.mjs.map +1 -1
- package/dist/custom-auth-path/cache/CookieStorage.mjs +1 -1
- package/dist/custom-auth-path/cache/DatabaseStorage.mjs +1 -1
- package/dist/custom-auth-path/cache/EncryptedData.mjs +1 -1
- package/dist/custom-auth-path/cache/LocalStorage.mjs +1 -1
- package/dist/custom-auth-path/cache/MemoryStorage.mjs +1 -1
- package/dist/custom-auth-path/cache/SessionStorage.mjs +1 -1
- package/dist/custom-auth-path/cache/TokenCache.d.ts.map +1 -1
- package/dist/custom-auth-path/config/Configuration.d.ts +20 -1
- package/dist/custom-auth-path/config/Configuration.d.ts.map +1 -1
- package/dist/custom-auth-path/config/Configuration.mjs +10 -2
- package/dist/custom-auth-path/config/Configuration.mjs.map +1 -1
- package/dist/custom-auth-path/controllers/StandardController.d.ts +20 -2
- package/dist/custom-auth-path/controllers/StandardController.d.ts.map +1 -1
- package/dist/custom-auth-path/controllers/StandardController.mjs +204 -37
- package/dist/custom-auth-path/controllers/StandardController.mjs.map +1 -1
- package/dist/custom-auth-path/crypto/BrowserCrypto.mjs +1 -1
- package/dist/custom-auth-path/crypto/CryptoOps.mjs +1 -1
- package/dist/custom-auth-path/crypto/PkceGenerator.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/CustomAuthConstants.d.ts +1 -1
- package/dist/custom-auth-path/custom_auth/CustomAuthConstants.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/CustomAuthPublicClientApplication.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/controller/CustomAuthStandardController.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/CustomAuthAuthority.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/auth_flow/AuthFlowErrorBase.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/auth_flow/AuthFlowResultBase.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/auth_flow/AuthFlowState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/auth_flow/AuthFlowStateTypes.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/auth_flow/jit/error_type/AuthMethodRegistrationError.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/auth_flow/jit/result/AuthMethodRegistrationChallengeMethodResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/auth_flow/jit/result/AuthMethodRegistrationSubmitChallengeResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/auth_flow/jit/state/AuthMethodRegistrationCompletedState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/auth_flow/jit/state/AuthMethodRegistrationFailedState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/auth_flow/jit/state/AuthMethodRegistrationState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/auth_flow/mfa/error_type/MfaError.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/auth_flow/mfa/result/MfaRequestChallengeResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/auth_flow/mfa/result/MfaSubmitChallengeResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/auth_flow/mfa/state/MfaCompletedState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/auth_flow/mfa/state/MfaFailedState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/auth_flow/mfa/state/MfaState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/error/CustomAuthApiError.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/error/CustomAuthError.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/error/HttpError.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/error/HttpErrorCodes.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/error/InvalidArgumentError.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/error/InvalidConfigurationError.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/error/InvalidConfigurationErrorCodes.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/error/MethodNotImplementedError.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/error/MsalCustomAuthError.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/error/NoCachedAccountFoundError.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/error/ParsedUrlError.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/error/ParsedUrlErrorCodes.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/error/UnexpectedError.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/error/UnsupportedEnvironmentError.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/error/UserAccountAttributeError.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/error/UserAlreadySignedInError.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/interaction_client/CustomAuthInteractionClientBase.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/interaction_client/CustomAuthInterationClientFactory.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/interaction_client/jit/JitClient.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/interaction_client/jit/result/JitActionResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/interaction_client/mfa/MfaClient.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/interaction_client/mfa/result/MfaActionResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/BaseApiClient.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/CustomAuthApiClient.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/CustomAuthApiEndpoint.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/RegisterApiClient.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/ResetPasswordApiClient.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/SignInApiClient.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/SignupApiClient.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/types/ApiErrorCodes.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/network_client/custom_auth_api/types/ApiSuberrors.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/network_client/http_client/FetchHttpClient.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/network_client/http_client/IHttpClient.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/telemetry/PublicApiId.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/utils/ArgumentValidator.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/core/utils/UrlUtils.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/get_account/auth_flow/CustomAuthAccountData.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/get_account/auth_flow/error_type/GetAccountError.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/get_account/auth_flow/result/GetAccessTokenResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/get_account/auth_flow/result/GetAccountResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/get_account/auth_flow/result/SignOutResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/get_account/auth_flow/state/GetAccessTokenState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/get_account/auth_flow/state/GetAccountState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/get_account/auth_flow/state/SignOutState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/get_account/interaction_client/CustomAuthSilentCacheClient.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/index.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/operating_context/CustomAuthOperatingContext.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/error_type/ResetPasswordError.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/result/ResetPasswordResendCodeResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/result/ResetPasswordStartResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/result/ResetPasswordSubmitCodeResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/result/ResetPasswordSubmitPasswordResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/state/ResetPasswordCodeRequiredState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/state/ResetPasswordCompletedState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/state/ResetPasswordFailedState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/state/ResetPasswordPasswordRequiredState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/reset_password/auth_flow/state/ResetPasswordState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/reset_password/interaction_client/ResetPasswordClient.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/SignInScenario.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/error_type/SignInError.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/result/SignInResendCodeResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/result/SignInResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/result/SignInSubmitCodeResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/result/SignInSubmitPasswordResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/state/SignInCodeRequiredState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/state/SignInCompletedState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/state/SignInContinuationState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/state/SignInFailedState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/state/SignInPasswordRequiredState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_in/auth_flow/state/SignInState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_in/interaction_client/SignInClient.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_in/interaction_client/result/SignInActionResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/error_type/SignUpError.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/result/SignUpResendCodeResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/result/SignUpResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/result/SignUpSubmitAttributesResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/result/SignUpSubmitCodeResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/result/SignUpSubmitPasswordResult.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/state/SignUpAttributesRequiredState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/state/SignUpCodeRequiredState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/state/SignUpCompletedState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/state/SignUpFailedState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/state/SignUpPasswordRequiredState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_up/auth_flow/state/SignUpState.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_up/interaction_client/SignUpClient.mjs +1 -1
- package/dist/custom-auth-path/custom_auth/sign_up/interaction_client/result/SignUpActionResult.mjs +1 -1
- package/dist/custom-auth-path/encode/Base64Decode.mjs +1 -1
- package/dist/custom-auth-path/encode/Base64Encode.mjs +1 -1
- package/dist/custom-auth-path/error/BrowserAuthError.mjs +1 -1
- package/dist/custom-auth-path/error/BrowserAuthErrorCodes.mjs +1 -1
- package/dist/custom-auth-path/error/BrowserConfigurationAuthError.mjs +1 -1
- package/dist/custom-auth-path/error/BrowserConfigurationAuthErrorCodes.mjs +1 -1
- package/dist/custom-auth-path/error/NativeAuthError.d.ts.map +1 -1
- package/dist/custom-auth-path/error/NativeAuthError.mjs +3 -4
- package/dist/custom-auth-path/error/NativeAuthError.mjs.map +1 -1
- package/dist/custom-auth-path/error/NativeAuthErrorCodes.mjs +1 -1
- package/dist/custom-auth-path/event/EventHandler.mjs +1 -1
- package/dist/custom-auth-path/event/EventType.mjs +1 -1
- package/dist/custom-auth-path/index.d.ts +1 -1
- package/dist/custom-auth-path/index.d.ts.map +1 -1
- package/dist/custom-auth-path/interaction_client/BaseInteractionClient.mjs +1 -1
- package/dist/custom-auth-path/interaction_client/HybridSpaAuthorizationCodeClient.mjs +1 -1
- package/dist/custom-auth-path/interaction_client/PlatformAuthInteractionClient.d.ts +12 -12
- package/dist/custom-auth-path/interaction_client/PlatformAuthInteractionClient.d.ts.map +1 -1
- package/dist/custom-auth-path/interaction_client/PlatformAuthInteractionClient.mjs +39 -26
- package/dist/custom-auth-path/interaction_client/PlatformAuthInteractionClient.mjs.map +1 -1
- package/dist/custom-auth-path/interaction_client/PopupClient.d.ts.map +1 -1
- package/dist/custom-auth-path/interaction_client/PopupClient.mjs +6 -2
- package/dist/custom-auth-path/interaction_client/PopupClient.mjs.map +1 -1
- package/dist/custom-auth-path/interaction_client/RedirectClient.d.ts.map +1 -1
- package/dist/custom-auth-path/interaction_client/RedirectClient.mjs +6 -2
- package/dist/custom-auth-path/interaction_client/RedirectClient.mjs.map +1 -1
- package/dist/custom-auth-path/interaction_client/SilentAuthCodeClient.mjs +1 -1
- package/dist/custom-auth-path/interaction_client/SilentCacheClient.mjs +1 -1
- package/dist/custom-auth-path/interaction_client/SilentIframeClient.d.ts +14 -0
- package/dist/custom-auth-path/interaction_client/SilentIframeClient.d.ts.map +1 -1
- package/dist/custom-auth-path/interaction_client/SilentIframeClient.mjs +47 -5
- package/dist/custom-auth-path/interaction_client/SilentIframeClient.mjs.map +1 -1
- package/dist/custom-auth-path/interaction_client/SilentRefreshClient.mjs +1 -1
- package/dist/custom-auth-path/interaction_client/StandardInteractionClient.mjs +1 -1
- package/dist/custom-auth-path/interaction_handler/InteractionHandler.mjs +1 -1
- package/dist/custom-auth-path/interaction_handler/SilentHandler.mjs +1 -1
- package/dist/custom-auth-path/log-strings-mapping.json +67 -15
- package/dist/custom-auth-path/navigation/NavigationClient.mjs +1 -1
- package/dist/custom-auth-path/network/FetchClient.mjs +1 -1
- package/dist/custom-auth-path/operatingcontext/BaseOperatingContext.mjs +1 -1
- package/dist/custom-auth-path/operatingcontext/StandardOperatingContext.mjs +1 -1
- package/dist/custom-auth-path/packageMetadata.d.ts +1 -1
- package/dist/custom-auth-path/packageMetadata.mjs +2 -2
- package/dist/custom-auth-path/protocol/Authorize.d.ts.map +1 -1
- package/dist/custom-auth-path/protocol/Authorize.mjs +5 -1
- package/dist/custom-auth-path/protocol/Authorize.mjs.map +1 -1
- package/dist/custom-auth-path/redirect_bridge/index.d.ts.map +1 -1
- package/dist/custom-auth-path/request/RequestHelpers.mjs +1 -1
- package/dist/custom-auth-path/response/ResponseHandler.mjs +1 -1
- package/dist/custom-auth-path/telemetry/BrowserPerformanceClient.d.ts +1 -0
- package/dist/custom-auth-path/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
- package/dist/custom-auth-path/telemetry/BrowserPerformanceEvents.d.ts +6 -0
- package/dist/custom-auth-path/telemetry/BrowserPerformanceEvents.d.ts.map +1 -1
- package/dist/custom-auth-path/telemetry/BrowserPerformanceEvents.mjs +9 -3
- package/dist/custom-auth-path/telemetry/BrowserPerformanceEvents.mjs.map +1 -1
- package/dist/custom-auth-path/telemetry/BrowserRootPerformanceEvents.d.ts +6 -0
- package/dist/custom-auth-path/telemetry/BrowserRootPerformanceEvents.d.ts.map +1 -1
- package/dist/custom-auth-path/telemetry/BrowserRootPerformanceEvents.mjs +8 -3
- package/dist/custom-auth-path/telemetry/BrowserRootPerformanceEvents.mjs.map +1 -1
- package/dist/custom-auth-path/utils/BrowserConstants.mjs +1 -1
- package/dist/custom-auth-path/utils/BrowserProtocolUtils.mjs +1 -1
- package/dist/custom-auth-path/utils/BrowserUtils.d.ts +2 -2
- package/dist/custom-auth-path/utils/BrowserUtils.d.ts.map +1 -1
- package/dist/custom-auth-path/utils/BrowserUtils.mjs +27 -3
- package/dist/custom-auth-path/utils/BrowserUtils.mjs.map +1 -1
- package/dist/custom-auth-path/utils/Helpers.mjs +1 -1
- package/dist/custom-auth-path/utils/MsalFrameStatsUtils.mjs +1 -1
- package/dist/custom_auth/CustomAuthConstants.d.ts +1 -1
- package/dist/encode/Base64Decode.mjs +1 -1
- package/dist/encode/Base64Encode.mjs +1 -1
- package/dist/error/BrowserAuthError.mjs +1 -1
- package/dist/error/BrowserAuthErrorCodes.mjs +1 -1
- package/dist/error/BrowserConfigurationAuthError.mjs +1 -1
- package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +1 -1
- package/dist/error/NativeAuthError.d.ts.map +1 -1
- package/dist/error/NativeAuthError.mjs +3 -4
- package/dist/error/NativeAuthError.mjs.map +1 -1
- package/dist/error/NativeAuthErrorCodes.mjs +1 -1
- package/dist/error/NestedAppAuthError.mjs +1 -1
- package/dist/event/EventHandler.mjs +1 -1
- package/dist/event/EventMessage.mjs +1 -1
- package/dist/event/EventType.mjs +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/interaction_client/BaseInteractionClient.mjs +1 -1
- package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +1 -1
- package/dist/interaction_client/PlatformAuthInteractionClient.d.ts +12 -12
- package/dist/interaction_client/PlatformAuthInteractionClient.d.ts.map +1 -1
- package/dist/interaction_client/PlatformAuthInteractionClient.mjs +39 -26
- package/dist/interaction_client/PlatformAuthInteractionClient.mjs.map +1 -1
- package/dist/interaction_client/PopupClient.d.ts.map +1 -1
- package/dist/interaction_client/PopupClient.mjs +6 -2
- package/dist/interaction_client/PopupClient.mjs.map +1 -1
- package/dist/interaction_client/RedirectClient.d.ts.map +1 -1
- package/dist/interaction_client/RedirectClient.mjs +6 -2
- package/dist/interaction_client/RedirectClient.mjs.map +1 -1
- package/dist/interaction_client/SilentAuthCodeClient.mjs +1 -1
- package/dist/interaction_client/SilentCacheClient.mjs +1 -1
- package/dist/interaction_client/SilentIframeClient.d.ts +14 -0
- package/dist/interaction_client/SilentIframeClient.d.ts.map +1 -1
- package/dist/interaction_client/SilentIframeClient.mjs +47 -5
- package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
- package/dist/interaction_client/SilentRefreshClient.mjs +1 -1
- package/dist/interaction_client/StandardInteractionClient.mjs +1 -1
- package/dist/interaction_handler/InteractionHandler.mjs +1 -1
- package/dist/interaction_handler/SilentHandler.mjs +1 -1
- package/dist/log-strings-mapping.json +75 -23
- package/dist/naa/BridgeError.mjs +1 -1
- package/dist/naa/BridgeProxy.mjs +1 -1
- package/dist/naa/BridgeStatusCode.mjs +1 -1
- package/dist/naa/mapping/NestedAppAuthAdapter.mjs +1 -1
- package/dist/navigation/NavigationClient.mjs +1 -1
- package/dist/network/FetchClient.mjs +1 -1
- package/dist/operatingcontext/BaseOperatingContext.mjs +1 -1
- package/dist/operatingcontext/NestedAppOperatingContext.mjs +1 -1
- package/dist/operatingcontext/StandardOperatingContext.mjs +1 -1
- package/dist/packageMetadata.d.ts +1 -1
- package/dist/packageMetadata.mjs +2 -2
- package/dist/protocol/Authorize.d.ts.map +1 -1
- package/dist/protocol/Authorize.mjs +5 -1
- package/dist/protocol/Authorize.mjs.map +1 -1
- package/dist/redirect-bridge/broker/nativeBroker/PlatformAuthProvider.d.ts +1 -1
- package/dist/redirect-bridge/cache/CacheKeys.d.ts +1 -0
- package/dist/redirect-bridge/cache/CacheKeys.d.ts.map +1 -1
- package/dist/redirect-bridge/cache/CacheKeys.mjs +1 -1
- package/dist/redirect-bridge/cache/TokenCache.d.ts.map +1 -1
- package/dist/redirect-bridge/config/Configuration.d.ts +20 -1
- package/dist/redirect-bridge/config/Configuration.d.ts.map +1 -1
- package/dist/redirect-bridge/config/Configuration.mjs +1 -1
- package/dist/redirect-bridge/controllers/StandardController.d.ts +20 -2
- package/dist/redirect-bridge/controllers/StandardController.d.ts.map +1 -1
- package/dist/redirect-bridge/custom_auth/CustomAuthConstants.d.ts +1 -1
- package/dist/redirect-bridge/encode/Base64Decode.mjs +1 -1
- package/dist/redirect-bridge/error/BrowserAuthError.mjs +1 -1
- package/dist/redirect-bridge/error/BrowserAuthErrorCodes.mjs +1 -1
- package/dist/redirect-bridge/error/NativeAuthError.d.ts.map +1 -1
- package/dist/redirect-bridge/index.d.ts +1 -1
- package/dist/redirect-bridge/index.d.ts.map +1 -1
- package/dist/redirect-bridge/interaction_client/PlatformAuthInteractionClient.d.ts +12 -12
- package/dist/redirect-bridge/interaction_client/PlatformAuthInteractionClient.d.ts.map +1 -1
- package/dist/redirect-bridge/interaction_client/PopupClient.d.ts.map +1 -1
- package/dist/redirect-bridge/interaction_client/RedirectClient.d.ts.map +1 -1
- package/dist/redirect-bridge/interaction_client/SilentIframeClient.d.ts +14 -0
- package/dist/redirect-bridge/interaction_client/SilentIframeClient.d.ts.map +1 -1
- package/dist/redirect-bridge/navigation/NavigationClient.mjs +1 -1
- package/dist/redirect-bridge/packageMetadata.d.ts +1 -1
- package/dist/redirect-bridge/protocol/Authorize.d.ts.map +1 -1
- package/dist/redirect-bridge/redirect_bridge/index.d.ts.map +1 -1
- package/dist/redirect-bridge/redirect_bridge/index.mjs +11 -7
- package/dist/redirect-bridge/redirect_bridge/index.mjs.map +1 -1
- package/dist/redirect-bridge/telemetry/BrowserPerformanceClient.d.ts +1 -0
- package/dist/redirect-bridge/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
- package/dist/redirect-bridge/telemetry/BrowserPerformanceEvents.d.ts +6 -0
- package/dist/redirect-bridge/telemetry/BrowserPerformanceEvents.d.ts.map +1 -1
- package/dist/redirect-bridge/telemetry/BrowserRootPerformanceEvents.d.ts +6 -0
- package/dist/redirect-bridge/telemetry/BrowserRootPerformanceEvents.d.ts.map +1 -1
- package/dist/redirect-bridge/utils/BrowserConstants.mjs +7 -3
- package/dist/redirect-bridge/utils/BrowserConstants.mjs.map +1 -1
- package/dist/redirect-bridge/utils/BrowserUtils.d.ts +2 -2
- package/dist/redirect-bridge/utils/BrowserUtils.d.ts.map +1 -1
- package/dist/redirect-bridge/utils/BrowserUtils.mjs +1 -1
- package/dist/redirect-bridge/utils/BrowserUtils.mjs.map +1 -1
- package/dist/redirect_bridge/index.d.ts.map +1 -1
- package/dist/request/RequestHelpers.mjs +1 -1
- package/dist/response/ResponseHandler.mjs +1 -1
- package/dist/telemetry/BrowserPerformanceClient.d.ts +1 -0
- package/dist/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
- package/dist/telemetry/BrowserPerformanceClient.mjs +6 -1
- package/dist/telemetry/BrowserPerformanceClient.mjs.map +1 -1
- package/dist/telemetry/BrowserPerformanceEvents.d.ts +6 -0
- package/dist/telemetry/BrowserPerformanceEvents.d.ts.map +1 -1
- package/dist/telemetry/BrowserPerformanceEvents.mjs +9 -3
- package/dist/telemetry/BrowserPerformanceEvents.mjs.map +1 -1
- package/dist/telemetry/BrowserPerformanceMeasurement.mjs +1 -1
- package/dist/telemetry/BrowserRootPerformanceEvents.d.ts +6 -0
- package/dist/telemetry/BrowserRootPerformanceEvents.d.ts.map +1 -1
- package/dist/telemetry/BrowserRootPerformanceEvents.mjs +10 -3
- package/dist/telemetry/BrowserRootPerformanceEvents.mjs.map +1 -1
- package/dist/utils/BrowserConstants.mjs +1 -1
- package/dist/utils/BrowserProtocolUtils.mjs +1 -1
- package/dist/utils/BrowserUtils.d.ts +2 -2
- package/dist/utils/BrowserUtils.d.ts.map +1 -1
- package/dist/utils/BrowserUtils.mjs +27 -3
- package/dist/utils/BrowserUtils.mjs.map +1 -1
- package/dist/utils/Helpers.mjs +1 -1
- package/dist/utils/MsalFrameStatsUtils.mjs +1 -1
- package/lib/custom-auth-path/log-strings-mapping.json +67 -15
- package/lib/custom-auth-path/msal-custom-auth.cjs +897 -617
- package/lib/custom-auth-path/msal-custom-auth.cjs.map +1 -1
- package/lib/custom-auth-path/types/broker/nativeBroker/PlatformAuthProvider.d.ts +1 -1
- package/lib/custom-auth-path/types/cache/CacheKeys.d.ts +1 -0
- package/lib/custom-auth-path/types/cache/CacheKeys.d.ts.map +1 -1
- package/lib/custom-auth-path/types/cache/TokenCache.d.ts.map +1 -1
- package/lib/custom-auth-path/types/config/Configuration.d.ts +20 -1
- package/lib/custom-auth-path/types/config/Configuration.d.ts.map +1 -1
- package/lib/custom-auth-path/types/controllers/StandardController.d.ts +20 -2
- package/lib/custom-auth-path/types/controllers/StandardController.d.ts.map +1 -1
- package/lib/custom-auth-path/types/custom_auth/CustomAuthConstants.d.ts +1 -1
- package/lib/custom-auth-path/types/error/NativeAuthError.d.ts.map +1 -1
- package/lib/custom-auth-path/types/index.d.ts +1 -1
- package/lib/custom-auth-path/types/index.d.ts.map +1 -1
- package/lib/custom-auth-path/types/interaction_client/PlatformAuthInteractionClient.d.ts +12 -12
- package/lib/custom-auth-path/types/interaction_client/PlatformAuthInteractionClient.d.ts.map +1 -1
- package/lib/custom-auth-path/types/interaction_client/PopupClient.d.ts.map +1 -1
- package/lib/custom-auth-path/types/interaction_client/RedirectClient.d.ts.map +1 -1
- package/lib/custom-auth-path/types/interaction_client/SilentIframeClient.d.ts +14 -0
- package/lib/custom-auth-path/types/interaction_client/SilentIframeClient.d.ts.map +1 -1
- package/lib/custom-auth-path/types/packageMetadata.d.ts +1 -1
- package/lib/custom-auth-path/types/protocol/Authorize.d.ts.map +1 -1
- package/lib/custom-auth-path/types/redirect_bridge/index.d.ts.map +1 -1
- package/lib/custom-auth-path/types/telemetry/BrowserPerformanceClient.d.ts +1 -0
- package/lib/custom-auth-path/types/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
- package/lib/custom-auth-path/types/telemetry/BrowserPerformanceEvents.d.ts +6 -0
- package/lib/custom-auth-path/types/telemetry/BrowserPerformanceEvents.d.ts.map +1 -1
- package/lib/custom-auth-path/types/telemetry/BrowserRootPerformanceEvents.d.ts +6 -0
- package/lib/custom-auth-path/types/telemetry/BrowserRootPerformanceEvents.d.ts.map +1 -1
- package/lib/custom-auth-path/types/utils/BrowserUtils.d.ts +2 -2
- package/lib/custom-auth-path/types/utils/BrowserUtils.d.ts.map +1 -1
- package/lib/log-strings-mapping.json +75 -23
- package/lib/msal-browser.cjs +1045 -755
- package/lib/msal-browser.cjs.map +1 -1
- package/lib/msal-browser.js +1045 -755
- package/lib/msal-browser.js.map +1 -1
- package/lib/msal-browser.min.js +2 -2
- package/lib/redirect-bridge/msal-redirect-bridge.js +24 -16
- package/lib/redirect-bridge/msal-redirect-bridge.js.map +1 -1
- package/lib/redirect-bridge/msal-redirect-bridge.min.js +2 -2
- package/lib/types/broker/nativeBroker/PlatformAuthProvider.d.ts +1 -1
- package/lib/types/cache/CacheKeys.d.ts +1 -0
- package/lib/types/cache/CacheKeys.d.ts.map +1 -1
- package/lib/types/cache/TokenCache.d.ts.map +1 -1
- package/lib/types/config/Configuration.d.ts +20 -1
- package/lib/types/config/Configuration.d.ts.map +1 -1
- package/lib/types/controllers/StandardController.d.ts +20 -2
- package/lib/types/controllers/StandardController.d.ts.map +1 -1
- package/lib/types/custom_auth/CustomAuthConstants.d.ts +1 -1
- package/lib/types/error/NativeAuthError.d.ts.map +1 -1
- package/lib/types/index.d.ts +1 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/interaction_client/PlatformAuthInteractionClient.d.ts +12 -12
- package/lib/types/interaction_client/PlatformAuthInteractionClient.d.ts.map +1 -1
- package/lib/types/interaction_client/PopupClient.d.ts.map +1 -1
- package/lib/types/interaction_client/RedirectClient.d.ts.map +1 -1
- package/lib/types/interaction_client/SilentIframeClient.d.ts +14 -0
- package/lib/types/interaction_client/SilentIframeClient.d.ts.map +1 -1
- package/lib/types/packageMetadata.d.ts +1 -1
- package/lib/types/protocol/Authorize.d.ts.map +1 -1
- package/lib/types/redirect_bridge/index.d.ts.map +1 -1
- package/lib/types/telemetry/BrowserPerformanceClient.d.ts +1 -0
- package/lib/types/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
- package/lib/types/telemetry/BrowserPerformanceEvents.d.ts +6 -0
- package/lib/types/telemetry/BrowserPerformanceEvents.d.ts.map +1 -1
- package/lib/types/telemetry/BrowserRootPerformanceEvents.d.ts +6 -0
- package/lib/types/telemetry/BrowserRootPerformanceEvents.d.ts.map +1 -1
- package/lib/types/utils/BrowserUtils.d.ts +2 -2
- package/lib/types/utils/BrowserUtils.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/broker/nativeBroker/PlatformAuthProvider.ts +1 -1
- package/src/cache/CacheKeys.ts +1 -0
- package/src/cache/TokenCache.ts +27 -24
- package/src/config/Configuration.ts +30 -0
- package/src/controllers/StandardController.ts +316 -69
- package/src/error/NativeAuthError.ts +1 -2
- package/src/index.ts +1 -0
- package/src/interaction_client/PlatformAuthInteractionClient.ts +99 -76
- package/src/interaction_client/PopupClient.ts +10 -0
- package/src/interaction_client/RedirectClient.ts +10 -0
- package/src/interaction_client/SilentIframeClient.ts +127 -22
- package/src/packageMetadata.ts +1 -1
- package/src/protocol/Authorize.ts +8 -0
- package/src/redirect_bridge/index.ts +12 -5
- package/src/telemetry/BrowserPerformanceClient.ts +6 -0
- package/src/telemetry/BrowserPerformanceEvents.ts +9 -0
- package/src/telemetry/BrowserRootPerformanceEvents.ts +7 -0
- package/src/utils/BrowserUtils.ts +36 -4
|
@@ -36,6 +36,7 @@ import {
|
|
|
36
36
|
BrowserCacheManager,
|
|
37
37
|
DEFAULT_BROWSER_CACHE_MANAGER,
|
|
38
38
|
} from "../cache/BrowserCacheManager.js";
|
|
39
|
+
import * as CacheKeys from "../cache/CacheKeys.js";
|
|
39
40
|
import * as AccountManager from "../cache/AccountManager.js";
|
|
40
41
|
import { BrowserConfiguration, CacheOptions } from "../config/Configuration.js";
|
|
41
42
|
import {
|
|
@@ -260,11 +261,11 @@ export class StandardController implements IController {
|
|
|
260
261
|
this.activeSilentTokenRequests = new Map();
|
|
261
262
|
|
|
262
263
|
// Register listener functions
|
|
263
|
-
this.
|
|
264
|
+
this.trackStateChange = this.trackStateChange.bind(this);
|
|
264
265
|
|
|
265
266
|
// Register listener functions
|
|
266
|
-
this.
|
|
267
|
-
this.
|
|
267
|
+
this.trackStateChangeWithMeasurement =
|
|
268
|
+
this.trackStateChangeWithMeasurement.bind(this);
|
|
268
269
|
}
|
|
269
270
|
|
|
270
271
|
static async createController(
|
|
@@ -276,15 +277,39 @@ export class StandardController implements IController {
|
|
|
276
277
|
return controller;
|
|
277
278
|
}
|
|
278
279
|
|
|
279
|
-
private
|
|
280
|
+
private trackStateChange(
|
|
281
|
+
correlationId: string | undefined,
|
|
282
|
+
event: Event
|
|
283
|
+
): void {
|
|
280
284
|
if (!correlationId) {
|
|
281
285
|
return;
|
|
282
286
|
}
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
287
|
+
|
|
288
|
+
if (event.type === "visibilitychange") {
|
|
289
|
+
this.logger.info("Perf: Visibility change detected", correlationId);
|
|
290
|
+
this.performanceClient.incrementFields(
|
|
291
|
+
{ visibilityChangeCount: 1 },
|
|
292
|
+
correlationId
|
|
293
|
+
);
|
|
294
|
+
} else if (event.type === "online") {
|
|
295
|
+
this.logger.info(
|
|
296
|
+
"Perf: Online status change detected",
|
|
297
|
+
correlationId
|
|
298
|
+
);
|
|
299
|
+
this.performanceClient.incrementFields(
|
|
300
|
+
{ onlineStatusChangeCount: 1 },
|
|
301
|
+
correlationId
|
|
302
|
+
);
|
|
303
|
+
} else if (event.type === "offline") {
|
|
304
|
+
this.logger.info(
|
|
305
|
+
"Perf: Offline status change detected",
|
|
306
|
+
correlationId
|
|
307
|
+
);
|
|
308
|
+
this.performanceClient.incrementFields(
|
|
309
|
+
{ onlineStatusChangeCount: 1 },
|
|
310
|
+
correlationId
|
|
311
|
+
);
|
|
312
|
+
}
|
|
288
313
|
}
|
|
289
314
|
|
|
290
315
|
/**
|
|
@@ -442,14 +467,12 @@ export class StandardController implements IController {
|
|
|
442
467
|
const loggedInAccounts = this.getAllAccounts();
|
|
443
468
|
const platformBrokerRequest: PlatformAuthRequest | null =
|
|
444
469
|
this.browserStorage.getCachedNativeRequest();
|
|
445
|
-
const useNative =
|
|
446
|
-
platformBrokerRequest &&
|
|
447
|
-
this.platformAuthProvider &&
|
|
448
|
-
!options?.hash;
|
|
470
|
+
const useNative = platformBrokerRequest && !options?.hash;
|
|
449
471
|
|
|
450
472
|
let rootMeasurement: InProgressPerformanceEvent;
|
|
451
473
|
|
|
452
474
|
let redirectResponse: Promise<AuthenticationResult | null>;
|
|
475
|
+
let cachedRedirectRequest: SsoSilentRequest | undefined;
|
|
453
476
|
try {
|
|
454
477
|
if (useNative && this.platformAuthProvider) {
|
|
455
478
|
const correlationId =
|
|
@@ -467,6 +490,9 @@ export class StandardController implements IController {
|
|
|
467
490
|
"handleRedirectPromise - acquiring token from native platform",
|
|
468
491
|
correlationId
|
|
469
492
|
);
|
|
493
|
+
rootMeasurement.add({
|
|
494
|
+
isPlatformBrokerRequest: true,
|
|
495
|
+
});
|
|
470
496
|
const nativeClient = new PlatformAuthInteractionClient(
|
|
471
497
|
this.config,
|
|
472
498
|
this.browserStorage,
|
|
@@ -488,10 +514,11 @@ export class StandardController implements IController {
|
|
|
488
514
|
this.logger,
|
|
489
515
|
this.performanceClient,
|
|
490
516
|
rootMeasurement.event.correlationId
|
|
491
|
-
)(
|
|
517
|
+
)();
|
|
492
518
|
} else {
|
|
493
519
|
const [standardRequest, codeVerifier] =
|
|
494
520
|
this.browserStorage.getCachedRequest("");
|
|
521
|
+
cachedRedirectRequest = standardRequest;
|
|
495
522
|
const correlationId = standardRequest.correlationId;
|
|
496
523
|
this.eventHandler.emitEvent(
|
|
497
524
|
EventType.HANDLE_REDIRECT_START,
|
|
@@ -557,6 +584,12 @@ export class StandardController implements IController {
|
|
|
557
584
|
undefined,
|
|
558
585
|
result.account
|
|
559
586
|
);
|
|
587
|
+
|
|
588
|
+
// Fire-and-forget SSO capability verification in background
|
|
589
|
+
this.verifySsoCapability(
|
|
590
|
+
cachedRedirectRequest,
|
|
591
|
+
InteractionType.Redirect
|
|
592
|
+
);
|
|
560
593
|
} else {
|
|
561
594
|
/*
|
|
562
595
|
* Instrument an event only if an error code is set. Otherwise, discard it when the redirect response
|
|
@@ -681,28 +714,36 @@ export class StandardController implements IController {
|
|
|
681
714
|
this.nativeInternalStorage,
|
|
682
715
|
correlationId
|
|
683
716
|
);
|
|
684
|
-
result =
|
|
685
|
-
.acquireTokenRedirect(
|
|
686
|
-
.
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
return redirectClient.acquireToken(request);
|
|
695
|
-
} else if (e instanceof InteractionRequiredAuthError) {
|
|
696
|
-
this.logger.verbose(
|
|
697
|
-
"acquireTokenRedirect - Resolving interaction required error thrown by native broker by falling back to web flow",
|
|
698
|
-
correlationId
|
|
699
|
-
);
|
|
700
|
-
const redirectClient =
|
|
701
|
-
this.createRedirectClient(correlationId);
|
|
702
|
-
return redirectClient.acquireToken(request);
|
|
703
|
-
}
|
|
704
|
-
throw e;
|
|
717
|
+
result = invokeAsync(
|
|
718
|
+
nativeClient.acquireTokenRedirect.bind(nativeClient),
|
|
719
|
+
BrowserPerformanceEvents.NativeInteractionClientAcquireTokenRedirect,
|
|
720
|
+
this.logger,
|
|
721
|
+
this.performanceClient,
|
|
722
|
+
correlationId
|
|
723
|
+
)(request, atrMeasurement).catch((e: AuthError) => {
|
|
724
|
+
atrMeasurement.add({
|
|
725
|
+
brokerErrorName: e.name,
|
|
726
|
+
brokerErrorCode: e.errorCode,
|
|
705
727
|
});
|
|
728
|
+
if (
|
|
729
|
+
e instanceof NativeAuthError &&
|
|
730
|
+
isFatalNativeAuthError(e)
|
|
731
|
+
) {
|
|
732
|
+
this.platformAuthProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt platform broker calls
|
|
733
|
+
const redirectClient =
|
|
734
|
+
this.createRedirectClient(correlationId);
|
|
735
|
+
return redirectClient.acquireToken(request);
|
|
736
|
+
} else if (e instanceof InteractionRequiredAuthError) {
|
|
737
|
+
this.logger.verbose(
|
|
738
|
+
"acquireTokenRedirect - Resolving interaction required error thrown by native broker by falling back to web flow",
|
|
739
|
+
correlationId
|
|
740
|
+
);
|
|
741
|
+
const redirectClient =
|
|
742
|
+
this.createRedirectClient(correlationId);
|
|
743
|
+
return redirectClient.acquireToken(request);
|
|
744
|
+
}
|
|
745
|
+
throw e;
|
|
746
|
+
});
|
|
706
747
|
} else {
|
|
707
748
|
const redirectClient = this.createRedirectClient(correlationId);
|
|
708
749
|
result = redirectClient.acquireToken(request);
|
|
@@ -791,6 +832,9 @@ export class StandardController implements IController {
|
|
|
791
832
|
const pkce = this.getPreGeneratedPkceCodes(correlationId);
|
|
792
833
|
|
|
793
834
|
if (this.canUsePlatformBroker(request)) {
|
|
835
|
+
atPopupMeasurement.add({
|
|
836
|
+
isPlatformBrokerRequest: true,
|
|
837
|
+
});
|
|
794
838
|
result = this.acquireTokenNative(
|
|
795
839
|
{
|
|
796
840
|
...request,
|
|
@@ -810,11 +854,15 @@ export class StandardController implements IController {
|
|
|
810
854
|
return response;
|
|
811
855
|
})
|
|
812
856
|
.catch((e: AuthError) => {
|
|
857
|
+
atPopupMeasurement.add({
|
|
858
|
+
brokerErrorName: e.name,
|
|
859
|
+
brokerErrorCode: e.errorCode,
|
|
860
|
+
});
|
|
813
861
|
if (
|
|
814
862
|
e instanceof NativeAuthError &&
|
|
815
863
|
isFatalNativeAuthError(e)
|
|
816
864
|
) {
|
|
817
|
-
this.platformAuthProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt
|
|
865
|
+
this.platformAuthProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt platform broker calls
|
|
818
866
|
const popupClient =
|
|
819
867
|
this.createPopupClient(correlationId);
|
|
820
868
|
return popupClient.acquireToken(request, pkce);
|
|
@@ -865,6 +913,10 @@ export class StandardController implements IController {
|
|
|
865
913
|
undefined,
|
|
866
914
|
result.account
|
|
867
915
|
);
|
|
916
|
+
|
|
917
|
+
// SSO capability verification in background
|
|
918
|
+
this.verifySsoCapability(request, InteractionType.Popup);
|
|
919
|
+
|
|
868
920
|
return result;
|
|
869
921
|
})
|
|
870
922
|
.catch((e: Error) => {
|
|
@@ -894,7 +946,7 @@ export class StandardController implements IController {
|
|
|
894
946
|
});
|
|
895
947
|
}
|
|
896
948
|
|
|
897
|
-
private
|
|
949
|
+
private trackStateChangeWithMeasurement(event: Event): void {
|
|
898
950
|
const measurement =
|
|
899
951
|
this.ssoSilentMeasurement ||
|
|
900
952
|
this.acquireTokenByCodeAsyncMeasurement;
|
|
@@ -902,10 +954,183 @@ export class StandardController implements IController {
|
|
|
902
954
|
return;
|
|
903
955
|
}
|
|
904
956
|
|
|
905
|
-
|
|
906
|
-
|
|
957
|
+
if (event.type === "visibilitychange") {
|
|
958
|
+
this.logger.info(
|
|
959
|
+
`Perf: Visibility change detected in '${measurement.event.name}'`,
|
|
960
|
+
measurement.event.correlationId
|
|
961
|
+
);
|
|
962
|
+
measurement.increment({
|
|
963
|
+
visibilityChangeCount: 1,
|
|
964
|
+
});
|
|
965
|
+
} else if (event.type === "online") {
|
|
966
|
+
this.logger.info(
|
|
967
|
+
`Perf: Online status change detected in '${measurement.event.name}'`,
|
|
968
|
+
measurement.event.correlationId
|
|
969
|
+
);
|
|
970
|
+
measurement.increment({
|
|
971
|
+
onlineStatusChangeCount: 1,
|
|
972
|
+
});
|
|
973
|
+
} else if (event.type === "offline") {
|
|
974
|
+
this.logger.info(
|
|
975
|
+
`Perf: Offline status change detected in '${measurement.event.name}'`,
|
|
976
|
+
measurement.event.correlationId
|
|
977
|
+
);
|
|
978
|
+
measurement.increment({
|
|
979
|
+
onlineStatusChangeCount: 1,
|
|
980
|
+
});
|
|
981
|
+
}
|
|
982
|
+
}
|
|
983
|
+
|
|
984
|
+
private addStateChangeListeners(listener: (event: Event) => void): void {
|
|
985
|
+
document.addEventListener("visibilitychange", listener);
|
|
986
|
+
window.addEventListener("online", listener);
|
|
987
|
+
window.addEventListener("offline", listener);
|
|
988
|
+
}
|
|
989
|
+
|
|
990
|
+
private removeStateChangeListeners(listener: (event: Event) => void): void {
|
|
991
|
+
document.removeEventListener("visibilitychange", listener);
|
|
992
|
+
window.removeEventListener("online", listener);
|
|
993
|
+
window.removeEventListener("offline", listener);
|
|
994
|
+
}
|
|
995
|
+
|
|
996
|
+
/**
|
|
997
|
+
* Reads the cached ssoCapable value from localStorage.
|
|
998
|
+
* @returns The cached ssoCapable boolean value, or undefined if not cached or expired.
|
|
999
|
+
*/
|
|
1000
|
+
private getCachedSsoCapable(): boolean | undefined {
|
|
1001
|
+
try {
|
|
1002
|
+
const cachedValue = window.localStorage.getItem(
|
|
1003
|
+
CacheKeys.SSO_CAPABLE
|
|
1004
|
+
);
|
|
1005
|
+
if (cachedValue) {
|
|
1006
|
+
const parsed = JSON.parse(cachedValue);
|
|
1007
|
+
if (
|
|
1008
|
+
parsed &&
|
|
1009
|
+
typeof parsed.ssoCapable === "boolean" &&
|
|
1010
|
+
parsed.expiresOn &&
|
|
1011
|
+
Date.now() < parsed.expiresOn
|
|
1012
|
+
) {
|
|
1013
|
+
return parsed.ssoCapable;
|
|
1014
|
+
}
|
|
1015
|
+
}
|
|
1016
|
+
} catch {
|
|
1017
|
+
// If parsing fails, return undefined
|
|
1018
|
+
}
|
|
1019
|
+
return undefined;
|
|
1020
|
+
}
|
|
1021
|
+
|
|
1022
|
+
/**
|
|
1023
|
+
* SSO capability verification in the background.
|
|
1024
|
+
* This method makes an iframe request to /authorize to verify SSO capability without calling /token.
|
|
1025
|
+
* This method does not block the caller and tracks telemetry for success/failure.
|
|
1026
|
+
* This method only executes if verifySSO is set to true in the auth configuration.
|
|
1027
|
+
* The result is cached in localStorage with a 24-hour TTL; the SSO verification call
|
|
1028
|
+
* is only attempted when the cached value is absent or expired.
|
|
1029
|
+
* @param request - The original request used for the authentication flow
|
|
1030
|
+
* @param interactionType - The interactionType of the AT operation for logging purposes
|
|
1031
|
+
*/
|
|
1032
|
+
private verifySsoCapability(
|
|
1033
|
+
request: SsoSilentRequest | undefined,
|
|
1034
|
+
interactionType: InteractionType
|
|
1035
|
+
): void {
|
|
1036
|
+
// Check if SSO capability verification is enabled
|
|
1037
|
+
if (!this.config.auth.verifySSO) {
|
|
1038
|
+
return;
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
// Check TTL: derive ssoCapable state from localStorage and skip if not expired
|
|
1042
|
+
const ssoCacheKey = CacheKeys.SSO_CAPABLE;
|
|
1043
|
+
const SSO_CAPABLE_TTL_MS = 24 * 60 * 60 * 1000; // 24 hours
|
|
1044
|
+
const cachedSsoCapable = this.getCachedSsoCapable();
|
|
1045
|
+
if (cachedSsoCapable !== undefined) {
|
|
1046
|
+
this.logger.verbose(
|
|
1047
|
+
`SSO capability verification skipped - cached value has not expired (interactionType: '${interactionType}')`,
|
|
1048
|
+
""
|
|
1049
|
+
);
|
|
1050
|
+
return;
|
|
1051
|
+
}
|
|
1052
|
+
|
|
1053
|
+
const correlationId = createNewGuid();
|
|
1054
|
+
const ssoCapableMeasurement = this.performanceClient.startMeasurement(
|
|
1055
|
+
BrowserRootPerformanceEvents.SsoCapable,
|
|
1056
|
+
correlationId
|
|
1057
|
+
);
|
|
1058
|
+
ssoCapableMeasurement.add({
|
|
1059
|
+
"ext.interactionType": interactionType,
|
|
907
1060
|
});
|
|
1061
|
+
|
|
1062
|
+
this.logger.verbose(
|
|
1063
|
+
`SSO capability verification initiated after '${interactionType}'`,
|
|
1064
|
+
correlationId
|
|
1065
|
+
);
|
|
1066
|
+
|
|
1067
|
+
/*
|
|
1068
|
+
* Use setTimeout to ensure this runs in a separate macrotask after the current call stack completes
|
|
1069
|
+
* This ensures the result is returned to the caller before the SSO verification starts and doesn't affect performance
|
|
1070
|
+
*/
|
|
1071
|
+
setTimeout(() => {
|
|
1072
|
+
const ssoVerificationRequest: SsoSilentRequest = {
|
|
1073
|
+
...request,
|
|
1074
|
+
correlationId: correlationId,
|
|
1075
|
+
};
|
|
1076
|
+
|
|
1077
|
+
const silentIframeClient =
|
|
1078
|
+
this.createSilentIframeClient(correlationId);
|
|
1079
|
+
silentIframeClient
|
|
1080
|
+
.verifySso(ssoVerificationRequest)
|
|
1081
|
+
.then((result: boolean) => {
|
|
1082
|
+
this.logger.verbose(
|
|
1083
|
+
`SSO capability verification completed after '${interactionType}', result: '${result}'`,
|
|
1084
|
+
correlationId
|
|
1085
|
+
);
|
|
1086
|
+
|
|
1087
|
+
// TBD to add profileTelemetry later in localStorage with 24h TTL
|
|
1088
|
+
try {
|
|
1089
|
+
const cacheEntry = JSON.stringify({
|
|
1090
|
+
ssoCapable: result,
|
|
1091
|
+
expiresOn: Date.now() + SSO_CAPABLE_TTL_MS,
|
|
1092
|
+
});
|
|
1093
|
+
window.localStorage.setItem(ssoCacheKey, cacheEntry);
|
|
1094
|
+
} catch {
|
|
1095
|
+
this.logger.warning(
|
|
1096
|
+
`Failed to cache SSO capability verification result (interactionType: '${interactionType}')`,
|
|
1097
|
+
correlationId
|
|
1098
|
+
);
|
|
1099
|
+
}
|
|
1100
|
+
|
|
1101
|
+
ssoCapableMeasurement.end(
|
|
1102
|
+
{
|
|
1103
|
+
fromCache: false,
|
|
1104
|
+
success: result,
|
|
1105
|
+
},
|
|
1106
|
+
undefined
|
|
1107
|
+
);
|
|
1108
|
+
})
|
|
1109
|
+
.catch((error: Error) => {
|
|
1110
|
+
this.logger.warning(
|
|
1111
|
+
`SSO capability verification failed after '${interactionType}': '${error.message}'`,
|
|
1112
|
+
correlationId
|
|
1113
|
+
);
|
|
1114
|
+
// reset the cache
|
|
1115
|
+
try {
|
|
1116
|
+
window.localStorage.removeItem(ssoCacheKey);
|
|
1117
|
+
} catch {
|
|
1118
|
+
this.logger.warning(
|
|
1119
|
+
`Failed to reset cached SSO capability verification result (interactionType: '${interactionType}')`,
|
|
1120
|
+
correlationId
|
|
1121
|
+
);
|
|
1122
|
+
}
|
|
1123
|
+
ssoCapableMeasurement.end(
|
|
1124
|
+
{
|
|
1125
|
+
fromCache: false,
|
|
1126
|
+
success: false,
|
|
1127
|
+
},
|
|
1128
|
+
error
|
|
1129
|
+
);
|
|
1130
|
+
});
|
|
1131
|
+
}, 0);
|
|
908
1132
|
}
|
|
1133
|
+
|
|
909
1134
|
// #endregion
|
|
910
1135
|
|
|
911
1136
|
// #region Silent Flow
|
|
@@ -929,8 +1154,6 @@ export class StandardController implements IController {
|
|
|
929
1154
|
const correlationId = this.getRequestCorrelationId(request);
|
|
930
1155
|
const validRequest = {
|
|
931
1156
|
...request,
|
|
932
|
-
// will be PromptValue.NONE or PromptValue.NO_SESSION
|
|
933
|
-
prompt: request.prompt,
|
|
934
1157
|
correlationId: correlationId,
|
|
935
1158
|
};
|
|
936
1159
|
this.ssoSilentMeasurement = this.performanceClient.startMeasurement(
|
|
@@ -939,6 +1162,7 @@ export class StandardController implements IController {
|
|
|
939
1162
|
);
|
|
940
1163
|
this.ssoSilentMeasurement?.add({
|
|
941
1164
|
scenarioId: request.scenarioId,
|
|
1165
|
+
ssoCapable: this.getCachedSsoCapable(),
|
|
942
1166
|
});
|
|
943
1167
|
preflightCheck(
|
|
944
1168
|
this.initialized,
|
|
@@ -948,12 +1172,10 @@ export class StandardController implements IController {
|
|
|
948
1172
|
);
|
|
949
1173
|
this.ssoSilentMeasurement?.increment({
|
|
950
1174
|
visibilityChangeCount: 0,
|
|
1175
|
+
onlineStatusChangeCount: 0,
|
|
951
1176
|
});
|
|
952
1177
|
|
|
953
|
-
|
|
954
|
-
"visibilitychange",
|
|
955
|
-
this.trackPageVisibilityWithMeasurement
|
|
956
|
-
);
|
|
1178
|
+
this.addStateChangeListeners(this.trackStateChangeWithMeasurement);
|
|
957
1179
|
|
|
958
1180
|
const loggedInAccounts = this.getAllAccounts();
|
|
959
1181
|
this.logger.verbose("ssoSilent called", correlationId);
|
|
@@ -967,13 +1189,20 @@ export class StandardController implements IController {
|
|
|
967
1189
|
let result: Promise<AuthenticationResult>;
|
|
968
1190
|
|
|
969
1191
|
if (this.canUsePlatformBroker(validRequest)) {
|
|
1192
|
+
this.ssoSilentMeasurement?.add({
|
|
1193
|
+
isPlatformBrokerRequest: true,
|
|
1194
|
+
});
|
|
970
1195
|
result = this.acquireTokenNative(
|
|
971
1196
|
validRequest,
|
|
972
1197
|
ApiId.ssoSilent
|
|
973
1198
|
).catch((e: AuthError) => {
|
|
1199
|
+
this.ssoSilentMeasurement?.add({
|
|
1200
|
+
brokerErrorName: e.name,
|
|
1201
|
+
brokerErrorCode: e.errorCode,
|
|
1202
|
+
});
|
|
974
1203
|
// If native token acquisition fails for availability reasons fallback to standard flow
|
|
975
1204
|
if (e instanceof NativeAuthError && isFatalNativeAuthError(e)) {
|
|
976
|
-
this.platformAuthProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt
|
|
1205
|
+
this.platformAuthProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt platform broker calls
|
|
977
1206
|
const silentIframeClient = this.createSilentIframeClient(
|
|
978
1207
|
validRequest.correlationId
|
|
979
1208
|
);
|
|
@@ -1036,9 +1265,8 @@ export class StandardController implements IController {
|
|
|
1036
1265
|
throw e;
|
|
1037
1266
|
})
|
|
1038
1267
|
.finally(() => {
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
this.trackPageVisibilityWithMeasurement
|
|
1268
|
+
this.removeStateChangeListeners(
|
|
1269
|
+
this.trackStateChangeWithMeasurement
|
|
1042
1270
|
);
|
|
1043
1271
|
});
|
|
1044
1272
|
}
|
|
@@ -1100,7 +1328,6 @@ export class StandardController implements IController {
|
|
|
1100
1328
|
atbcMeasurement.end(
|
|
1101
1329
|
{
|
|
1102
1330
|
success: true,
|
|
1103
|
-
isNativeBroker: result.fromPlatformBroker,
|
|
1104
1331
|
accessTokenSize: result.accessToken.length,
|
|
1105
1332
|
idTokenSize: result.idToken.length,
|
|
1106
1333
|
},
|
|
@@ -1139,6 +1366,9 @@ export class StandardController implements IController {
|
|
|
1139
1366
|
if (
|
|
1140
1367
|
this.canUsePlatformBroker(request, request.nativeAccountId)
|
|
1141
1368
|
) {
|
|
1369
|
+
atbcMeasurement.add({
|
|
1370
|
+
isPlatformBrokerRequest: true,
|
|
1371
|
+
});
|
|
1142
1372
|
const result = await this.acquireTokenNative(
|
|
1143
1373
|
{
|
|
1144
1374
|
...request,
|
|
@@ -1147,6 +1377,10 @@ export class StandardController implements IController {
|
|
|
1147
1377
|
ApiId.acquireTokenByCode,
|
|
1148
1378
|
request.nativeAccountId
|
|
1149
1379
|
).catch((e: AuthError) => {
|
|
1380
|
+
atbcMeasurement.add({
|
|
1381
|
+
brokerErrorName: e.name,
|
|
1382
|
+
brokerErrorCode: e.errorCode,
|
|
1383
|
+
});
|
|
1150
1384
|
// If native token acquisition fails for availability reasons fallback to standard flow
|
|
1151
1385
|
if (
|
|
1152
1386
|
e instanceof NativeAuthError &&
|
|
@@ -1209,11 +1443,9 @@ export class StandardController implements IController {
|
|
|
1209
1443
|
);
|
|
1210
1444
|
this.acquireTokenByCodeAsyncMeasurement?.increment({
|
|
1211
1445
|
visibilityChangeCount: 0,
|
|
1446
|
+
onlineStatusChangeCount: 0,
|
|
1212
1447
|
});
|
|
1213
|
-
|
|
1214
|
-
"visibilitychange",
|
|
1215
|
-
this.trackPageVisibilityWithMeasurement
|
|
1216
|
-
);
|
|
1448
|
+
this.addStateChangeListeners(this.trackStateChangeWithMeasurement);
|
|
1217
1449
|
const silentAuthCodeClient =
|
|
1218
1450
|
this.createSilentAuthCodeClient(correlationId);
|
|
1219
1451
|
const silentTokenResult = await silentAuthCodeClient
|
|
@@ -1222,7 +1454,6 @@ export class StandardController implements IController {
|
|
|
1222
1454
|
this.acquireTokenByCodeAsyncMeasurement?.end({
|
|
1223
1455
|
success: true,
|
|
1224
1456
|
fromCache: response.fromCache,
|
|
1225
|
-
isNativeBroker: response.fromPlatformBroker,
|
|
1226
1457
|
});
|
|
1227
1458
|
return response;
|
|
1228
1459
|
})
|
|
@@ -1236,9 +1467,8 @@ export class StandardController implements IController {
|
|
|
1236
1467
|
throw tokenRenewalError;
|
|
1237
1468
|
})
|
|
1238
1469
|
.finally(() => {
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
this.trackPageVisibilityWithMeasurement
|
|
1470
|
+
this.removeStateChangeListeners(
|
|
1471
|
+
this.trackStateChangeWithMeasurement
|
|
1242
1472
|
);
|
|
1243
1473
|
});
|
|
1244
1474
|
return silentTokenResult;
|
|
@@ -1521,7 +1751,13 @@ export class StandardController implements IController {
|
|
|
1521
1751
|
correlationId
|
|
1522
1752
|
);
|
|
1523
1753
|
|
|
1524
|
-
return
|
|
1754
|
+
return invokeAsync(
|
|
1755
|
+
nativeClient.acquireToken.bind(nativeClient),
|
|
1756
|
+
BrowserPerformanceEvents.NativeInteractionClientAcquireToken,
|
|
1757
|
+
this.logger,
|
|
1758
|
+
this.performanceClient,
|
|
1759
|
+
correlationId
|
|
1760
|
+
)(request, cacheLookupPolicy);
|
|
1525
1761
|
}
|
|
1526
1762
|
|
|
1527
1763
|
/**
|
|
@@ -1552,7 +1788,7 @@ export class StandardController implements IController {
|
|
|
1552
1788
|
)
|
|
1553
1789
|
) {
|
|
1554
1790
|
this.logger.trace(
|
|
1555
|
-
"canUsePlatformBroker:
|
|
1791
|
+
"canUsePlatformBroker: isPlatformAuthAllowed returned false, returning false",
|
|
1556
1792
|
correlationId
|
|
1557
1793
|
);
|
|
1558
1794
|
return false;
|
|
@@ -1895,6 +2131,7 @@ export class StandardController implements IController {
|
|
|
1895
2131
|
atsMeasurement.add({
|
|
1896
2132
|
cacheLookupPolicy: request.cacheLookupPolicy,
|
|
1897
2133
|
scenarioId: request.scenarioId,
|
|
2134
|
+
ssoCapable: this.getCachedSsoCapable(),
|
|
1898
2135
|
});
|
|
1899
2136
|
|
|
1900
2137
|
preflightCheck(this.initialized, atsMeasurement, this.config, request);
|
|
@@ -1911,7 +2148,6 @@ export class StandardController implements IController {
|
|
|
1911
2148
|
{
|
|
1912
2149
|
success: true,
|
|
1913
2150
|
fromCache: result.fromCache,
|
|
1914
|
-
isNativeBroker: result.fromPlatformBroker,
|
|
1915
2151
|
accessTokenSize: result.accessToken.length,
|
|
1916
2152
|
idTokenSize: result.idToken.length,
|
|
1917
2153
|
},
|
|
@@ -2012,8 +2248,8 @@ export class StandardController implements IController {
|
|
|
2012
2248
|
request: SilentRequest & { correlationId: string },
|
|
2013
2249
|
account: AccountInfo
|
|
2014
2250
|
): Promise<AuthenticationResult> {
|
|
2015
|
-
const
|
|
2016
|
-
this.
|
|
2251
|
+
const trackStateChange = (event: Event) =>
|
|
2252
|
+
this.trackStateChange(request.correlationId, event);
|
|
2017
2253
|
this.eventHandler.emitEvent(
|
|
2018
2254
|
EventType.ACQUIRE_TOKEN_START,
|
|
2019
2255
|
request.correlationId,
|
|
@@ -2023,12 +2259,12 @@ export class StandardController implements IController {
|
|
|
2023
2259
|
|
|
2024
2260
|
if (request.correlationId) {
|
|
2025
2261
|
this.performanceClient.incrementFields(
|
|
2026
|
-
{ visibilityChangeCount: 0 },
|
|
2262
|
+
{ visibilityChangeCount: 0, onlineStatusChangeCount: 0 },
|
|
2027
2263
|
request.correlationId
|
|
2028
2264
|
);
|
|
2029
2265
|
}
|
|
2030
2266
|
|
|
2031
|
-
|
|
2267
|
+
this.addStateChangeListeners(trackStateChange);
|
|
2032
2268
|
|
|
2033
2269
|
const silentRequest = await invokeAsync(
|
|
2034
2270
|
initializeSilentRequest,
|
|
@@ -2180,10 +2416,7 @@ export class StandardController implements IController {
|
|
|
2180
2416
|
throw tokenRenewalError;
|
|
2181
2417
|
})
|
|
2182
2418
|
.finally(() => {
|
|
2183
|
-
|
|
2184
|
-
"visibilitychange",
|
|
2185
|
-
trackPageVisibility
|
|
2186
|
-
);
|
|
2419
|
+
this.removeStateChangeListeners(trackStateChange);
|
|
2187
2420
|
});
|
|
2188
2421
|
}
|
|
2189
2422
|
|
|
@@ -2212,12 +2445,26 @@ export class StandardController implements IController {
|
|
|
2212
2445
|
"acquireTokenSilent - attempting to acquire token from native platform",
|
|
2213
2446
|
silentRequest.correlationId
|
|
2214
2447
|
);
|
|
2448
|
+
|
|
2449
|
+
this.performanceClient.addFields(
|
|
2450
|
+
{ isPlatformBrokerRequest: true },
|
|
2451
|
+
silentRequest.correlationId
|
|
2452
|
+
);
|
|
2453
|
+
|
|
2215
2454
|
return this.acquireTokenNative(
|
|
2216
2455
|
silentRequest,
|
|
2217
2456
|
ApiId.acquireTokenSilent_silentFlow,
|
|
2218
2457
|
silentRequest.account.nativeAccountId,
|
|
2219
2458
|
cacheLookupPolicy
|
|
2220
2459
|
).catch(async (e: AuthError) => {
|
|
2460
|
+
this.performanceClient.addFields(
|
|
2461
|
+
{
|
|
2462
|
+
brokerErrorName: e.name,
|
|
2463
|
+
brokerErrorCode: e.errorCode,
|
|
2464
|
+
},
|
|
2465
|
+
silentRequest.correlationId
|
|
2466
|
+
);
|
|
2467
|
+
|
|
2221
2468
|
// If native token acquisition fails for availability reasons fallback to web flow
|
|
2222
2469
|
if (e instanceof NativeAuthError && isFatalNativeAuthError(e)) {
|
|
2223
2470
|
this.logger.verbose(
|
|
@@ -48,8 +48,7 @@ export function isFatalNativeAuthError(error: NativeAuthError): boolean {
|
|
|
48
48
|
if (
|
|
49
49
|
error.ext &&
|
|
50
50
|
error.ext.status &&
|
|
51
|
-
|
|
52
|
-
error.ext.status === NativeStatusCodes.DISABLED)
|
|
51
|
+
error.ext.status === NativeStatusCodes.DISABLED
|
|
53
52
|
) {
|
|
54
53
|
return true;
|
|
55
54
|
}
|