@azure/msal-browser 3.3.0 → 3.4.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/dist/app/IPublicClientApplication.mjs +1 -1
- package/dist/app/PublicClientApplication.d.ts.map +1 -1
- package/dist/app/PublicClientApplication.mjs +3 -4
- package/dist/app/PublicClientApplication.mjs.map +1 -1
- package/dist/app/PublicClientNext.d.ts.map +1 -1
- package/dist/app/PublicClientNext.mjs +4 -6
- package/dist/app/PublicClientNext.mjs.map +1 -1
- package/dist/broker/nativeBroker/NativeMessageHandler.mjs +1 -1
- package/dist/broker/nativeBroker/NativeStatusCodes.mjs +1 -1
- package/dist/cache/AsyncMemoryStorage.mjs +1 -1
- package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
- package/dist/cache/BrowserCacheManager.mjs +20 -20
- package/dist/cache/BrowserCacheManager.mjs.map +1 -1
- package/dist/cache/BrowserStorage.mjs +1 -1
- package/dist/cache/CryptoKeyStore.mjs +1 -1
- package/dist/cache/DatabaseStorage.mjs +1 -1
- package/dist/cache/MemoryStorage.mjs +1 -1
- package/dist/cache/TokenCache.d.ts.map +1 -1
- package/dist/cache/TokenCache.mjs +5 -5
- package/dist/cache/TokenCache.mjs.map +1 -1
- package/dist/config/Configuration.mjs +1 -1
- package/dist/controllers/ControllerFactory.d.ts +2 -8
- package/dist/controllers/ControllerFactory.d.ts.map +1 -1
- package/dist/controllers/ControllerFactory.mjs +21 -38
- package/dist/controllers/ControllerFactory.mjs.map +1 -1
- package/dist/controllers/IController.d.ts +1 -2
- package/dist/controllers/IController.d.ts.map +1 -1
- package/dist/controllers/NestedAppAuthController.mjs +1 -1
- package/dist/controllers/StandardController.d.ts +4 -4
- package/dist/controllers/StandardController.d.ts.map +1 -1
- package/dist/controllers/StandardController.mjs +29 -31
- 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/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/NativeInteractionClient.d.ts.map +1 -1
- package/dist/interaction_client/NativeInteractionClient.mjs +4 -4
- package/dist/interaction_client/NativeInteractionClient.mjs.map +1 -1
- package/dist/interaction_client/PopupClient.d.ts +1 -2
- package/dist/interaction_client/PopupClient.d.ts.map +1 -1
- package/dist/interaction_client/PopupClient.mjs +9 -22
- 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 +11 -19
- package/dist/interaction_client/RedirectClient.mjs.map +1 -1
- package/dist/interaction_client/SilentAuthCodeClient.d.ts.map +1 -1
- package/dist/interaction_client/SilentAuthCodeClient.mjs +3 -5
- package/dist/interaction_client/SilentAuthCodeClient.mjs.map +1 -1
- package/dist/interaction_client/SilentCacheClient.mjs +1 -1
- package/dist/interaction_client/SilentIframeClient.d.ts.map +1 -1
- package/dist/interaction_client/SilentIframeClient.mjs +4 -9
- package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
- package/dist/interaction_client/SilentRefreshClient.d.ts.map +1 -1
- package/dist/interaction_client/SilentRefreshClient.mjs +2 -12
- package/dist/interaction_client/SilentRefreshClient.mjs.map +1 -1
- package/dist/interaction_client/StandardInteractionClient.mjs +1 -1
- package/dist/interaction_handler/InteractionHandler.d.ts +6 -13
- package/dist/interaction_handler/InteractionHandler.d.ts.map +1 -1
- package/dist/interaction_handler/InteractionHandler.mjs +29 -56
- package/dist/interaction_handler/InteractionHandler.mjs.map +1 -1
- package/dist/interaction_handler/RedirectHandler.d.ts +14 -7
- package/dist/interaction_handler/RedirectHandler.d.ts.map +1 -1
- package/dist/interaction_handler/RedirectHandler.mjs +28 -9
- package/dist/interaction_handler/RedirectHandler.mjs.map +1 -1
- package/dist/interaction_handler/SilentHandler.mjs +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/StandardOperatingContext.mjs +1 -1
- package/dist/operatingcontext/TeamsAppOperatingContext.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/telemetry/BrowserPerformanceClient.mjs +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/lib/msal-browser.cjs +18564 -61
- package/lib/msal-browser.cjs.map +1 -1
- package/lib/msal-browser.js +2828 -3394
- package/lib/msal-browser.js.map +1 -1
- package/lib/msal-browser.min.js +67 -66
- package/package.json +2 -2
- package/src/app/PublicClientApplication.ts +4 -3
- package/src/app/PublicClientNext.ts +7 -5
- package/src/cache/BrowserCacheManager.ts +22 -40
- package/src/cache/TokenCache.ts +5 -4
- package/src/controllers/ControllerFactory.ts +30 -49
- package/src/controllers/IController.ts +0 -6
- package/src/controllers/StandardController.ts +42 -46
- package/src/interaction_client/NativeInteractionClient.ts +4 -3
- package/src/interaction_client/PopupClient.ts +39 -60
- package/src/interaction_client/RedirectClient.ts +41 -46
- package/src/interaction_client/SilentAuthCodeClient.ts +1 -12
- package/src/interaction_client/SilentIframeClient.ts +2 -18
- package/src/interaction_client/SilentRefreshClient.ts +5 -19
- package/src/interaction_handler/InteractionHandler.ts +34 -104
- package/src/interaction_handler/RedirectHandler.ts +48 -22
- package/src/packageMetadata.ts +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/*! @azure/msal-browser v3.
|
|
1
|
+
/*! @azure/msal-browser v3.4.0 2023-10-30 */
|
|
2
2
|
'use strict';
|
|
3
|
-
import {
|
|
3
|
+
import { invokeAsync, PerformanceEvents, AuthError, UrlString, Constants, ProtocolUtils, ThrottlingUtils, ProtocolMode } from '@azure/msal-common';
|
|
4
4
|
import { StandardInteractionClient } from './StandardInteractionClient.mjs';
|
|
5
5
|
import { InteractionType, ApiId, TemporaryCacheKeys } from '../utils/BrowserConstants.mjs';
|
|
6
6
|
import { RedirectHandler } from '../interaction_handler/RedirectHandler.mjs';
|
|
@@ -25,9 +25,8 @@ class RedirectClient extends StandardInteractionClient {
|
|
|
25
25
|
* @param request
|
|
26
26
|
*/
|
|
27
27
|
async acquireToken(request) {
|
|
28
|
-
this.
|
|
29
|
-
|
|
30
|
-
this.browserStorage.updateCacheEntries(validRequest.state, validRequest.nonce, validRequest.authority, validRequest.loginHint || Constants.EMPTY_STRING, validRequest.account || null);
|
|
28
|
+
const validRequest = await invokeAsync(this.initializeAuthorizationRequest.bind(this), PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, this.logger, this.performanceClient, this.correlationId)(request, InteractionType.Redirect);
|
|
29
|
+
this.browserStorage.updateCacheEntries(validRequest.state, validRequest.nonce, validRequest.authority, validRequest.loginHint || "", validRequest.account || null);
|
|
31
30
|
const serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenRedirect);
|
|
32
31
|
const handleBackButton = (event) => {
|
|
33
32
|
// Clear temporary cache if the back button is clicked during the redirect flow.
|
|
@@ -39,14 +38,11 @@ class RedirectClient extends StandardInteractionClient {
|
|
|
39
38
|
};
|
|
40
39
|
try {
|
|
41
40
|
// Create auth code request and generate PKCE params
|
|
42
|
-
this.
|
|
43
|
-
const authCodeRequest = await this.initializeAuthorizationCodeRequest(validRequest);
|
|
41
|
+
const authCodeRequest = await invokeAsync(this.initializeAuthorizationCodeRequest.bind(this), PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, this.logger, this.performanceClient, this.correlationId)(validRequest);
|
|
44
42
|
// Initialize the client
|
|
45
|
-
this.
|
|
46
|
-
const authClient = await this.createAuthCodeClient(serverTelemetryManager, validRequest.authority, validRequest.azureCloudOptions);
|
|
47
|
-
this.logger.verbose("Auth code client created");
|
|
43
|
+
const authClient = await invokeAsync(this.createAuthCodeClient.bind(this), PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, this.logger, this.performanceClient, this.correlationId)(serverTelemetryManager, validRequest.authority, validRequest.azureCloudOptions);
|
|
48
44
|
// Create redirect interaction handler.
|
|
49
|
-
const interactionHandler = new RedirectHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.
|
|
45
|
+
const interactionHandler = new RedirectHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.performanceClient);
|
|
50
46
|
// Create acquire token url.
|
|
51
47
|
const navigateUrl = await authClient.getAuthCodeUrl({
|
|
52
48
|
...validRequest,
|
|
@@ -223,12 +219,10 @@ class RedirectClient extends StandardInteractionClient {
|
|
|
223
219
|
if (!currentAuthority) {
|
|
224
220
|
throw createBrowserAuthError(noCachedAuthorityError);
|
|
225
221
|
}
|
|
226
|
-
this.
|
|
227
|
-
const authClient = await this.createAuthCodeClient(serverTelemetryManager, currentAuthority);
|
|
228
|
-
this.logger.verbose("Auth code client created");
|
|
222
|
+
const authClient = await invokeAsync(this.createAuthCodeClient.bind(this), PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, this.logger, this.performanceClient, this.correlationId)(serverTelemetryManager, currentAuthority);
|
|
229
223
|
ThrottlingUtils.removeThrottle(this.browserStorage, this.config.auth.clientId, cachedRequest);
|
|
230
|
-
const interactionHandler = new RedirectHandler(authClient, this.browserStorage, cachedRequest, this.logger, this.
|
|
231
|
-
return await interactionHandler.handleCodeResponseFromHash(hash, state
|
|
224
|
+
const interactionHandler = new RedirectHandler(authClient, this.browserStorage, cachedRequest, this.logger, this.performanceClient);
|
|
225
|
+
return await interactionHandler.handleCodeResponseFromHash(hash, state);
|
|
232
226
|
}
|
|
233
227
|
/**
|
|
234
228
|
* Use to log out the current user, and redirect the user to the postLogoutRedirectUri.
|
|
@@ -248,9 +242,7 @@ class RedirectClient extends StandardInteractionClient {
|
|
|
248
242
|
timeout: this.config.system.redirectNavigationTimeout,
|
|
249
243
|
noHistory: false,
|
|
250
244
|
};
|
|
251
|
-
this.
|
|
252
|
-
const authClient = await this.createAuthCodeClient(serverTelemetryManager, logoutRequest && logoutRequest.authority);
|
|
253
|
-
this.logger.verbose("Auth code client created");
|
|
245
|
+
const authClient = await invokeAsync(this.createAuthCodeClient.bind(this), PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, this.logger, this.performanceClient, this.correlationId)(serverTelemetryManager, logoutRequest && logoutRequest.authority);
|
|
254
246
|
if (authClient.authority.protocolMode === ProtocolMode.OIDC) {
|
|
255
247
|
try {
|
|
256
248
|
authClient.authority.endSessionEndpoint;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RedirectClient.mjs","sources":["../../src/interaction_client/RedirectClient.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;AAKA;
|
|
1
|
+
{"version":3,"file":"RedirectClient.mjs","sources":["../../src/interaction_client/RedirectClient.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;AAKA;AAiBA;AAQA;AAOA;AAuCI,MAAA,cAAA,SAAA,yBAAA,CAAA;;;AAGG,QAAA,IAAA,CAAA,aAAA,GAAA,iBAAA,CAAA;KACe;AAwGlB;;;;;AAKG,QAAA,MAAA,YAAA,GAAA,MAAA,WAAA,CAAA,IAAA,CAAA,8BAAA,CAAA,IAAA,CAAA,IAAA,CAAA,EAAA,iBAAA,CAAA,uDAAA,EAAA,IAAA,CAAA,MAAA,EAAA,IAAA,CAAA,iBAAA,EAAA,IAAA,CAAA,aAAA,CAAA,CAAA,OAAA,EAAA,eAAA,CAAA,QAAA,CAAA,CAAA;QACwB,IAAA,CAAA,cACnB,CAAA,kBACL,CAAA,YAAQ,CAAA,KAAA,EAAA,YAA4B,CAAA,KAAA,EAAA,YAAA,CAAA,SAAA,EAAA,YAAA,CAAA,SAAA,IAAA,EAAA,EAAA,YAAA,CAAA,OAAA,IAAA,IAAA,CAAA,CAAA;AAkKvC,QAAA,MAAA,sBAAA,GAAA,IAAA,CAAA,gCAAA,CAAA,KAAA,CAAA,oBAAA,CAAA,CAAA;;;;AAIG,gBAAA,IAAA,CAAA,MAAA,CAAA,OAAA,CAAA,sEAAA,CAAA,CAAA;uDACoD,CAAA,YAAO,CAAA,KAAA,CAAA,CAAA;AA4B9D,gBAAA,IAAA,CAAA,YAAA,CAAA,SAAA,CAAA,SAAA,CAAA,oBAAA,EAAA,eAAA,CAAA,QAAA,CAAA,CAAA;;;;AAIG;AACa,YAAA,MAAA,eACA,GAAA,iBAEZ,CAAA,IAAA,CAAA,kCAA8C,CAAA,IAAA,CAAA,IAC/C,CAAO,EAAA,6EAAsB,EAAA,IAAA,CAAA,MAAA,EAAA,IAAA,CAAA,iBAAA,EAAA,IAAA,CAAA,aAAA,CAAA,CAAA,YAAA,CAAA,CAAA;AA4EhC;;;;AAIG;gDAC8C,CAAA,cAAa,CAAA;AA0H9D,gBAAA,GAAA,YAAA;;;AAGG,YAAA,MAAA,iBAAA,GAAA,IAAA,CAAA,oBAAA,CAAA,OAAA,CAAA,iBAAA,CAAA,CAAA;YACM,sBAAqB,CAAC,CAAA,qBAAmB,EAAA,iBAAe,CAAA,CAAA,CAAA,CAAA;AAOpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SilentAuthCodeClient.d.ts","sourceRoot":"","sources":["../../src/interaction_client/SilentAuthCodeClient.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,OAAO,EACP,MAAM,
|
|
1
|
+
{"version":3,"file":"SilentAuthCodeClient.d.ts","sourceRoot":"","sources":["../../src/interaction_client/SilentAuthCodeClient.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,OAAO,EACP,MAAM,EAGN,kBAAkB,EAGrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAKpE,OAAO,EAAmB,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAGxE,qBAAa,oBAAqB,SAAQ,yBAAyB;IAC/D,OAAO,CAAC,KAAK,CAAQ;gBAGjB,MAAM,EAAE,oBAAoB,EAC5B,WAAW,EAAE,mBAAmB,EAChC,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,iBAAiB,EACnC,KAAK,EAAE,KAAK,EACZ,iBAAiB,EAAE,kBAAkB,EACrC,oBAAoB,CAAC,EAAE,oBAAoB,EAC3C,aAAa,CAAC,EAAE,MAAM;IAgB1B;;;OAGG;IACG,YAAY,CACd,OAAO,EAAE,wBAAwB,GAClC,OAAO,CAAC,oBAAoB,CAAC;IA6EhC;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ1B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/*! @azure/msal-browser v3.
|
|
1
|
+
/*! @azure/msal-browser v3.4.0 2023-10-30 */
|
|
2
2
|
'use strict';
|
|
3
|
-
import { invokeAsync, PerformanceEvents,
|
|
3
|
+
import { invokeAsync, PerformanceEvents, AuthError } from '@azure/msal-common';
|
|
4
4
|
import { StandardInteractionClient } from './StandardInteractionClient.mjs';
|
|
5
5
|
import { createBrowserAuthError } from '../error/BrowserAuthError.mjs';
|
|
6
6
|
import { InteractionType } from '../utils/BrowserConstants.mjs';
|
|
@@ -28,7 +28,6 @@ class SilentAuthCodeClient extends StandardInteractionClient {
|
|
|
28
28
|
}
|
|
29
29
|
// Create silent request
|
|
30
30
|
const silentRequest = await invokeAsync(this.initializeAuthorizationRequest.bind(this), PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, this.logger, this.performanceClient, request.correlationId)(request, InteractionType.Silent);
|
|
31
|
-
this.browserStorage.updateCacheEntries(silentRequest.state, silentRequest.nonce, silentRequest.authority, silentRequest.loginHint || Constants.EMPTY_STRING, silentRequest.account || null);
|
|
32
31
|
const serverTelemetryManager = this.initializeServerTelemetryManager(this.apiId);
|
|
33
32
|
try {
|
|
34
33
|
// Create auth code request (PKCE not needed)
|
|
@@ -48,14 +47,13 @@ class SilentAuthCodeClient extends StandardInteractionClient {
|
|
|
48
47
|
msgraph_host: request.msGraphHost,
|
|
49
48
|
cloud_graph_host_name: request.cloudGraphHostName,
|
|
50
49
|
cloud_instance_host_name: request.cloudInstanceHostName,
|
|
51
|
-
}, silentRequest
|
|
50
|
+
}, silentRequest, false);
|
|
52
51
|
}
|
|
53
52
|
catch (e) {
|
|
54
53
|
if (e instanceof AuthError) {
|
|
55
54
|
e.setCorrelationId(this.correlationId);
|
|
56
55
|
serverTelemetryManager.cacheFailedRequest(e);
|
|
57
56
|
}
|
|
58
|
-
this.browserStorage.cleanRequestByState(silentRequest.state);
|
|
59
57
|
throw e;
|
|
60
58
|
}
|
|
61
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SilentAuthCodeClient.mjs","sources":["../../src/interaction_client/SilentAuthCodeClient.ts"],"sourcesContent":[null],"names":["BrowserAuthErrorCodes.authCodeRequired"],"mappings":";;;;;;;;;;AAKA;
|
|
1
|
+
{"version":3,"file":"SilentAuthCodeClient.mjs","sources":["../../src/interaction_client/SilentAuthCodeClient.ts"],"sourcesContent":[null],"names":["BrowserAuthErrorCodes.authCodeRequired"],"mappings":";;;;;;;;;;AAKA;AASA;AAEA;AACA;AAca,MAAA,oBAAA,kCAAsD,CAAA;IAC/D,kBAAqB,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA;AAGjB,QAAA,KAAA,CAAA,MAAA,EAAM,WAAsB,EAAA,aACjB,EAAA,MAAA,EAAA,8BACX,EAAA,iBACM,EAAA,oBACN,EAAA,aAA0B,CAAA,CAAA;AAqB9B,QAAA,IAAA,CAAA,KAAA,GAAA,KAAA,CAAA;;;AAGG;;AAgFH;;AAEG;AACH,QAAA,IAAU,CAAA,OAAA,CAAO,IAAC,EAAK;AAQ1B,YAAA,MAAA,sBAAA,CAAAA,gBAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @azure/msal-browser v3.
|
|
1
|
+
/*! @azure/msal-browser v3.4.0 2023-10-30 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { StandardInteractionClient } from './StandardInteractionClient.mjs';
|
|
4
4
|
import { PerformanceEvents, invokeAsync, SilentFlowClient } from '@azure/msal-common';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SilentIframeClient.d.ts","sourceRoot":"","sources":["../../src/interaction_client/SilentIframeClient.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,OAAO,EACP,MAAM,EAGN,uBAAuB,
|
|
1
|
+
{"version":3,"file":"SilentIframeClient.d.ts","sourceRoot":"","sources":["../../src/interaction_client/SilentIframeClient.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,OAAO,EACP,MAAM,EAGN,uBAAuB,EAKvB,kBAAkB,EAGrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAKpE,OAAO,EAAmB,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAKnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AAEnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAIxE,qBAAa,kBAAmB,SAAQ,yBAAyB;IAC7D,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IACvB,SAAS,CAAC,aAAa,EAAE,mBAAmB,CAAC;gBAGzC,MAAM,EAAE,oBAAoB,EAC5B,WAAW,EAAE,mBAAmB,EAChC,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,iBAAiB,EACnC,KAAK,EAAE,KAAK,EACZ,iBAAiB,EAAE,kBAAkB,EACrC,iBAAiB,EAAE,mBAAmB,EACtC,oBAAoB,CAAC,EAAE,oBAAoB,EAC3C,aAAa,CAAC,EAAE,MAAM;IAiB1B;;;OAGG;IACG,YAAY,CACd,OAAO,EAAE,gBAAgB,GAC1B,OAAO,CAAC,oBAAoB,CAAC;IA6EhC;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IASvB;;;;;OAKG;cACa,iBAAiB,CAC7B,UAAU,EAAE,uBAAuB,EACnC,aAAa,EAAE,uBAAuB,GACvC,OAAO,CAAC,oBAAoB,CAAC;CA+InC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/*! @azure/msal-browser v3.
|
|
1
|
+
/*! @azure/msal-browser v3.4.0 2023-10-30 */
|
|
2
2
|
'use strict';
|
|
3
|
-
import { PerformanceEvents, PromptValue, invokeAsync,
|
|
3
|
+
import { PerformanceEvents, PromptValue, invokeAsync, AuthError, UrlString, ProtocolUtils } from '@azure/msal-common';
|
|
4
4
|
import { StandardInteractionClient } from './StandardInteractionClient.mjs';
|
|
5
5
|
import { createBrowserAuthError } from '../error/BrowserAuthError.mjs';
|
|
6
6
|
import { InteractionType } from '../utils/BrowserConstants.mjs';
|
|
@@ -45,7 +45,6 @@ class SilentIframeClient extends StandardInteractionClient {
|
|
|
45
45
|
prompt: request.prompt || PromptValue.NONE,
|
|
46
46
|
}, InteractionType.Silent);
|
|
47
47
|
preconnect(silentRequest.authority);
|
|
48
|
-
this.browserStorage.updateCacheEntries(silentRequest.state, silentRequest.nonce, silentRequest.authority, silentRequest.loginHint || Constants.EMPTY_STRING, silentRequest.account || null);
|
|
49
48
|
const serverTelemetryManager = this.initializeServerTelemetryManager(this.apiId);
|
|
50
49
|
try {
|
|
51
50
|
// Initialize the client
|
|
@@ -57,7 +56,6 @@ class SilentIframeClient extends StandardInteractionClient {
|
|
|
57
56
|
e.setCorrelationId(this.correlationId);
|
|
58
57
|
serverTelemetryManager.cacheFailedRequest(e);
|
|
59
58
|
}
|
|
60
|
-
this.browserStorage.cleanRequestByState(silentRequest.state);
|
|
61
59
|
throw e;
|
|
62
60
|
}
|
|
63
61
|
}
|
|
@@ -102,24 +100,21 @@ class SilentIframeClient extends StandardInteractionClient {
|
|
|
102
100
|
}
|
|
103
101
|
// Deserialize hash fragment response parameters.
|
|
104
102
|
const serverParams = UrlString.getDeserializedHash(hash);
|
|
105
|
-
const state = this.validateAndExtractStateFromHash(serverParams, InteractionType.Silent, correlationId);
|
|
106
103
|
if (serverParams.accountId) {
|
|
107
104
|
this.logger.verbose("Account id found in hash, calling WAM for token");
|
|
108
105
|
if (!this.nativeMessageHandler) {
|
|
109
106
|
throw createBrowserAuthError(nativeConnectionNotEstablished);
|
|
110
107
|
}
|
|
111
108
|
const nativeInteractionClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.apiId, this.performanceClient, this.nativeMessageHandler, serverParams.accountId, this.browserStorage, correlationId);
|
|
112
|
-
const { userRequestState } = ProtocolUtils.parseRequestState(this.browserCrypto, state);
|
|
109
|
+
const { userRequestState } = ProtocolUtils.parseRequestState(this.browserCrypto, silentRequest.state);
|
|
113
110
|
return invokeAsync(nativeInteractionClient.acquireToken.bind(nativeInteractionClient), PerformanceEvents.NativeInteractionClientAcquireToken, this.logger, this.performanceClient, correlationId)({
|
|
114
111
|
...silentRequest,
|
|
115
112
|
state: userRequestState,
|
|
116
113
|
prompt: silentRequest.prompt || PromptValue.NONE,
|
|
117
|
-
}).finally(() => {
|
|
118
|
-
this.browserStorage.cleanRequestByState(state);
|
|
119
114
|
});
|
|
120
115
|
}
|
|
121
116
|
// Handle response from hash string
|
|
122
|
-
return invokeAsync(interactionHandler.handleCodeResponseFromHash.bind(interactionHandler), PerformanceEvents.HandleCodeResponseFromHash, this.logger, this.performanceClient, correlationId)(hash,
|
|
117
|
+
return invokeAsync(interactionHandler.handleCodeResponseFromHash.bind(interactionHandler), PerformanceEvents.HandleCodeResponseFromHash, this.logger, this.performanceClient, correlationId)(hash, silentRequest);
|
|
123
118
|
}
|
|
124
119
|
}
|
|
125
120
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SilentIframeClient.mjs","sources":["../../src/interaction_client/SilentIframeClient.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;AAKA;
|
|
1
|
+
{"version":3,"file":"SilentIframeClient.mjs","sources":["../../src/interaction_client/SilentIframeClient.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;AAKA;AAcA;AACA;AACA;AAsBI,MAAS,kBAAgB,SAAA,yBAAoB,CAAA;AAGzC,IAAA,WAAA,CAAA,MAAM,EAAE,WAAoB,EAAA,qBACf,EAAA,YAAA,EAAA,gBACA,EAAA,wBACC,EAAA,iBACA,EAAA,oBACE,EAAA;AAsBpB,QAAA,KAAA,CAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,aAAA,CAAA,CAAA;;;AAGG,KAAA;;AAgFH;;AAEG;AACH,IAAA,MAAM,YAAY,CAAA,OAAK,EAAA;AASvB,QAAA,IAAA,CAAA,iBAAA,CAAA,mBAAA,CAAA,iBAAA,CAAA,8BAAA,EAAA,OAAA,CAAA,aAAA,CAAA,CAAA;;;;;AAKG,YAAA,IAAA,CAAA,MAAA,CAAA,OAAA,CAAA,qGAAA,CAAA,CAAA;AACa,SAAA;AAkJnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SilentRefreshClient.d.ts","sourceRoot":"","sources":["../../src/interaction_client/SilentRefreshClient.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EACH,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAElB,iBAAiB,EAGpB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,qBAAa,mBAAoB,SAAQ,yBAAyB;IAC9D;;;OAGG;IACG,YAAY,CACd,OAAO,EAAE,uBAAuB,GACjC,OAAO,CAAC,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"SilentRefreshClient.d.ts","sourceRoot":"","sources":["../../src/interaction_client/SilentRefreshClient.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EACH,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAElB,iBAAiB,EAGpB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,qBAAa,mBAAoB,SAAQ,yBAAyB;IAC9D;;;OAGG;IACG,YAAY,CACd,OAAO,EAAE,uBAAuB,GACjC,OAAO,CAAC,oBAAoB,CAAC;IA0ChC;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IASvB;;;;OAIG;cACa,wBAAwB,CACpC,sBAAsB,EAAE,sBAAsB,EAC9C,YAAY,CAAC,EAAE,MAAM,EACrB,iBAAiB,CAAC,EAAE,iBAAiB,GACtC,OAAO,CAAC,kBAAkB,CAAC;CAWjC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @azure/msal-browser v3.
|
|
1
|
+
/*! @azure/msal-browser v3.4.0 2023-10-30 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { StandardInteractionClient } from './StandardInteractionClient.mjs';
|
|
4
4
|
import { PerformanceEvents, invokeAsync, RefreshTokenClient } from '@azure/msal-common';
|
|
@@ -24,18 +24,8 @@ class SilentRefreshClient extends StandardInteractionClient {
|
|
|
24
24
|
};
|
|
25
25
|
const serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow);
|
|
26
26
|
const refreshTokenClient = await this.createRefreshTokenClient(serverTelemetryManager, silentRequest.authority, silentRequest.azureCloudOptions);
|
|
27
|
-
this.logger.verbose("Refresh token client created");
|
|
28
27
|
// Send request to renew token. Auth module will throw errors if token cannot be renewed.
|
|
29
|
-
return invokeAsync(refreshTokenClient.acquireTokenByRefreshToken.bind(refreshTokenClient), PerformanceEvents.RefreshTokenClientAcquireTokenByRefreshToken, this.logger, this.performanceClient, request.correlationId)(silentRequest)
|
|
30
|
-
.then((result) => result)
|
|
31
|
-
.then((result) => {
|
|
32
|
-
this.performanceClient.addFields({
|
|
33
|
-
fromCache: result.fromCache,
|
|
34
|
-
requestId: result.requestId,
|
|
35
|
-
}, request.correlationId);
|
|
36
|
-
return result;
|
|
37
|
-
})
|
|
38
|
-
.catch((e) => {
|
|
28
|
+
return invokeAsync(refreshTokenClient.acquireTokenByRefreshToken.bind(refreshTokenClient), PerformanceEvents.RefreshTokenClientAcquireTokenByRefreshToken, this.logger, this.performanceClient, request.correlationId)(silentRequest).catch((e) => {
|
|
39
29
|
e.setCorrelationId(this.correlationId);
|
|
40
30
|
serverTelemetryManager.cacheFailedRequest(e);
|
|
41
31
|
throw e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SilentRefreshClient.mjs","sources":["../../src/interaction_client/SilentRefreshClient.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;AAKA;AACA;AAcA;AAEA;AAKsB,MAAA,mBACL,SAAA;
|
|
1
|
+
{"version":3,"file":"SilentRefreshClient.mjs","sources":["../../src/interaction_client/SilentRefreshClient.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;AAKA;AACA;AAcA;AAEA;AAKsB,MAAA,mBACL,SAAA;AA2Cb;;AAEG;AACH;AASA,IAAA,MAAA,YAAA,CAAA,OAAA,EAAA;;;;AAIG,YAAA,GAAA,OAAA;AACa,YAAA,GAAA,WAAA;AAenB,SAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @azure/msal-browser v3.
|
|
1
|
+
/*! @azure/msal-browser v3.4.0 2023-10-30 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { PerformanceEvents, invokeAsync, Constants, UrlString, AuthorizationCodeClient, Authority, AuthorityFactory, ProtocolUtils } from '@azure/msal-common';
|
|
4
4
|
import { BaseInteractionClient } from './BaseInteractionClient.mjs';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { AuthorizationCodePayload, CommonAuthorizationCodeRequest, AuthorizationCodeClient,
|
|
1
|
+
import { AuthorizationCodePayload, CommonAuthorizationCodeRequest, AuthorizationCodeClient, CcsCredential, Logger, IPerformanceClient } from "@azure/msal-common";
|
|
2
2
|
import { BrowserCacheManager } from "../cache/BrowserCacheManager";
|
|
3
3
|
import { AuthenticationResult } from "../response/AuthenticationResult";
|
|
4
|
-
|
|
4
|
+
import { AuthorizationUrlRequest } from "../request/AuthorizationUrlRequest";
|
|
5
5
|
/**
|
|
6
6
|
* Abstract class which defines operations for a browser interaction handling class.
|
|
7
7
|
*/
|
|
@@ -16,7 +16,7 @@ export declare class InteractionHandler {
|
|
|
16
16
|
* Function to handle response parameters from hash.
|
|
17
17
|
* @param locationHash
|
|
18
18
|
*/
|
|
19
|
-
handleCodeResponseFromHash(locationHash: string,
|
|
19
|
+
handleCodeResponseFromHash(locationHash: string, request: AuthorizationUrlRequest): Promise<AuthenticationResult>;
|
|
20
20
|
/**
|
|
21
21
|
* Process auth code response from AAD
|
|
22
22
|
* @param authCodeResponse
|
|
@@ -25,17 +25,10 @@ export declare class InteractionHandler {
|
|
|
25
25
|
* @param networkModule
|
|
26
26
|
* @returns
|
|
27
27
|
*/
|
|
28
|
-
handleCodeResponseFromServer(authCodeResponse: AuthorizationCodePayload,
|
|
28
|
+
handleCodeResponseFromServer(authCodeResponse: AuthorizationCodePayload, request: AuthorizationUrlRequest, validateNonce?: boolean): Promise<AuthenticationResult>;
|
|
29
29
|
/**
|
|
30
|
-
*
|
|
31
|
-
* @param cloudInstanceHostname
|
|
32
|
-
* @param authority
|
|
33
|
-
* @param networkModule
|
|
34
|
-
*/
|
|
35
|
-
protected updateTokenEndpointAuthority(cloudInstanceHostname: string, authority: Authority, networkModule: INetworkModule): Promise<void>;
|
|
36
|
-
/**
|
|
37
|
-
* Looks up ccs creds in the cache
|
|
30
|
+
* Build ccs creds if available
|
|
38
31
|
*/
|
|
39
|
-
protected
|
|
32
|
+
protected createCcsCredentials(request: AuthorizationUrlRequest): CcsCredential | null;
|
|
40
33
|
}
|
|
41
34
|
//# sourceMappingURL=InteractionHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InteractionHandler.d.ts","sourceRoot":"","sources":["../../src/interaction_handler/InteractionHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,wBAAwB,EACxB,8BAA8B,EAC9B,uBAAuB,
|
|
1
|
+
{"version":3,"file":"InteractionHandler.d.ts","sourceRoot":"","sources":["../../src/interaction_handler/InteractionHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,wBAAwB,EACxB,8BAA8B,EAC9B,uBAAuB,EACvB,aAAa,EACb,MAAM,EAEN,kBAAkB,EAIrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAKnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E;;GAEG;AACH,qBAAa,kBAAkB;IAC3B,SAAS,CAAC,UAAU,EAAE,uBAAuB,CAAC;IAC9C,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC;IAC9C,SAAS,CAAC,eAAe,EAAE,8BAA8B,CAAC;IAC1D,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;gBAG5C,cAAc,EAAE,uBAAuB,EACvC,WAAW,EAAE,mBAAmB,EAChC,eAAe,EAAE,8BAA8B,EAC/C,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,kBAAkB;IASzC;;;OAGG;IACG,0BAA0B,CAC5B,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,uBAAuB,GACjC,OAAO,CAAC,oBAAoB,CAAC;IAuChC;;;;;;;OAOG;IACG,4BAA4B,CAC9B,gBAAgB,EAAE,wBAAwB,EAC1C,OAAO,EAAE,uBAAuB,EAChC,aAAa,GAAE,OAAc,GAC9B,OAAO,CAAC,oBAAoB,CAAC;IAoDhC;;OAEG;IACH,SAAS,CAAC,oBAAoB,CAC1B,OAAO,EAAE,uBAAuB,GACjC,aAAa,GAAG,IAAI;CAe1B"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
/*! @azure/msal-browser v3.
|
|
1
|
+
/*! @azure/msal-browser v3.4.0 2023-10-30 */
|
|
2
2
|
'use strict';
|
|
3
|
-
import { PerformanceEvents,
|
|
3
|
+
import { PerformanceEvents, ServerError, invokeAsync, CcsCredentialType } from '@azure/msal-common';
|
|
4
4
|
import { createBrowserAuthError } from '../error/BrowserAuthError.mjs';
|
|
5
|
-
import { TemporaryCacheKeys } from '../utils/BrowserConstants.mjs';
|
|
6
5
|
import { hashEmptyError, userCancelled } from '../error/BrowserAuthErrorCodes.mjs';
|
|
7
6
|
|
|
8
7
|
/*
|
|
@@ -24,21 +23,15 @@ class InteractionHandler {
|
|
|
24
23
|
* Function to handle response parameters from hash.
|
|
25
24
|
* @param locationHash
|
|
26
25
|
*/
|
|
27
|
-
async handleCodeResponseFromHash(locationHash,
|
|
28
|
-
this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromHash,
|
|
26
|
+
async handleCodeResponseFromHash(locationHash, request) {
|
|
27
|
+
this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromHash, request.correlationId);
|
|
29
28
|
// Check that location hash isn't empty.
|
|
30
29
|
if (!locationHash) {
|
|
31
30
|
throw createBrowserAuthError(hashEmptyError);
|
|
32
31
|
}
|
|
33
|
-
// Handle code response.
|
|
34
|
-
const stateKey = this.browserStorage.generateStateKey(state);
|
|
35
|
-
const requestState = this.browserStorage.getTemporaryCache(stateKey);
|
|
36
|
-
if (!requestState) {
|
|
37
|
-
throw createClientAuthError(ClientAuthErrorCodes.stateNotFound, "Cached State");
|
|
38
|
-
}
|
|
39
32
|
let authCodeResponse;
|
|
40
33
|
try {
|
|
41
|
-
authCodeResponse = this.authModule.handleFragmentResponse(locationHash,
|
|
34
|
+
authCodeResponse = this.authModule.handleFragmentResponse(locationHash, request.state);
|
|
42
35
|
}
|
|
43
36
|
catch (e) {
|
|
44
37
|
if (e instanceof ServerError &&
|
|
@@ -50,7 +43,7 @@ class InteractionHandler {
|
|
|
50
43
|
throw e;
|
|
51
44
|
}
|
|
52
45
|
}
|
|
53
|
-
return invokeAsync(this.handleCodeResponseFromServer.bind(this), PerformanceEvents.HandleCodeResponseFromServer, this.logger, this.performanceClient,
|
|
46
|
+
return invokeAsync(this.handleCodeResponseFromServer.bind(this), PerformanceEvents.HandleCodeResponseFromServer, this.logger, this.performanceClient, request.correlationId)(authCodeResponse, request);
|
|
54
47
|
}
|
|
55
48
|
/**
|
|
56
49
|
* Process auth code response from AAD
|
|
@@ -60,70 +53,50 @@ class InteractionHandler {
|
|
|
60
53
|
* @param networkModule
|
|
61
54
|
* @returns
|
|
62
55
|
*/
|
|
63
|
-
async handleCodeResponseFromServer(authCodeResponse,
|
|
64
|
-
this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromServer,
|
|
56
|
+
async handleCodeResponseFromServer(authCodeResponse, request, validateNonce = true) {
|
|
57
|
+
this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromServer, request.correlationId);
|
|
65
58
|
this.logger.trace("InteractionHandler.handleCodeResponseFromServer called");
|
|
66
|
-
// Handle code response.
|
|
67
|
-
const stateKey = this.browserStorage.generateStateKey(state);
|
|
68
|
-
const requestState = this.browserStorage.getTemporaryCache(stateKey);
|
|
69
|
-
if (!requestState) {
|
|
70
|
-
throw createClientAuthError(ClientAuthErrorCodes.stateNotFound, "Cached State");
|
|
71
|
-
}
|
|
72
|
-
// Get cached items
|
|
73
|
-
const nonceKey = this.browserStorage.generateNonceKey(requestState);
|
|
74
|
-
const cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);
|
|
75
59
|
// Assign code to request
|
|
76
60
|
this.authCodeRequest.code = authCodeResponse.code;
|
|
77
61
|
// Check for new cloud instance
|
|
78
62
|
if (authCodeResponse.cloud_instance_host_name) {
|
|
79
|
-
await invokeAsync(this.
|
|
63
|
+
await invokeAsync(this.authModule.updateAuthority.bind(this.authModule), PerformanceEvents.UpdateTokenEndpointAuthority, this.logger, this.performanceClient, request.correlationId)(authCodeResponse.cloud_instance_host_name, request.correlationId);
|
|
80
64
|
}
|
|
81
65
|
// Nonce validation not needed when redirect not involved (e.g. hybrid spa, renewing token via rt)
|
|
82
66
|
if (validateNonce) {
|
|
83
|
-
|
|
67
|
+
// TODO: Assigning "response nonce" to "request nonce" is confusing. Refactor the function doing validation to accept request nonce directly
|
|
68
|
+
authCodeResponse.nonce = request.nonce || undefined;
|
|
84
69
|
}
|
|
85
|
-
authCodeResponse.state =
|
|
70
|
+
authCodeResponse.state = request.state;
|
|
86
71
|
// Add CCS parameters if available
|
|
87
72
|
if (authCodeResponse.client_info) {
|
|
88
73
|
this.authCodeRequest.clientInfo = authCodeResponse.client_info;
|
|
89
74
|
}
|
|
90
75
|
else {
|
|
91
|
-
const
|
|
92
|
-
if (
|
|
93
|
-
this.authCodeRequest.ccsCredential =
|
|
76
|
+
const ccsCred = this.createCcsCredentials(request);
|
|
77
|
+
if (ccsCred) {
|
|
78
|
+
this.authCodeRequest.ccsCredential = ccsCred;
|
|
94
79
|
}
|
|
95
80
|
}
|
|
96
81
|
// Acquire token with retrieved code.
|
|
97
|
-
const tokenResponse = (await invokeAsync(this.authModule.acquireToken.bind(this.authModule), PerformanceEvents.AuthClientAcquireToken, this.logger, this.performanceClient,
|
|
98
|
-
this.browserStorage.cleanRequestByState(state);
|
|
82
|
+
const tokenResponse = (await invokeAsync(this.authModule.acquireToken.bind(this.authModule), PerformanceEvents.AuthClientAcquireToken, this.logger, this.performanceClient, request.correlationId)(this.authCodeRequest, authCodeResponse));
|
|
99
83
|
return tokenResponse;
|
|
100
84
|
}
|
|
101
85
|
/**
|
|
102
|
-
*
|
|
103
|
-
* @param cloudInstanceHostname
|
|
104
|
-
* @param authority
|
|
105
|
-
* @param networkModule
|
|
106
|
-
*/
|
|
107
|
-
async updateTokenEndpointAuthority(cloudInstanceHostname, authority, networkModule) {
|
|
108
|
-
this.performanceClient.addQueueMeasurement(PerformanceEvents.UpdateTokenEndpointAuthority, this.authCodeRequest.correlationId);
|
|
109
|
-
const cloudInstanceAuthorityUri = `https://${cloudInstanceHostname}/${authority.tenant}/`;
|
|
110
|
-
const cloudInstanceAuthority = await AuthorityFactory.createDiscoveredInstance(cloudInstanceAuthorityUri, networkModule, this.browserStorage, authority.options, this.logger, this.performanceClient, this.authCodeRequest.correlationId);
|
|
111
|
-
this.authModule.updateAuthority(cloudInstanceAuthority);
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Looks up ccs creds in the cache
|
|
86
|
+
* Build ccs creds if available
|
|
115
87
|
*/
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
88
|
+
createCcsCredentials(request) {
|
|
89
|
+
if (request.account) {
|
|
90
|
+
return {
|
|
91
|
+
credential: request.account.homeAccountId,
|
|
92
|
+
type: CcsCredentialType.HOME_ACCOUNT_ID,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
else if (request.loginHint) {
|
|
96
|
+
return {
|
|
97
|
+
credential: request.loginHint,
|
|
98
|
+
type: CcsCredentialType.UPN,
|
|
99
|
+
};
|
|
127
100
|
}
|
|
128
101
|
return null;
|
|
129
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InteractionHandler.mjs","sources":["../../src/interaction_handler/InteractionHandler.ts"],"sourcesContent":[null],"names":[
|
|
1
|
+
{"version":3,"file":"InteractionHandler.mjs","sources":["../../src/interaction_handler/InteractionHandler.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAKA;AAaA;AAKA;AACA;AAIG;AACH;AACI;AACA,MAAS,kBAAiB,CAAA;AAC1B,IAAA,WAAU,CAAA,cAAiB,EAAA,WAAA,EAAA,eAAA,EAA+B,MAAA,EAAA,iBAAA,EAAA;AAC1D,QAAA,IAAA,CAAS,UAAS,GAAA,cAAO,CAAA;AACzB,QAAA,IAAA,CAAS,cAAC,GAAA,WAAmB,CAAA;AAGzB,QAAA,IAAA,CAAA,eAAA,kBAAuC,CAAA;AAa3C,QAAA,IAAA,CAAA,MAAA,GAAA,MAAA,CAAA;;;AAGG;AACG;AA0CN;;;;;;;AAOG,SAAA;AACG,QAAA,IAAA,gBAAA,CAAA;AAwDN,QAAA,IAAA;;AAEG,SAAA;QACM;AAiBZ,YAAA,IAAA,CAAA,YAAA,WAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
import { AuthorizationCodeClient, CommonAuthorizationCodeRequest,
|
|
1
|
+
import { AuthorizationCodeClient, CommonAuthorizationCodeRequest, Logger, IPerformanceClient, CcsCredential } from "@azure/msal-common";
|
|
2
2
|
import { BrowserCacheManager } from "../cache/BrowserCacheManager";
|
|
3
|
-
import { InteractionHandler, InteractionParams } from "./InteractionHandler";
|
|
4
3
|
import { INavigationClient } from "../navigation/INavigationClient";
|
|
5
4
|
import { AuthenticationResult } from "../response/AuthenticationResult";
|
|
6
|
-
export type RedirectParams =
|
|
5
|
+
export type RedirectParams = {
|
|
7
6
|
navigationClient: INavigationClient;
|
|
8
7
|
redirectTimeout: number;
|
|
9
8
|
redirectStartPage: string;
|
|
10
9
|
onRedirectNavigate?: (url: string) => void | boolean;
|
|
11
10
|
};
|
|
12
|
-
export declare class RedirectHandler
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
export declare class RedirectHandler {
|
|
12
|
+
authModule: AuthorizationCodeClient;
|
|
13
|
+
browserStorage: BrowserCacheManager;
|
|
14
|
+
authCodeRequest: CommonAuthorizationCodeRequest;
|
|
15
|
+
logger: Logger;
|
|
16
|
+
performanceClient: IPerformanceClient;
|
|
17
|
+
constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, logger: Logger, performanceClient: IPerformanceClient);
|
|
15
18
|
/**
|
|
16
19
|
* Redirects window to given URL.
|
|
17
20
|
* @param urlNavigate
|
|
@@ -21,6 +24,10 @@ export declare class RedirectHandler extends InteractionHandler {
|
|
|
21
24
|
* Handle authorization code response in the window.
|
|
22
25
|
* @param hash
|
|
23
26
|
*/
|
|
24
|
-
handleCodeResponseFromHash(locationHash: string, state: string
|
|
27
|
+
handleCodeResponseFromHash(locationHash: string, state: string): Promise<AuthenticationResult>;
|
|
28
|
+
/**
|
|
29
|
+
* Looks up ccs creds in the cache
|
|
30
|
+
*/
|
|
31
|
+
protected checkCcsCredentials(): CcsCredential | null;
|
|
25
32
|
}
|
|
26
33
|
//# sourceMappingURL=RedirectHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RedirectHandler.d.ts","sourceRoot":"","sources":["../../src/interaction_handler/RedirectHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,uBAAuB,EACvB,8BAA8B,EAC9B,
|
|
1
|
+
{"version":3,"file":"RedirectHandler.d.ts","sourceRoot":"","sources":["../../src/interaction_handler/RedirectHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,uBAAuB,EACvB,8BAA8B,EAC9B,MAAM,EAEN,kBAAkB,EAGlB,aAAa,EAGhB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,MAAM,MAAM,cAAc,GAAG;IACzB,gBAAgB,EAAE,iBAAiB,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC;CACxD,CAAC;AAEF,qBAAa,eAAe;IACxB,UAAU,EAAE,uBAAuB,CAAC;IACpC,cAAc,EAAE,mBAAmB,CAAC;IACpC,eAAe,EAAE,8BAA8B,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,kBAAkB,CAAC;gBAGlC,cAAc,EAAE,uBAAuB,EACvC,WAAW,EAAE,mBAAmB,EAChC,eAAe,EAAE,8BAA8B,EAC/C,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,kBAAkB;IASzC;;;OAGG;IACG,mBAAmB,CACrB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IA6EhB;;;OAGG;IACG,0BAA0B,CAC5B,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,GACd,OAAO,CAAC,oBAAoB,CAAC;IAqFhC;;OAEG;IACH,SAAS,CAAC,mBAAmB,IAAI,aAAa,GAAG,IAAI;CAoBxD"}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
/*! @azure/msal-browser v3.
|
|
1
|
+
/*! @azure/msal-browser v3.4.0 2023-10-30 */
|
|
2
2
|
'use strict';
|
|
3
|
-
import { createClientAuthError, ClientAuthErrorCodes, ServerError } from '@azure/msal-common';
|
|
3
|
+
import { createClientAuthError, ClientAuthErrorCodes, ServerError, invokeAsync, PerformanceEvents } from '@azure/msal-common';
|
|
4
4
|
import { createBrowserAuthError } from '../error/BrowserAuthError.mjs';
|
|
5
5
|
import { TemporaryCacheKeys, ApiId } from '../utils/BrowserConstants.mjs';
|
|
6
|
-
import { InteractionHandler } from './InteractionHandler.mjs';
|
|
7
6
|
import { emptyNavigateUri, hashEmptyError, userCancelled } from '../error/BrowserAuthErrorCodes.mjs';
|
|
8
7
|
|
|
9
8
|
/*
|
|
10
9
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
11
10
|
* Licensed under the MIT License.
|
|
12
11
|
*/
|
|
13
|
-
class RedirectHandler
|
|
14
|
-
constructor(authCodeModule, storageImpl, authCodeRequest, logger,
|
|
15
|
-
|
|
16
|
-
this.
|
|
12
|
+
class RedirectHandler {
|
|
13
|
+
constructor(authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) {
|
|
14
|
+
this.authModule = authCodeModule;
|
|
15
|
+
this.browserStorage = storageImpl;
|
|
16
|
+
this.authCodeRequest = authCodeRequest;
|
|
17
|
+
this.logger = logger;
|
|
18
|
+
this.performanceClient = performanceClient;
|
|
17
19
|
}
|
|
18
20
|
/**
|
|
19
21
|
* Redirects window to given URL.
|
|
@@ -69,7 +71,7 @@ class RedirectHandler extends InteractionHandler {
|
|
|
69
71
|
* Handle authorization code response in the window.
|
|
70
72
|
* @param hash
|
|
71
73
|
*/
|
|
72
|
-
async handleCodeResponseFromHash(locationHash, state
|
|
74
|
+
async handleCodeResponseFromHash(locationHash, state) {
|
|
73
75
|
this.logger.verbose("RedirectHandler.handleCodeResponse called");
|
|
74
76
|
// Check that location hash isn't empty.
|
|
75
77
|
if (!locationHash) {
|
|
@@ -104,7 +106,7 @@ class RedirectHandler extends InteractionHandler {
|
|
|
104
106
|
this.authCodeRequest.code = authCodeResponse.code;
|
|
105
107
|
// Check for new cloud instance
|
|
106
108
|
if (authCodeResponse.cloud_instance_host_name) {
|
|
107
|
-
await this.
|
|
109
|
+
await invokeAsync(this.authModule.updateAuthority.bind(this.authModule), PerformanceEvents.UpdateTokenEndpointAuthority, this.logger, this.performanceClient, this.authCodeRequest.correlationId)(authCodeResponse.cloud_instance_host_name, this.authCodeRequest.correlationId);
|
|
108
110
|
}
|
|
109
111
|
authCodeResponse.nonce = cachedNonce || undefined;
|
|
110
112
|
authCodeResponse.state = requestState;
|
|
@@ -123,6 +125,23 @@ class RedirectHandler extends InteractionHandler {
|
|
|
123
125
|
this.browserStorage.cleanRequestByState(state);
|
|
124
126
|
return tokenResponse;
|
|
125
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Looks up ccs creds in the cache
|
|
130
|
+
*/
|
|
131
|
+
checkCcsCredentials() {
|
|
132
|
+
// Look up ccs credential in temp cache
|
|
133
|
+
const cachedCcsCred = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, true);
|
|
134
|
+
if (cachedCcsCred) {
|
|
135
|
+
try {
|
|
136
|
+
return JSON.parse(cachedCcsCred);
|
|
137
|
+
}
|
|
138
|
+
catch (e) {
|
|
139
|
+
this.authModule.logger.error("Cache credential could not be parsed");
|
|
140
|
+
this.authModule.logger.errorPii(`Cache credential could not be parsed: ${cachedCcsCred}`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
126
145
|
}
|
|
127
146
|
|
|
128
147
|
export { RedirectHandler };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RedirectHandler.mjs","sources":["../../src/interaction_handler/RedirectHandler.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RedirectHandler.mjs","sources":["../../src/interaction_handler/RedirectHandler.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAKA;AAiBA;AACA;AAEA;AAKqB,MAAA,gBAAQ;IACzB,WAAkB,CAAA,cAAO,aAAa,EAAA,eAAe,EAAA,MAAA,EAAA,iBAAA,EAAA;QACvD,IAAA,CAAA,UAAA,GAAA,cAAA,CAAA;AAEF,QAAA,IAAA,CAAA,cAA4B,GAAA,WAAA,CAAA;QACd,IAAA,CAAA,iCAA0B,CAAA;QACtB,IAAA,CAAA,MAAA;QACC,IAAA,CAAA,sCAAgC;KACzC;;AAIF;AAaJ;;;AAGG,QAAA,IAAA,CAAA,MAAA,CAAA,OAAA,CAAA,4CAAA,CAAA,CAAA;AACG;AAgFN,QAAA,IAAA,UAAA,EAAA;;;AAGG,gBAAA,IAAA,CAAA,MAAA,CAAA,OAAA,CAAA,gFAAA,CAAA,CAAA;AACG,gBAAA,IAAA,CAAA,cACF,CAAA,iBACA,CAAA,kBACD,CAAA,UAAQ,EAAA,MAAA,CAAA,iBAAqB,EAAA,IAAA,CAAA,CAAA;AAqFhC,aAAA;;AAEG,YAAA,IAAA,CAAA,cAAA,CAAA,iBAAA,CAAA,kBAAA,CAAA,cAAA,EAAA,IAAA,CAAA,eAAA,CAAA,aAAA,EAAA,IAAA,CAAA,CAAA;AACH,YAAA,IAAU,CAAA,cAAA,CAAA,gBAAuB,CAAA,IAAgB,CAAI,eAAA,CAAA,CAAA;AAoBxD,YAAA,IAAA,CAAA,MAAA,CAAA,OAAA,CAAA,CAAA,kDAAA,EAAA,UAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/naa/BridgeError.mjs
CHANGED
package/dist/naa/BridgeProxy.mjs
CHANGED