@azure/msal-browser 3.11.1 → 3.14.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.d.ts +2 -1
- package/dist/app/IPublicClientApplication.d.ts.map +1 -1
- package/dist/app/IPublicClientApplication.mjs +4 -1
- package/dist/app/IPublicClientApplication.mjs.map +1 -1
- package/dist/app/PublicClientApplication.mjs +1 -1
- package/dist/app/PublicClientNext.mjs +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 +10 -2
- package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
- package/dist/cache/BrowserCacheManager.mjs +31 -3
- package/dist/cache/BrowserCacheManager.mjs.map +1 -1
- package/dist/cache/BrowserStorage.mjs +1 -1
- package/dist/cache/DatabaseStorage.mjs +1 -1
- package/dist/cache/MemoryStorage.mjs +1 -1
- package/dist/cache/TokenCache.mjs +1 -1
- package/dist/config/Configuration.mjs +1 -1
- package/dist/controllers/ControllerFactory.d.ts.map +1 -1
- package/dist/controllers/ControllerFactory.mjs +2 -3
- package/dist/controllers/ControllerFactory.mjs.map +1 -1
- package/dist/controllers/NestedAppAuthController.d.ts.map +1 -1
- package/dist/controllers/NestedAppAuthController.mjs +3 -8
- package/dist/controllers/NestedAppAuthController.mjs.map +1 -1
- package/dist/controllers/StandardController.d.ts +14 -0
- package/dist/controllers/StandardController.d.ts.map +1 -1
- package/dist/controllers/StandardController.mjs +213 -117
- package/dist/controllers/StandardController.mjs.map +1 -1
- package/dist/controllers/UnknownOperatingContextController.d.ts.map +1 -1
- package/dist/controllers/UnknownOperatingContextController.mjs +2 -2
- package/dist/controllers/UnknownOperatingContextController.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/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.mjs +1 -1
- package/dist/interaction_client/PopupClient.mjs +1 -1
- package/dist/interaction_client/RedirectClient.d.ts +4 -5
- package/dist/interaction_client/RedirectClient.d.ts.map +1 -1
- package/dist/interaction_client/RedirectClient.mjs +5 -8
- 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.mjs +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/RedirectHandler.mjs +1 -1
- package/dist/interaction_handler/SilentHandler.mjs +2 -1
- package/dist/interaction_handler/SilentHandler.mjs.map +1 -1
- package/dist/naa/BridgeError.mjs +1 -1
- package/dist/naa/BridgeProxy.d.ts +0 -2
- package/dist/naa/BridgeProxy.d.ts.map +1 -1
- package/dist/naa/BridgeProxy.mjs +4 -10
- package/dist/naa/BridgeProxy.mjs.map +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.d.ts.map +1 -1
- package/dist/operatingcontext/TeamsAppOperatingContext.mjs +10 -11
- package/dist/operatingcontext/TeamsAppOperatingContext.mjs.map +1 -1
- package/dist/operatingcontext/UnknownOperatingContext.mjs +1 -1
- package/dist/packageMetadata.d.ts +1 -1
- package/dist/packageMetadata.mjs +2 -2
- package/dist/request/RequestHelpers.mjs +1 -1
- package/dist/response/ResponseHandler.mjs +1 -1
- 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.d.ts +3 -0
- package/dist/utils/BrowserUtils.d.ts.map +1 -1
- package/dist/utils/BrowserUtils.mjs +2 -1
- package/dist/utils/BrowserUtils.mjs.map +1 -1
- package/lib/msal-browser.cjs +486 -257
- package/lib/msal-browser.cjs.map +1 -1
- package/lib/msal-browser.js +486 -257
- package/lib/msal-browser.js.map +1 -1
- package/lib/msal-browser.min.js +68 -66
- package/package.json +4 -4
- package/src/app/IPublicClientApplication.ts +5 -0
- package/src/cache/BrowserCacheManager.ts +49 -1
- package/src/controllers/ControllerFactory.ts +1 -4
- package/src/controllers/NestedAppAuthController.ts +7 -6
- package/src/controllers/StandardController.ts +380 -263
- package/src/controllers/UnknownOperatingContextController.ts +3 -1
- package/src/interaction_client/RedirectClient.ts +6 -12
- package/src/interaction_handler/SilentHandler.ts +1 -0
- package/src/naa/BridgeProxy.ts +3 -12
- package/src/operatingcontext/TeamsAppOperatingContext.ts +14 -8
- package/src/packageMetadata.ts +1 -1
- package/src/utils/BrowserUtils.ts +4 -1
|
@@ -106,7 +106,9 @@ export class UnknownOperatingContextController implements IController {
|
|
|
106
106
|
this.config.auth.clientId,
|
|
107
107
|
this.config.cache,
|
|
108
108
|
this.browserCrypto,
|
|
109
|
-
this.logger
|
|
109
|
+
this.logger,
|
|
110
|
+
undefined,
|
|
111
|
+
this.performanceClient
|
|
110
112
|
)
|
|
111
113
|
: DEFAULT_BROWSER_CACHE_MANAGER(
|
|
112
114
|
this.config.auth.clientId,
|
|
@@ -21,6 +21,7 @@ import {
|
|
|
21
21
|
invokeAsync,
|
|
22
22
|
ServerResponseType,
|
|
23
23
|
UrlUtils,
|
|
24
|
+
InProgressPerformanceEvent,
|
|
24
25
|
} from "@azure/msal-common";
|
|
25
26
|
import { StandardInteractionClient } from "./StandardInteractionClient";
|
|
26
27
|
import {
|
|
@@ -190,14 +191,12 @@ export class RedirectClient extends StandardInteractionClient {
|
|
|
190
191
|
* Checks if navigateToLoginRequestUrl is set, and:
|
|
191
192
|
* - if true, performs logic to cache and navigate
|
|
192
193
|
* - if false, handles hash string and parses response
|
|
193
|
-
* @param hash {string
|
|
194
|
-
* @param
|
|
195
|
-
* @param correlationId {string?} correlation identifier
|
|
194
|
+
* @param hash {string} url hash
|
|
195
|
+
* @param parentMeasurement {InProgressPerformanceEvent} parent measurement
|
|
196
196
|
*/
|
|
197
197
|
async handleRedirectPromise(
|
|
198
|
-
hash
|
|
199
|
-
|
|
200
|
-
correlationId?: string
|
|
198
|
+
hash: string = "",
|
|
199
|
+
parentMeasurement: InProgressPerformanceEvent
|
|
201
200
|
): Promise<AuthenticationResult | null> {
|
|
202
201
|
const serverTelemetryManager = this.initializeServerTelemetryManager(
|
|
203
202
|
ApiId.handleRedirectPromise
|
|
@@ -220,12 +219,7 @@ export class RedirectClient extends StandardInteractionClient {
|
|
|
220
219
|
this.browserStorage.cleanRequestByInteractionType(
|
|
221
220
|
InteractionType.Redirect
|
|
222
221
|
);
|
|
223
|
-
|
|
224
|
-
performanceClient?.addFields(
|
|
225
|
-
{ errorCode: "no_server_response" },
|
|
226
|
-
correlationId
|
|
227
|
-
);
|
|
228
|
-
}
|
|
222
|
+
parentMeasurement.event.errorCode = "no_server_response";
|
|
229
223
|
return null;
|
|
230
224
|
}
|
|
231
225
|
|
|
@@ -195,6 +195,7 @@ function loadFrameSync(urlNavigate: string): HTMLIFrameElement {
|
|
|
195
195
|
function createHiddenIframe(): HTMLIFrameElement {
|
|
196
196
|
const authFrame = document.createElement("iframe");
|
|
197
197
|
|
|
198
|
+
authFrame.className = "msalSilentIframe";
|
|
198
199
|
authFrame.style.visibility = "hidden";
|
|
199
200
|
authFrame.style.position = "absolute";
|
|
200
201
|
authFrame.style.width = authFrame.style.height = "0";
|
package/src/naa/BridgeProxy.ts
CHANGED
|
@@ -15,6 +15,7 @@ import { BridgeStatusCode } from "./BridgeStatusCode";
|
|
|
15
15
|
import { IBridgeProxy } from "./IBridgeProxy";
|
|
16
16
|
import { InitContext } from "./InitContext";
|
|
17
17
|
import { TokenRequest } from "./TokenRequest";
|
|
18
|
+
import * as BrowserCrypto from "../crypto/BrowserCrypto";
|
|
18
19
|
|
|
19
20
|
declare global {
|
|
20
21
|
interface Window {
|
|
@@ -29,7 +30,6 @@ declare global {
|
|
|
29
30
|
*/
|
|
30
31
|
export class BridgeProxy implements IBridgeProxy {
|
|
31
32
|
static bridgeRequests: BridgeRequest[] = [];
|
|
32
|
-
static crypto: Crypto;
|
|
33
33
|
sdkName: string;
|
|
34
34
|
sdkVersion: string;
|
|
35
35
|
capabilities?: BridgeCapabilities;
|
|
@@ -47,13 +47,8 @@ export class BridgeProxy implements IBridgeProxy {
|
|
|
47
47
|
if (window.nestedAppAuthBridge === undefined) {
|
|
48
48
|
throw new Error("window.nestedAppAuthBridge is undefined");
|
|
49
49
|
}
|
|
50
|
-
if (window.crypto === undefined) {
|
|
51
|
-
throw new Error("window.crypto is undefined");
|
|
52
|
-
}
|
|
53
50
|
|
|
54
51
|
try {
|
|
55
|
-
BridgeProxy.crypto = window.crypto;
|
|
56
|
-
|
|
57
52
|
window.nestedAppAuthBridge.addEventListener(
|
|
58
53
|
"message",
|
|
59
54
|
(response: AuthBridgeResponse) => {
|
|
@@ -84,7 +79,7 @@ export class BridgeProxy implements IBridgeProxy {
|
|
|
84
79
|
const message: BridgeRequestEnvelope = {
|
|
85
80
|
messageType: "NestedAppAuthRequest",
|
|
86
81
|
method: "GetInitContext",
|
|
87
|
-
requestId:
|
|
82
|
+
requestId: BrowserCrypto.createNewGuid(),
|
|
88
83
|
};
|
|
89
84
|
const request: BridgeRequest = {
|
|
90
85
|
requestId: message.requestId,
|
|
@@ -108,10 +103,6 @@ export class BridgeProxy implements IBridgeProxy {
|
|
|
108
103
|
}
|
|
109
104
|
}
|
|
110
105
|
|
|
111
|
-
public static getRandomId(): string {
|
|
112
|
-
return BridgeProxy.crypto.randomUUID();
|
|
113
|
-
}
|
|
114
|
-
|
|
115
106
|
/**
|
|
116
107
|
* getTokenInteractive - Attempts to get a token interactively from the bridge
|
|
117
108
|
* @param request A token request
|
|
@@ -164,7 +155,7 @@ export class BridgeProxy implements IBridgeProxy {
|
|
|
164
155
|
const message: BridgeRequestEnvelope = {
|
|
165
156
|
messageType: "NestedAppAuthRequest",
|
|
166
157
|
method: method,
|
|
167
|
-
requestId:
|
|
158
|
+
requestId: BrowserCrypto.createNewGuid(),
|
|
168
159
|
...requestParams,
|
|
169
160
|
};
|
|
170
161
|
|
|
@@ -61,6 +61,11 @@ export class TeamsAppOperatingContext extends BaseOperatingContext {
|
|
|
61
61
|
* TODO: Add implementation to check for presence of inject Nested App Auth Bridge JavaScript interface
|
|
62
62
|
*
|
|
63
63
|
*/
|
|
64
|
+
|
|
65
|
+
if (!this.getConfig().auth.supportsNestedAppAuth) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
|
|
64
69
|
try {
|
|
65
70
|
if (typeof window !== "undefined") {
|
|
66
71
|
const bridgeProxy: IBridgeProxy = await BridgeProxy.create();
|
|
@@ -74,18 +79,19 @@ export class TeamsAppOperatingContext extends BaseOperatingContext {
|
|
|
74
79
|
this.activeAccount =
|
|
75
80
|
await bridgeProxy.getActiveAccount();
|
|
76
81
|
}
|
|
77
|
-
} catch
|
|
78
|
-
|
|
82
|
+
} catch {
|
|
83
|
+
// Ignore errors
|
|
79
84
|
}
|
|
80
85
|
this.bridgeProxy = bridgeProxy;
|
|
81
86
|
this.available = bridgeProxy !== undefined;
|
|
82
|
-
} else {
|
|
83
|
-
this.available = false;
|
|
84
87
|
}
|
|
85
|
-
} catch (
|
|
86
|
-
this.
|
|
87
|
-
|
|
88
|
-
|
|
88
|
+
} catch (ex) {
|
|
89
|
+
this.logger.infoPii(
|
|
90
|
+
`Could not initialize Nested App Auth bridge (${ex})`
|
|
91
|
+
);
|
|
89
92
|
}
|
|
93
|
+
|
|
94
|
+
this.logger.info(`Nested App Auth Bridge available: ${this.available}`);
|
|
95
|
+
return this.available;
|
|
90
96
|
}
|
|
91
97
|
}
|
package/src/packageMetadata.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { UrlString } from "@azure/msal-common";
|
|
6
|
+
import { UrlString, invoke, invokeAsync } from "@azure/msal-common";
|
|
7
7
|
import {
|
|
8
8
|
createBrowserAuthError,
|
|
9
9
|
BrowserAuthErrorCodes,
|
|
@@ -206,3 +206,6 @@ export function preconnect(authority: string): void {
|
|
|
206
206
|
export function createGuid(): string {
|
|
207
207
|
return BrowserCrypto.createNewGuid();
|
|
208
208
|
}
|
|
209
|
+
|
|
210
|
+
export { invoke };
|
|
211
|
+
export { invokeAsync };
|