@azure/msal-browser 4.28.2 → 4.29.1
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 +25 -25
- package/dist/app/IPublicClientApplication.mjs +1 -1
- package/dist/app/PublicClientApplication.mjs +1 -1
- package/dist/app/PublicClientNext.mjs +1 -1
- package/dist/broker/nativeBroker/NativeStatusCodes.mjs +1 -1
- package/dist/broker/nativeBroker/PlatformAuthDOMHandler.d.ts.map +1 -1
- package/dist/broker/nativeBroker/PlatformAuthDOMHandler.mjs +23 -9
- package/dist/broker/nativeBroker/PlatformAuthDOMHandler.mjs.map +1 -1
- package/dist/broker/nativeBroker/PlatformAuthExtensionHandler.mjs +1 -1
- package/dist/broker/nativeBroker/PlatformAuthProvider.mjs +1 -1
- 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.mjs +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.mjs +1 -1
- package/dist/config/Configuration.d.ts +7 -0
- package/dist/config/Configuration.d.ts.map +1 -1
- package/dist/config/Configuration.mjs +2 -1
- package/dist/config/Configuration.mjs.map +1 -1
- package/dist/controllers/ControllerFactory.mjs +1 -1
- package/dist/controllers/NestedAppAuthController.mjs +1 -1
- package/dist/controllers/StandardController.d.ts +13 -2
- package/dist/controllers/StandardController.d.ts.map +1 -1
- package/dist/controllers/StandardController.mjs +109 -20
- package/dist/controllers/StandardController.mjs.map +1 -1
- package/dist/controllers/UnknownOperatingContextController.mjs +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 +1 -1
- package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthDOMHandler.d.ts.map +1 -1
- package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthDOMHandler.mjs +23 -9
- package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthDOMHandler.mjs.map +1 -1
- package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthExtensionHandler.mjs +1 -1
- package/dist/custom-auth-path/broker/nativeBroker/PlatformAuthProvider.mjs +1 -1
- 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.mjs +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.mjs +1 -1
- package/dist/custom-auth-path/config/Configuration.d.ts +7 -0
- package/dist/custom-auth-path/config/Configuration.d.ts.map +1 -1
- package/dist/custom-auth-path/config/Configuration.mjs +2 -1
- package/dist/custom-auth-path/config/Configuration.mjs.map +1 -1
- package/dist/custom-auth-path/controllers/ControllerFactory.mjs +1 -1
- package/dist/custom-auth-path/controllers/StandardController.d.ts +13 -2
- package/dist/custom-auth-path/controllers/StandardController.d.ts.map +1 -1
- package/dist/custom-auth-path/controllers/StandardController.mjs +109 -20
- 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.mjs +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/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.mjs +1 -1
- package/dist/custom-auth-path/interaction_client/PopupClient.mjs +1 -1
- package/dist/custom-auth-path/interaction_client/RedirectClient.mjs +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 +7 -0
- package/dist/custom-auth-path/interaction_client/SilentIframeClient.d.ts.map +1 -1
- package/dist/custom-auth-path/interaction_client/SilentIframeClient.mjs +49 -3
- 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.d.ts.map +1 -1
- package/dist/custom-auth-path/interaction_client/StandardInteractionClient.mjs +5 -1
- package/dist/custom-auth-path/interaction_client/StandardInteractionClient.mjs.map +1 -1
- package/dist/custom-auth-path/interaction_handler/InteractionHandler.mjs +1 -1
- package/dist/custom-auth-path/interaction_handler/SilentHandler.d.ts.map +1 -1
- package/dist/custom-auth-path/interaction_handler/SilentHandler.mjs +15 -2
- package/dist/custom-auth-path/interaction_handler/SilentHandler.mjs.map +1 -1
- 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.mjs +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/utils/BrowserConstants.mjs +1 -1
- package/dist/custom-auth-path/utils/BrowserProtocolUtils.mjs +1 -1
- package/dist/custom-auth-path/utils/BrowserUtils.mjs +1 -1
- package/dist/custom-auth-path/utils/Helpers.mjs +1 -1
- package/dist/custom-auth-path/utils/MsalFrameStatsUtils.d.ts +10 -0
- package/dist/custom-auth-path/utils/MsalFrameStatsUtils.d.ts.map +1 -1
- package/dist/custom-auth-path/utils/MsalFrameStatsUtils.mjs +5 -1
- package/dist/custom-auth-path/utils/MsalFrameStatsUtils.mjs.map +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.mjs +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.mjs +1 -1
- package/dist/interaction_client/BaseInteractionClient.mjs +1 -1
- package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +1 -1
- package/dist/interaction_client/PlatformAuthInteractionClient.mjs +1 -1
- package/dist/interaction_client/PopupClient.mjs +1 -1
- package/dist/interaction_client/RedirectClient.mjs +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 +7 -0
- package/dist/interaction_client/SilentIframeClient.d.ts.map +1 -1
- package/dist/interaction_client/SilentIframeClient.mjs +49 -3
- package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
- package/dist/interaction_client/SilentRefreshClient.mjs +1 -1
- package/dist/interaction_client/StandardInteractionClient.d.ts.map +1 -1
- package/dist/interaction_client/StandardInteractionClient.mjs +5 -1
- package/dist/interaction_client/StandardInteractionClient.mjs.map +1 -1
- package/dist/interaction_handler/InteractionHandler.mjs +1 -1
- package/dist/interaction_handler/SilentHandler.d.ts.map +1 -1
- package/dist/interaction_handler/SilentHandler.mjs +15 -2
- package/dist/interaction_handler/SilentHandler.mjs.map +1 -1
- 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/operatingcontext/UnknownOperatingContext.mjs +1 -1
- package/dist/packageMetadata.d.ts +1 -1
- package/dist/packageMetadata.mjs +2 -2
- package/dist/protocol/Authorize.mjs +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 +10 -1
- package/dist/telemetry/BrowserPerformanceClient.mjs.map +1 -1
- package/dist/telemetry/BrowserPerformanceMeasurement.mjs +1 -1
- package/dist/utils/BrowserConstants.mjs +1 -1
- package/dist/utils/BrowserProtocolUtils.mjs +1 -1
- package/dist/utils/BrowserUtils.mjs +1 -1
- package/dist/utils/Helpers.mjs +1 -1
- package/dist/utils/MsalFrameStatsUtils.d.ts +10 -0
- package/dist/utils/MsalFrameStatsUtils.d.ts.map +1 -1
- package/dist/utils/MsalFrameStatsUtils.mjs +18 -2
- package/dist/utils/MsalFrameStatsUtils.mjs.map +1 -1
- package/lib/custom-auth-path/msal-custom-auth.cjs +375 -111
- package/lib/custom-auth-path/msal-custom-auth.cjs.map +1 -1
- package/lib/custom-auth-path/msal-custom-auth.js +375 -111
- package/lib/custom-auth-path/msal-custom-auth.js.map +1 -1
- package/lib/custom-auth-path/types/broker/nativeBroker/PlatformAuthDOMHandler.d.ts.map +1 -1
- package/lib/custom-auth-path/types/config/Configuration.d.ts +7 -0
- package/lib/custom-auth-path/types/config/Configuration.d.ts.map +1 -1
- package/lib/custom-auth-path/types/controllers/StandardController.d.ts +13 -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/interaction_client/SilentIframeClient.d.ts +7 -0
- package/lib/custom-auth-path/types/interaction_client/SilentIframeClient.d.ts.map +1 -1
- package/lib/custom-auth-path/types/interaction_client/StandardInteractionClient.d.ts.map +1 -1
- package/lib/custom-auth-path/types/interaction_handler/SilentHandler.d.ts.map +1 -1
- package/lib/custom-auth-path/types/packageMetadata.d.ts +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/utils/MsalFrameStatsUtils.d.ts +10 -0
- package/lib/custom-auth-path/types/utils/MsalFrameStatsUtils.d.ts.map +1 -1
- package/lib/msal-browser.cjs +408 -113
- package/lib/msal-browser.cjs.map +1 -1
- package/lib/msal-browser.js +408 -113
- package/lib/msal-browser.js.map +1 -1
- package/lib/msal-browser.min.js +64 -64
- package/lib/types/broker/nativeBroker/PlatformAuthDOMHandler.d.ts.map +1 -1
- package/lib/types/config/Configuration.d.ts +7 -0
- package/lib/types/config/Configuration.d.ts.map +1 -1
- package/lib/types/controllers/StandardController.d.ts +13 -2
- package/lib/types/controllers/StandardController.d.ts.map +1 -1
- package/lib/types/custom_auth/CustomAuthConstants.d.ts +1 -1
- package/lib/types/interaction_client/SilentIframeClient.d.ts +7 -0
- package/lib/types/interaction_client/SilentIframeClient.d.ts.map +1 -1
- package/lib/types/interaction_client/StandardInteractionClient.d.ts.map +1 -1
- package/lib/types/interaction_handler/SilentHandler.d.ts.map +1 -1
- package/lib/types/packageMetadata.d.ts +1 -1
- package/lib/types/telemetry/BrowserPerformanceClient.d.ts +1 -0
- package/lib/types/telemetry/BrowserPerformanceClient.d.ts.map +1 -1
- package/lib/types/utils/MsalFrameStatsUtils.d.ts +10 -0
- package/lib/types/utils/MsalFrameStatsUtils.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/broker/nativeBroker/PlatformAuthDOMHandler.ts +24 -13
- package/src/config/Configuration.ts +8 -0
- package/src/controllers/StandardController.ts +164 -39
- package/src/interaction_client/SilentIframeClient.ts +136 -0
- package/src/interaction_client/StandardInteractionClient.ts +12 -0
- package/src/interaction_handler/SilentHandler.ts +21 -1
- package/src/packageMetadata.ts +1 -1
- package/src/telemetry/BrowserPerformanceClient.ts +10 -0
- package/src/utils/MsalFrameStatsUtils.ts +27 -0
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
ProtocolMode,
|
|
17
17
|
CommonAuthorizationUrlRequest,
|
|
18
18
|
HttpMethod,
|
|
19
|
+
AuthorizeProtocol,
|
|
19
20
|
} from "@azure/msal-common/browser";
|
|
20
21
|
import { StandardInteractionClient } from "./StandardInteractionClient.js";
|
|
21
22
|
import { BrowserConfiguration } from "../config/Configuration.js";
|
|
@@ -349,6 +350,141 @@ export class SilentIframeClient extends StandardInteractionClient {
|
|
|
349
350
|
}
|
|
350
351
|
}
|
|
351
352
|
|
|
353
|
+
/**
|
|
354
|
+
* Verifies SSO capability by making an iframe request to /authorize without exchanging the code for tokens.
|
|
355
|
+
* This is useful for verifying SSO capability in the background without the overhead of a full token exchange.
|
|
356
|
+
* @param request - The SSO silent request
|
|
357
|
+
* @returns true if SSO verification was successful with a valid authorization code, false otherwise
|
|
358
|
+
*/
|
|
359
|
+
async verifySso(request: SsoSilentRequest): Promise<boolean> {
|
|
360
|
+
this.performanceClient.addQueueMeasurement(
|
|
361
|
+
PerformanceEvents.SilentIframeClientAcquireToken,
|
|
362
|
+
request.correlationId
|
|
363
|
+
);
|
|
364
|
+
|
|
365
|
+
const inputRequest = { ...request };
|
|
366
|
+
if (!inputRequest.prompt) {
|
|
367
|
+
inputRequest.prompt = PromptValue.NONE;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
// Create silent request
|
|
371
|
+
const silentRequest: CommonAuthorizationUrlRequest = await invokeAsync(
|
|
372
|
+
this.initializeAuthorizationRequest.bind(this),
|
|
373
|
+
PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest,
|
|
374
|
+
this.logger,
|
|
375
|
+
this.performanceClient,
|
|
376
|
+
request.correlationId
|
|
377
|
+
)(inputRequest, InteractionType.Silent);
|
|
378
|
+
|
|
379
|
+
const authClient = await invokeAsync(
|
|
380
|
+
this.createAuthCodeClient.bind(this),
|
|
381
|
+
PerformanceEvents.StandardInteractionClientCreateAuthCodeClient,
|
|
382
|
+
this.logger,
|
|
383
|
+
this.performanceClient,
|
|
384
|
+
request.correlationId
|
|
385
|
+
)({
|
|
386
|
+
serverTelemetryManager: this.initializeServerTelemetryManager(
|
|
387
|
+
this.apiId
|
|
388
|
+
),
|
|
389
|
+
requestAuthority: silentRequest.authority,
|
|
390
|
+
requestAzureCloudOptions: silentRequest.azureCloudOptions,
|
|
391
|
+
requestExtraQueryParameters: silentRequest.extraQueryParameters,
|
|
392
|
+
account: silentRequest.account,
|
|
393
|
+
});
|
|
394
|
+
|
|
395
|
+
const correlationId = silentRequest.correlationId;
|
|
396
|
+
const pkceCodes = await invokeAsync(
|
|
397
|
+
generatePkceCodes,
|
|
398
|
+
PerformanceEvents.GeneratePkceCodes,
|
|
399
|
+
this.logger,
|
|
400
|
+
this.performanceClient,
|
|
401
|
+
correlationId
|
|
402
|
+
)(this.performanceClient, this.logger, correlationId);
|
|
403
|
+
|
|
404
|
+
const requestWithPkce = {
|
|
405
|
+
...silentRequest,
|
|
406
|
+
codeChallenge: pkceCodes.challenge,
|
|
407
|
+
};
|
|
408
|
+
|
|
409
|
+
// Create authorize request url
|
|
410
|
+
const navigateUrl = await invokeAsync(
|
|
411
|
+
Authorize.getAuthCodeRequestUrl,
|
|
412
|
+
PerformanceEvents.GetAuthCodeUrl,
|
|
413
|
+
this.logger,
|
|
414
|
+
this.performanceClient,
|
|
415
|
+
correlationId
|
|
416
|
+
)(
|
|
417
|
+
this.config,
|
|
418
|
+
authClient.authority,
|
|
419
|
+
requestWithPkce,
|
|
420
|
+
this.logger,
|
|
421
|
+
this.performanceClient
|
|
422
|
+
);
|
|
423
|
+
|
|
424
|
+
// Get the frame handle for the silent request - this triggers the SSO verification
|
|
425
|
+
const msalFrame = await invokeAsync(
|
|
426
|
+
initiateCodeRequest,
|
|
427
|
+
PerformanceEvents.SilentHandlerInitiateAuthRequest,
|
|
428
|
+
this.logger,
|
|
429
|
+
this.performanceClient,
|
|
430
|
+
correlationId
|
|
431
|
+
)(
|
|
432
|
+
navigateUrl,
|
|
433
|
+
this.performanceClient,
|
|
434
|
+
this.logger,
|
|
435
|
+
correlationId,
|
|
436
|
+
this.config.system.navigateFrameWait
|
|
437
|
+
);
|
|
438
|
+
|
|
439
|
+
const responseType = this.config.auth.OIDCOptions.serverResponseType;
|
|
440
|
+
// Monitor the iframe for the response
|
|
441
|
+
const responseString = await invokeAsync(
|
|
442
|
+
monitorIframeForHash,
|
|
443
|
+
PerformanceEvents.SilentHandlerMonitorIframeForHash,
|
|
444
|
+
this.logger,
|
|
445
|
+
this.performanceClient,
|
|
446
|
+
correlationId
|
|
447
|
+
)(
|
|
448
|
+
msalFrame,
|
|
449
|
+
this.config.system.iframeHashTimeout,
|
|
450
|
+
this.config.system.pollIntervalMilliseconds,
|
|
451
|
+
this.performanceClient,
|
|
452
|
+
this.logger,
|
|
453
|
+
correlationId,
|
|
454
|
+
responseType
|
|
455
|
+
);
|
|
456
|
+
|
|
457
|
+
// Deserialize the response
|
|
458
|
+
const serverParams = invoke(
|
|
459
|
+
ResponseHandler.deserializeResponse,
|
|
460
|
+
PerformanceEvents.DeserializeResponse,
|
|
461
|
+
this.logger,
|
|
462
|
+
this.performanceClient,
|
|
463
|
+
correlationId
|
|
464
|
+
)(responseString, responseType, this.logger);
|
|
465
|
+
|
|
466
|
+
// Validate the response - this checks for errors and validates state
|
|
467
|
+
AuthorizeProtocol.validateAuthorizationResponse(
|
|
468
|
+
serverParams,
|
|
469
|
+
silentRequest.state
|
|
470
|
+
);
|
|
471
|
+
|
|
472
|
+
// Verify a valid authorization code is present
|
|
473
|
+
if (!serverParams.code) {
|
|
474
|
+
this.logger.warning(
|
|
475
|
+
"SSO verification response did not contain an authorization code",
|
|
476
|
+
correlationId
|
|
477
|
+
);
|
|
478
|
+
return false;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
this.logger.verbose(
|
|
482
|
+
"SSO verification completed successfully with valid authorization code - skipped token exchange",
|
|
483
|
+
correlationId
|
|
484
|
+
);
|
|
485
|
+
return true;
|
|
486
|
+
}
|
|
487
|
+
|
|
352
488
|
/**
|
|
353
489
|
* Currently Unsupported
|
|
354
490
|
*/
|
|
@@ -305,6 +305,18 @@ export abstract class StandardInteractionClient extends BaseInteractionClient {
|
|
|
305
305
|
);
|
|
306
306
|
|
|
307
307
|
const redirectUri = this.getRedirectUri(request.redirectUri);
|
|
308
|
+
if (
|
|
309
|
+
new URL(redirectUri).origin !== new URL(window.location.href).origin
|
|
310
|
+
) {
|
|
311
|
+
this.logger.warning(
|
|
312
|
+
"The origin of the redirect URI does not match the origin of the current page. This is likely to cause issues with authentication.",
|
|
313
|
+
this.correlationId
|
|
314
|
+
);
|
|
315
|
+
this.performanceClient.addFields(
|
|
316
|
+
{ isRedirectUriCrossOrigin: true },
|
|
317
|
+
this.correlationId
|
|
318
|
+
);
|
|
319
|
+
}
|
|
308
320
|
const browserState: BrowserStateObject = {
|
|
309
321
|
interactionType: interactionType,
|
|
310
322
|
};
|
|
@@ -127,6 +127,16 @@ export async function monitorIframeForHash(
|
|
|
127
127
|
PerformanceEvents.SilentHandlerMonitorIframeForHash,
|
|
128
128
|
correlationId
|
|
129
129
|
);
|
|
130
|
+
performanceClient.addFields(
|
|
131
|
+
{
|
|
132
|
+
iframePollIntervalMs: pollIntervalMilliseconds,
|
|
133
|
+
iframeTimeoutMs: timeout,
|
|
134
|
+
},
|
|
135
|
+
correlationId
|
|
136
|
+
);
|
|
137
|
+
|
|
138
|
+
let totalTickCount = 0;
|
|
139
|
+
let crossOriginTickCount = 0;
|
|
130
140
|
|
|
131
141
|
return new Promise<string>((resolve, reject) => {
|
|
132
142
|
if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {
|
|
@@ -149,6 +159,7 @@ export async function monitorIframeForHash(
|
|
|
149
159
|
}, timeout);
|
|
150
160
|
|
|
151
161
|
const intervalId = window.setInterval(() => {
|
|
162
|
+
totalTickCount++;
|
|
152
163
|
let href: string = "";
|
|
153
164
|
const contentWindow = iframe.contentWindow;
|
|
154
165
|
try {
|
|
@@ -158,7 +169,9 @@ export async function monitorIframeForHash(
|
|
|
158
169
|
* since we need the interval to keep running while on STS UI.
|
|
159
170
|
*/
|
|
160
171
|
href = contentWindow ? contentWindow.location.href : "";
|
|
161
|
-
} catch (e) {
|
|
172
|
+
} catch (e) {
|
|
173
|
+
crossOriginTickCount++;
|
|
174
|
+
}
|
|
162
175
|
|
|
163
176
|
if (!href || href === "about:blank") {
|
|
164
177
|
return;
|
|
@@ -177,6 +190,13 @@ export async function monitorIframeForHash(
|
|
|
177
190
|
resolve(responseString);
|
|
178
191
|
}, pollIntervalMilliseconds);
|
|
179
192
|
}).finally(() => {
|
|
193
|
+
performanceClient.addFields(
|
|
194
|
+
{
|
|
195
|
+
iframeTickCount: totalTickCount,
|
|
196
|
+
crossOriginTickCount: crossOriginTickCount,
|
|
197
|
+
},
|
|
198
|
+
correlationId
|
|
199
|
+
);
|
|
180
200
|
invoke(
|
|
181
201
|
removeHiddenIframe,
|
|
182
202
|
PerformanceEvents.RemoveHiddenIframe,
|
package/src/packageMetadata.ts
CHANGED
|
@@ -20,6 +20,7 @@ import { name, version } from "../packageMetadata.js";
|
|
|
20
20
|
import { BrowserCacheLocation } from "../utils/BrowserConstants.js";
|
|
21
21
|
import * as BrowserCrypto from "../crypto/BrowserCrypto.js";
|
|
22
22
|
import { BROWSER_PERF_ENABLED_KEY } from "../cache/CacheKeys.js";
|
|
23
|
+
import { getNetworkInfo } from "../utils/MsalFrameStatsUtils.js";
|
|
23
24
|
|
|
24
25
|
/**
|
|
25
26
|
* Returns browser performance measurement module if session flag is enabled. Returns undefined otherwise.
|
|
@@ -100,6 +101,10 @@ export class BrowserPerformanceClient
|
|
|
100
101
|
return document.visibilityState?.toString() || null;
|
|
101
102
|
}
|
|
102
103
|
|
|
104
|
+
private getOnlineStatus(): boolean | null {
|
|
105
|
+
return typeof navigator !== "undefined" ? navigator.onLine : null;
|
|
106
|
+
}
|
|
107
|
+
|
|
103
108
|
private deleteIncompleteSubMeasurements(
|
|
104
109
|
inProgressEvent: InProgressPerformanceEvent
|
|
105
110
|
): void {
|
|
@@ -140,6 +145,7 @@ export class BrowserPerformanceClient
|
|
|
140
145
|
): InProgressPerformanceEvent {
|
|
141
146
|
// Capture page visibilityState and then invoke start/end measurement
|
|
142
147
|
const startPageVisibility = this.getPageVisibility();
|
|
148
|
+
const startOnlineStatus = this.getOnlineStatus();
|
|
143
149
|
const inProgressEvent = super.startMeasurement(
|
|
144
150
|
measureName,
|
|
145
151
|
correlationId
|
|
@@ -167,12 +173,16 @@ export class BrowserPerformanceClient
|
|
|
167
173
|
error?: unknown,
|
|
168
174
|
account?: AccountInfo
|
|
169
175
|
): PerformanceEvent | null => {
|
|
176
|
+
const networkInfo = getNetworkInfo();
|
|
170
177
|
const res = inProgressEvent.end(
|
|
171
178
|
{
|
|
172
179
|
...event,
|
|
173
180
|
startPageVisibility,
|
|
181
|
+
startOnlineStatus,
|
|
174
182
|
endPageVisibility: this.getPageVisibility(),
|
|
175
183
|
durationMs: getPerfDurationMs(startTime),
|
|
184
|
+
networkEffectiveType: networkInfo.effectiveType,
|
|
185
|
+
networkRtt: networkInfo.rtt,
|
|
176
186
|
},
|
|
177
187
|
error,
|
|
178
188
|
account
|
|
@@ -5,6 +5,33 @@
|
|
|
5
5
|
|
|
6
6
|
import { InProgressPerformanceEvent, Logger } from "@azure/msal-common/browser";
|
|
7
7
|
|
|
8
|
+
interface NetworkConnection {
|
|
9
|
+
effectiveType?: string;
|
|
10
|
+
rtt?: number;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Get network information for telemetry purposes. This is only supported in Chromium-based browsers.
|
|
15
|
+
* @returns Network connection information, or an empty object if not available.
|
|
16
|
+
*/
|
|
17
|
+
export function getNetworkInfo(): NetworkConnection {
|
|
18
|
+
if (typeof window === "undefined" || !window.navigator) {
|
|
19
|
+
return {};
|
|
20
|
+
}
|
|
21
|
+
const connection: NetworkConnection | undefined =
|
|
22
|
+
"connection" in window.navigator
|
|
23
|
+
? (
|
|
24
|
+
window.navigator as Navigator & {
|
|
25
|
+
connection: NetworkConnection;
|
|
26
|
+
}
|
|
27
|
+
).connection
|
|
28
|
+
: undefined;
|
|
29
|
+
return {
|
|
30
|
+
effectiveType: connection?.effectiveType,
|
|
31
|
+
rtt: connection?.rtt,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
8
35
|
export function collectInstanceStats(
|
|
9
36
|
currentClientId: string,
|
|
10
37
|
performanceEvent: InProgressPerformanceEvent,
|