@azure/msal-common 14.4.0 → 14.4.1-beta.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/dist/account/AccountInfo.d.ts +31 -31
- package/dist/account/AuthToken.d.ts +17 -17
- package/dist/account/AuthToken.mjs +58 -58
- package/dist/account/CcsCredential.d.ts +9 -9
- package/dist/account/CcsCredential.mjs +8 -8
- package/dist/account/ClientCredentials.d.ts +14 -14
- package/dist/account/ClientInfo.d.ts +19 -19
- package/dist/account/ClientInfo.mjs +37 -37
- package/dist/account/TokenClaims.d.ts +65 -65
- package/dist/authority/Authority.d.ts +249 -249
- package/dist/authority/Authority.mjs +788 -788
- package/dist/authority/AuthorityFactory.d.ts +31 -31
- package/dist/authority/AuthorityFactory.mjs +47 -47
- package/dist/authority/AuthorityMetadata.d.ts +503 -503
- package/dist/authority/AuthorityMetadata.mjs +603 -603
- package/dist/authority/AuthorityOptions.d.ts +27 -27
- package/dist/authority/AuthorityOptions.mjs +18 -18
- package/dist/authority/AuthorityType.d.ts +10 -10
- package/dist/authority/AuthorityType.mjs +13 -13
- package/dist/authority/AzureRegion.d.ts +1 -1
- package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
- package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +8 -8
- package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
- package/dist/authority/CloudInstanceDiscoveryResponse.mjs +8 -8
- package/dist/authority/ImdsOptions.d.ts +5 -5
- package/dist/authority/OIDCOptions.d.ts +8 -8
- package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
- package/dist/authority/OpenIdConfigResponse.mjs +10 -10
- package/dist/authority/ProtocolMode.d.ts +8 -8
- package/dist/authority/ProtocolMode.mjs +11 -11
- package/dist/authority/RegionDiscovery.d.ts +32 -32
- package/dist/authority/RegionDiscovery.mjs +106 -106
- package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
- package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
- package/dist/cache/CacheManager.d.ts +485 -485
- package/dist/cache/CacheManager.mjs +1102 -1102
- package/dist/cache/entities/AccessTokenEntity.d.ts +25 -25
- package/dist/cache/entities/AccountEntity.d.ts +101 -101
- package/dist/cache/entities/AccountEntity.mjs +218 -218
- package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
- package/dist/cache/entities/AppMetadataEntity.mjs +66 -66
- package/dist/cache/entities/AuthorityMetadataEntity.d.ts +48 -48
- package/dist/cache/entities/AuthorityMetadataEntity.mjs +78 -78
- package/dist/cache/entities/CacheRecord.d.ts +14 -14
- package/dist/cache/entities/CacheRecord.mjs +14 -14
- package/dist/cache/entities/CredentialEntity.d.ts +30 -30
- package/dist/cache/entities/IdTokenEntity.d.ts +8 -8
- package/dist/cache/entities/RefreshTokenEntity.d.ts +7 -5
- package/dist/cache/entities/RefreshTokenEntity.d.ts.map +1 -1
- package/dist/cache/entities/ServerTelemetryEntity.d.ts +5 -5
- package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
- package/dist/cache/entities/ThrottlingEntity.mjs +23 -23
- package/dist/cache/interface/ICacheManager.d.ts +166 -166
- package/dist/cache/interface/ICachePlugin.d.ts +5 -5
- package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
- package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
- package/dist/cache/persistence/TokenCacheContext.mjs +25 -25
- package/dist/cache/utils/CacheHelpers.d.ts +64 -64
- package/dist/cache/utils/CacheHelpers.d.ts.map +1 -1
- package/dist/cache/utils/CacheHelpers.mjs +234 -231
- package/dist/cache/utils/CacheHelpers.mjs.map +1 -1
- package/dist/cache/utils/CacheTypes.d.ts +67 -67
- package/dist/client/AuthorizationCodeClient.d.ts +74 -74
- package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
- package/dist/client/AuthorizationCodeClient.mjs +402 -402
- package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
- package/dist/client/BaseClient.d.ts +51 -51
- package/dist/client/BaseClient.mjs +100 -100
- package/dist/client/RefreshTokenClient.d.ts +35 -35
- package/dist/client/RefreshTokenClient.d.ts.map +1 -1
- package/dist/client/RefreshTokenClient.mjs +193 -187
- package/dist/client/RefreshTokenClient.mjs.map +1 -1
- package/dist/client/SilentFlowClient.d.ts +27 -27
- package/dist/client/SilentFlowClient.mjs +118 -118
- package/dist/config/AppTokenProvider.d.ts +38 -38
- package/dist/config/ClientConfiguration.d.ts +150 -150
- package/dist/config/ClientConfiguration.mjs +97 -97
- package/dist/crypto/ICrypto.d.ts +58 -58
- package/dist/crypto/ICrypto.mjs +30 -30
- package/dist/crypto/IGuidGenerator.d.ts +4 -4
- package/dist/crypto/JoseHeader.d.ts +22 -22
- package/dist/crypto/JoseHeader.mjs +37 -37
- package/dist/crypto/PopTokenGenerator.d.ts +60 -60
- package/dist/crypto/PopTokenGenerator.mjs +82 -82
- package/dist/crypto/SignedHttpRequest.d.ts +15 -15
- package/dist/error/AuthError.d.ts +44 -44
- package/dist/error/AuthError.mjs +46 -46
- package/dist/error/AuthErrorCodes.d.ts +5 -5
- package/dist/error/AuthErrorCodes.mjs +9 -9
- package/dist/error/ClientAuthError.d.ts +237 -237
- package/dist/error/ClientAuthError.mjs +249 -249
- package/dist/error/ClientAuthErrorCodes.d.ts +44 -44
- package/dist/error/ClientAuthErrorCodes.mjs +48 -48
- package/dist/error/ClientConfigurationError.d.ts +128 -128
- package/dist/error/ClientConfigurationError.mjs +135 -135
- package/dist/error/ClientConfigurationErrorCodes.d.ts +22 -22
- package/dist/error/ClientConfigurationErrorCodes.mjs +26 -26
- package/dist/error/InteractionRequiredAuthError.d.ts +57 -57
- package/dist/error/InteractionRequiredAuthError.d.ts.map +1 -1
- package/dist/error/InteractionRequiredAuthError.mjs +78 -77
- package/dist/error/InteractionRequiredAuthError.mjs.map +1 -1
- package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +6 -5
- package/dist/error/InteractionRequiredAuthErrorCodes.d.ts.map +1 -1
- package/dist/error/InteractionRequiredAuthErrorCodes.mjs +13 -12
- package/dist/error/InteractionRequiredAuthErrorCodes.mjs.map +1 -1
- package/dist/error/JoseHeaderError.d.ts +15 -15
- package/dist/error/JoseHeaderError.mjs +22 -22
- package/dist/error/JoseHeaderErrorCodes.d.ts +2 -2
- package/dist/error/JoseHeaderErrorCodes.mjs +6 -6
- package/dist/error/ServerError.d.ts +7 -7
- package/dist/error/ServerError.mjs +14 -14
- package/dist/index.cjs +8290 -8278
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +98 -98
- package/dist/index.mjs +1 -1
- package/dist/logger/Logger.d.ts +95 -95
- package/dist/logger/Logger.mjs +188 -188
- package/dist/network/INetworkModule.d.ts +29 -29
- package/dist/network/INetworkModule.mjs +12 -12
- package/dist/network/NetworkManager.d.ts +33 -33
- package/dist/network/NetworkManager.mjs +34 -34
- package/dist/network/RequestThumbprint.d.ts +18 -18
- package/dist/network/ThrottlingUtils.d.ts +42 -42
- package/dist/network/ThrottlingUtils.mjs +95 -95
- package/dist/packageMetadata.d.ts +2 -2
- package/dist/packageMetadata.d.ts.map +1 -1
- package/dist/packageMetadata.mjs +4 -4
- package/dist/packageMetadata.mjs.map +1 -1
- package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
- package/dist/request/AuthenticationHeaderParser.mjs +55 -55
- package/dist/request/BaseAuthRequest.d.ts +43 -43
- package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
- package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
- package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
- package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
- package/dist/request/CommonEndSessionRequest.d.ts +21 -21
- package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
- package/dist/request/CommonRefreshTokenRequest.d.ts +23 -22
- package/dist/request/CommonRefreshTokenRequest.d.ts.map +1 -1
- package/dist/request/CommonSilentFlowRequest.d.ts +21 -20
- package/dist/request/CommonSilentFlowRequest.d.ts.map +1 -1
- package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
- package/dist/request/NativeRequest.d.ts +19 -19
- package/dist/request/NativeSignOutRequest.d.ts +5 -5
- package/dist/request/RequestParameterBuilder.d.ts +217 -217
- package/dist/request/RequestParameterBuilder.mjs +381 -381
- package/dist/request/RequestValidator.d.ts +33 -33
- package/dist/request/RequestValidator.mjs +81 -81
- package/dist/request/ScopeSet.d.ts +88 -88
- package/dist/request/ScopeSet.mjs +197 -197
- package/dist/request/StoreInCache.d.ts +8 -8
- package/dist/response/AuthenticationResult.d.ts +41 -41
- package/dist/response/AuthorizationCodePayload.d.ts +13 -13
- package/dist/response/DeviceCodeResponse.d.ts +25 -25
- package/dist/response/ExternalTokenResponse.d.ts +15 -15
- package/dist/response/IMDSBadResponse.d.ts +4 -4
- package/dist/response/ResponseHandler.d.ts +67 -67
- package/dist/response/ResponseHandler.d.ts.map +1 -1
- package/dist/response/ResponseHandler.mjs +312 -312
- package/dist/response/ResponseHandler.mjs.map +1 -1
- package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
- package/dist/response/ServerAuthorizationTokenResponse.d.ts +46 -46
- package/dist/telemetry/performance/IPerformanceClient.d.ts +51 -51
- package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
- package/dist/telemetry/performance/PerformanceClient.d.ts +191 -191
- package/dist/telemetry/performance/PerformanceClient.mjs +409 -409
- package/dist/telemetry/performance/PerformanceEvent.d.ts +464 -464
- package/dist/telemetry/performance/PerformanceEvent.mjs +253 -253
- package/dist/telemetry/performance/StubPerformanceClient.d.ts +24 -24
- package/dist/telemetry/performance/StubPerformanceClient.mjs +76 -76
- package/dist/telemetry/server/ServerTelemetryManager.d.ts +66 -66
- package/dist/telemetry/server/ServerTelemetryManager.mjs +201 -201
- package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
- package/dist/url/IUri.d.ts +12 -12
- package/dist/url/UrlString.d.ts +48 -48
- package/dist/url/UrlString.mjs +161 -161
- package/dist/utils/Constants.d.ts +365 -365
- package/dist/utils/Constants.mjs +375 -375
- package/dist/utils/FunctionWrappers.d.ts +27 -27
- package/dist/utils/FunctionWrappers.mjs +84 -84
- package/dist/utils/MsalTypes.d.ts +6 -6
- package/dist/utils/ProtocolUtils.d.ts +42 -42
- package/dist/utils/ProtocolUtils.mjs +69 -69
- package/dist/utils/StringUtils.d.ts +40 -40
- package/dist/utils/StringUtils.mjs +95 -95
- package/dist/utils/TimeUtils.d.ts +27 -27
- package/dist/utils/TimeUtils.mjs +45 -45
- package/dist/utils/UrlUtils.d.ts +10 -10
- package/dist/utils/UrlUtils.mjs +44 -44
- package/package.json +92 -92
- package/src/cache/entities/RefreshTokenEntity.ts +3 -1
- package/src/cache/utils/CacheHelpers.ts +6 -1
- package/src/client/AuthorizationCodeClient.ts +2 -1
- package/src/client/RefreshTokenClient.ts +13 -1
- package/src/error/InteractionRequiredAuthError.ts +2 -0
- package/src/error/InteractionRequiredAuthErrorCodes.ts +1 -0
- package/src/packageMetadata.ts +1 -1
- package/src/request/CommonRefreshTokenRequest.ts +1 -0
- package/src/request/CommonSilentFlowRequest.ts +1 -0
- package/src/response/ResponseHandler.ts +8 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @azure/msal-common v14.4.
|
|
1
|
+
/*! @azure/msal-common v14.4.1-beta.1 2023-11-14 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { BaseClient } from './BaseClient.mjs';
|
|
4
4
|
import { TimeUtils } from '../utils/TimeUtils.mjs';
|
|
@@ -12,123 +12,123 @@ import { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.mjs
|
|
|
12
12
|
import { invokeAsync } from '../utils/FunctionWrappers.mjs';
|
|
13
13
|
import { tokenRefreshRequired, noAccountInSilentRequest, authTimeNotFound } from '../error/ClientAuthErrorCodes.mjs';
|
|
14
14
|
|
|
15
|
-
/*
|
|
16
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
17
|
-
* Licensed under the MIT License.
|
|
18
|
-
*/
|
|
19
|
-
/** @internal */
|
|
20
|
-
class SilentFlowClient extends BaseClient {
|
|
21
|
-
constructor(configuration, performanceClient) {
|
|
22
|
-
super(configuration, performanceClient);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Retrieves a token from cache if it is still valid, or uses the cached refresh token to renew
|
|
26
|
-
* the given token and returns the renewed token
|
|
27
|
-
* @param request
|
|
28
|
-
*/
|
|
29
|
-
async acquireToken(request) {
|
|
30
|
-
try {
|
|
31
|
-
const [authResponse, cacheOutcome] = await this.acquireCachedToken(request);
|
|
32
|
-
// if the token is not expired but must be refreshed; get a new one in the background
|
|
33
|
-
if (cacheOutcome === CacheOutcome.PROACTIVELY_REFRESHED) {
|
|
34
|
-
this.logger.info("SilentFlowClient:acquireCachedToken - Cached access token's refreshOn property has been exceeded'. It's not expired, but must be refreshed.");
|
|
35
|
-
// refresh the access token in the background
|
|
36
|
-
const refreshTokenClient = new RefreshTokenClient(this.config, this.performanceClient);
|
|
37
|
-
refreshTokenClient
|
|
38
|
-
.acquireTokenByRefreshToken(request)
|
|
39
|
-
.catch(() => {
|
|
40
|
-
// do nothing, this is running in the background and no action is to be taken upon success or failure
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
// return the cached token
|
|
44
|
-
return authResponse;
|
|
45
|
-
}
|
|
46
|
-
catch (e) {
|
|
47
|
-
if (e instanceof ClientAuthError &&
|
|
48
|
-
e.errorCode === tokenRefreshRequired) {
|
|
49
|
-
const refreshTokenClient = new RefreshTokenClient(this.config, this.performanceClient);
|
|
50
|
-
return refreshTokenClient.acquireTokenByRefreshToken(request);
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
throw e;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Retrieves token from cache or throws an error if it must be refreshed.
|
|
59
|
-
* @param request
|
|
60
|
-
*/
|
|
61
|
-
async acquireCachedToken(request) {
|
|
62
|
-
this.performanceClient?.addQueueMeasurement(PerformanceEvents.SilentFlowClientAcquireCachedToken, request.correlationId);
|
|
63
|
-
let lastCacheOutcome = CacheOutcome.NOT_APPLICABLE;
|
|
64
|
-
if (request.forceRefresh ||
|
|
65
|
-
(!this.config.cacheOptions.claimsBasedCachingEnabled &&
|
|
66
|
-
!StringUtils.isEmptyObj(request.claims))) {
|
|
67
|
-
// Must refresh due to present force_refresh flag.
|
|
68
|
-
this.setCacheOutcome(CacheOutcome.FORCE_REFRESH_OR_CLAIMS, request.correlationId);
|
|
69
|
-
throw createClientAuthError(tokenRefreshRequired);
|
|
70
|
-
}
|
|
71
|
-
// We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases
|
|
72
|
-
if (!request.account) {
|
|
73
|
-
throw createClientAuthError(noAccountInSilentRequest);
|
|
74
|
-
}
|
|
75
|
-
const environment = request.authority || this.authority.getPreferredCache();
|
|
76
|
-
const cacheRecord = this.cacheManager.readCacheRecord(request.account, request, environment, this.performanceClient, request.correlationId);
|
|
77
|
-
if (!cacheRecord.accessToken) {
|
|
78
|
-
// must refresh due to non-existent access_token
|
|
79
|
-
this.setCacheOutcome(CacheOutcome.NO_CACHED_ACCESS_TOKEN, request.correlationId);
|
|
80
|
-
throw createClientAuthError(tokenRefreshRequired);
|
|
81
|
-
}
|
|
82
|
-
else if (TimeUtils.wasClockTurnedBack(cacheRecord.accessToken.cachedAt) ||
|
|
83
|
-
TimeUtils.isTokenExpired(cacheRecord.accessToken.expiresOn, this.config.systemOptions.tokenRenewalOffsetSeconds)) {
|
|
84
|
-
// must refresh due to the expires_in value
|
|
85
|
-
this.setCacheOutcome(CacheOutcome.CACHED_ACCESS_TOKEN_EXPIRED, request.correlationId);
|
|
86
|
-
throw createClientAuthError(tokenRefreshRequired);
|
|
87
|
-
}
|
|
88
|
-
else if (cacheRecord.accessToken.refreshOn &&
|
|
89
|
-
TimeUtils.isTokenExpired(cacheRecord.accessToken.refreshOn, 0)) {
|
|
90
|
-
// must refresh (in the background) due to the refresh_in value
|
|
91
|
-
lastCacheOutcome = CacheOutcome.PROACTIVELY_REFRESHED;
|
|
92
|
-
// don't throw ClientAuthError.createRefreshRequiredError(), return cached token instead
|
|
93
|
-
}
|
|
94
|
-
this.setCacheOutcome(lastCacheOutcome, request.correlationId);
|
|
95
|
-
if (this.config.serverTelemetryManager) {
|
|
96
|
-
this.config.serverTelemetryManager.incrementCacheHits();
|
|
97
|
-
}
|
|
98
|
-
return [
|
|
99
|
-
await invokeAsync(this.generateResultFromCacheRecord.bind(this), PerformanceEvents.SilentFlowClientGenerateResultFromCacheRecord, this.logger, this.performanceClient, request.correlationId)(cacheRecord, request),
|
|
100
|
-
lastCacheOutcome,
|
|
101
|
-
];
|
|
102
|
-
}
|
|
103
|
-
setCacheOutcome(cacheOutcome, correlationId) {
|
|
104
|
-
this.serverTelemetryManager?.setCacheOutcome(cacheOutcome);
|
|
105
|
-
this.performanceClient?.addFields({
|
|
106
|
-
cacheOutcome: cacheOutcome,
|
|
107
|
-
}, correlationId);
|
|
108
|
-
if (cacheOutcome !== CacheOutcome.NOT_APPLICABLE) {
|
|
109
|
-
this.logger.info(`Token refresh is required due to cache outcome: ${cacheOutcome}`);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Helper function to build response object from the CacheRecord
|
|
114
|
-
* @param cacheRecord
|
|
115
|
-
*/
|
|
116
|
-
async generateResultFromCacheRecord(cacheRecord, request) {
|
|
117
|
-
this.performanceClient?.addQueueMeasurement(PerformanceEvents.SilentFlowClientGenerateResultFromCacheRecord, request.correlationId);
|
|
118
|
-
let idTokenClaims;
|
|
119
|
-
if (cacheRecord.idToken) {
|
|
120
|
-
idTokenClaims = extractTokenClaims(cacheRecord.idToken.secret, this.config.cryptoInterface.base64Decode);
|
|
121
|
-
}
|
|
122
|
-
// token max_age check
|
|
123
|
-
if (request.maxAge || request.maxAge === 0) {
|
|
124
|
-
const authTime = idTokenClaims?.auth_time;
|
|
125
|
-
if (!authTime) {
|
|
126
|
-
throw createClientAuthError(authTimeNotFound);
|
|
127
|
-
}
|
|
128
|
-
checkMaxAge(authTime, request.maxAge);
|
|
129
|
-
}
|
|
130
|
-
return await ResponseHandler.generateAuthenticationResult(this.cryptoUtils, this.authority, cacheRecord, true, request, idTokenClaims);
|
|
131
|
-
}
|
|
15
|
+
/*
|
|
16
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
17
|
+
* Licensed under the MIT License.
|
|
18
|
+
*/
|
|
19
|
+
/** @internal */
|
|
20
|
+
class SilentFlowClient extends BaseClient {
|
|
21
|
+
constructor(configuration, performanceClient) {
|
|
22
|
+
super(configuration, performanceClient);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Retrieves a token from cache if it is still valid, or uses the cached refresh token to renew
|
|
26
|
+
* the given token and returns the renewed token
|
|
27
|
+
* @param request
|
|
28
|
+
*/
|
|
29
|
+
async acquireToken(request) {
|
|
30
|
+
try {
|
|
31
|
+
const [authResponse, cacheOutcome] = await this.acquireCachedToken(request);
|
|
32
|
+
// if the token is not expired but must be refreshed; get a new one in the background
|
|
33
|
+
if (cacheOutcome === CacheOutcome.PROACTIVELY_REFRESHED) {
|
|
34
|
+
this.logger.info("SilentFlowClient:acquireCachedToken - Cached access token's refreshOn property has been exceeded'. It's not expired, but must be refreshed.");
|
|
35
|
+
// refresh the access token in the background
|
|
36
|
+
const refreshTokenClient = new RefreshTokenClient(this.config, this.performanceClient);
|
|
37
|
+
refreshTokenClient
|
|
38
|
+
.acquireTokenByRefreshToken(request)
|
|
39
|
+
.catch(() => {
|
|
40
|
+
// do nothing, this is running in the background and no action is to be taken upon success or failure
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
// return the cached token
|
|
44
|
+
return authResponse;
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
if (e instanceof ClientAuthError &&
|
|
48
|
+
e.errorCode === tokenRefreshRequired) {
|
|
49
|
+
const refreshTokenClient = new RefreshTokenClient(this.config, this.performanceClient);
|
|
50
|
+
return refreshTokenClient.acquireTokenByRefreshToken(request);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
throw e;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Retrieves token from cache or throws an error if it must be refreshed.
|
|
59
|
+
* @param request
|
|
60
|
+
*/
|
|
61
|
+
async acquireCachedToken(request) {
|
|
62
|
+
this.performanceClient?.addQueueMeasurement(PerformanceEvents.SilentFlowClientAcquireCachedToken, request.correlationId);
|
|
63
|
+
let lastCacheOutcome = CacheOutcome.NOT_APPLICABLE;
|
|
64
|
+
if (request.forceRefresh ||
|
|
65
|
+
(!this.config.cacheOptions.claimsBasedCachingEnabled &&
|
|
66
|
+
!StringUtils.isEmptyObj(request.claims))) {
|
|
67
|
+
// Must refresh due to present force_refresh flag.
|
|
68
|
+
this.setCacheOutcome(CacheOutcome.FORCE_REFRESH_OR_CLAIMS, request.correlationId);
|
|
69
|
+
throw createClientAuthError(tokenRefreshRequired);
|
|
70
|
+
}
|
|
71
|
+
// We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases
|
|
72
|
+
if (!request.account) {
|
|
73
|
+
throw createClientAuthError(noAccountInSilentRequest);
|
|
74
|
+
}
|
|
75
|
+
const environment = request.authority || this.authority.getPreferredCache();
|
|
76
|
+
const cacheRecord = this.cacheManager.readCacheRecord(request.account, request, environment, this.performanceClient, request.correlationId);
|
|
77
|
+
if (!cacheRecord.accessToken) {
|
|
78
|
+
// must refresh due to non-existent access_token
|
|
79
|
+
this.setCacheOutcome(CacheOutcome.NO_CACHED_ACCESS_TOKEN, request.correlationId);
|
|
80
|
+
throw createClientAuthError(tokenRefreshRequired);
|
|
81
|
+
}
|
|
82
|
+
else if (TimeUtils.wasClockTurnedBack(cacheRecord.accessToken.cachedAt) ||
|
|
83
|
+
TimeUtils.isTokenExpired(cacheRecord.accessToken.expiresOn, this.config.systemOptions.tokenRenewalOffsetSeconds)) {
|
|
84
|
+
// must refresh due to the expires_in value
|
|
85
|
+
this.setCacheOutcome(CacheOutcome.CACHED_ACCESS_TOKEN_EXPIRED, request.correlationId);
|
|
86
|
+
throw createClientAuthError(tokenRefreshRequired);
|
|
87
|
+
}
|
|
88
|
+
else if (cacheRecord.accessToken.refreshOn &&
|
|
89
|
+
TimeUtils.isTokenExpired(cacheRecord.accessToken.refreshOn, 0)) {
|
|
90
|
+
// must refresh (in the background) due to the refresh_in value
|
|
91
|
+
lastCacheOutcome = CacheOutcome.PROACTIVELY_REFRESHED;
|
|
92
|
+
// don't throw ClientAuthError.createRefreshRequiredError(), return cached token instead
|
|
93
|
+
}
|
|
94
|
+
this.setCacheOutcome(lastCacheOutcome, request.correlationId);
|
|
95
|
+
if (this.config.serverTelemetryManager) {
|
|
96
|
+
this.config.serverTelemetryManager.incrementCacheHits();
|
|
97
|
+
}
|
|
98
|
+
return [
|
|
99
|
+
await invokeAsync(this.generateResultFromCacheRecord.bind(this), PerformanceEvents.SilentFlowClientGenerateResultFromCacheRecord, this.logger, this.performanceClient, request.correlationId)(cacheRecord, request),
|
|
100
|
+
lastCacheOutcome,
|
|
101
|
+
];
|
|
102
|
+
}
|
|
103
|
+
setCacheOutcome(cacheOutcome, correlationId) {
|
|
104
|
+
this.serverTelemetryManager?.setCacheOutcome(cacheOutcome);
|
|
105
|
+
this.performanceClient?.addFields({
|
|
106
|
+
cacheOutcome: cacheOutcome,
|
|
107
|
+
}, correlationId);
|
|
108
|
+
if (cacheOutcome !== CacheOutcome.NOT_APPLICABLE) {
|
|
109
|
+
this.logger.info(`Token refresh is required due to cache outcome: ${cacheOutcome}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Helper function to build response object from the CacheRecord
|
|
114
|
+
* @param cacheRecord
|
|
115
|
+
*/
|
|
116
|
+
async generateResultFromCacheRecord(cacheRecord, request) {
|
|
117
|
+
this.performanceClient?.addQueueMeasurement(PerformanceEvents.SilentFlowClientGenerateResultFromCacheRecord, request.correlationId);
|
|
118
|
+
let idTokenClaims;
|
|
119
|
+
if (cacheRecord.idToken) {
|
|
120
|
+
idTokenClaims = extractTokenClaims(cacheRecord.idToken.secret, this.config.cryptoInterface.base64Decode);
|
|
121
|
+
}
|
|
122
|
+
// token max_age check
|
|
123
|
+
if (request.maxAge || request.maxAge === 0) {
|
|
124
|
+
const authTime = idTokenClaims?.auth_time;
|
|
125
|
+
if (!authTime) {
|
|
126
|
+
throw createClientAuthError(authTimeNotFound);
|
|
127
|
+
}
|
|
128
|
+
checkMaxAge(authTime, request.maxAge);
|
|
129
|
+
}
|
|
130
|
+
return await ResponseHandler.generateAuthenticationResult(this.cryptoUtils, this.authority, cacheRecord, true, request, idTokenClaims);
|
|
131
|
+
}
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
export { SilentFlowClient };
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Extensibility interface, which allows the app developer to return a token, based on the passed-in parameters, instead of fetching tokens from
|
|
3
|
-
* the Identity Provider (AAD).
|
|
4
|
-
* Developers need to construct and return an AppTokenProviderResult object back to MSAL. MSAL will cache the token response
|
|
5
|
-
* in the same way it would do if the result were comming from AAD.
|
|
6
|
-
* This extensibility point is only defined for the client_credential flow, i.e. acquireTokenByClientCredential and
|
|
7
|
-
* meant for Azure SDK to enhance Managed Identity support.
|
|
8
|
-
*/
|
|
9
|
-
export interface IAppTokenProvider {
|
|
10
|
-
(appTokenProviderParameters: AppTokenProviderParameters): Promise<AppTokenProviderResult>;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Input object for the IAppTokenProvider extensiblity. MSAL will create this object, which can be used
|
|
14
|
-
* to help create an AppTokenProviderResult.
|
|
15
|
-
*
|
|
16
|
-
* - correlationId - the correlation Id associated with the request
|
|
17
|
-
* - tenantId - the tenant Id for which the token must be provided
|
|
18
|
-
* - scopes - the scopes for which the token must be provided
|
|
19
|
-
* - claims - any extra claims that the token must satisfy
|
|
20
|
-
*/
|
|
21
|
-
export type AppTokenProviderParameters = {
|
|
22
|
-
readonly correlationId?: string;
|
|
23
|
-
readonly tenantId: string;
|
|
24
|
-
readonly scopes: Array<string>;
|
|
25
|
-
readonly claims?: string;
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* Output object for IAppTokenProvider extensiblity.
|
|
29
|
-
*
|
|
30
|
-
* - accessToken - the actual access token, typically in JWT format, that satisfies the request data AppTokenProviderParameters
|
|
31
|
-
* - expiresInSeconds - how long the tokens has before expiry, in seconds. Similar to the "expires_in" field in an AAD token response.
|
|
32
|
-
* - refreshInSeconds - how long the token has before it should be proactively refreshed. Similar to the "refresh_in" field in an AAD token response.
|
|
33
|
-
*/
|
|
34
|
-
export type AppTokenProviderResult = {
|
|
35
|
-
accessToken: string;
|
|
36
|
-
expiresInSeconds: number;
|
|
37
|
-
refreshInSeconds?: number;
|
|
38
|
-
};
|
|
1
|
+
/**
|
|
2
|
+
* Extensibility interface, which allows the app developer to return a token, based on the passed-in parameters, instead of fetching tokens from
|
|
3
|
+
* the Identity Provider (AAD).
|
|
4
|
+
* Developers need to construct and return an AppTokenProviderResult object back to MSAL. MSAL will cache the token response
|
|
5
|
+
* in the same way it would do if the result were comming from AAD.
|
|
6
|
+
* This extensibility point is only defined for the client_credential flow, i.e. acquireTokenByClientCredential and
|
|
7
|
+
* meant for Azure SDK to enhance Managed Identity support.
|
|
8
|
+
*/
|
|
9
|
+
export interface IAppTokenProvider {
|
|
10
|
+
(appTokenProviderParameters: AppTokenProviderParameters): Promise<AppTokenProviderResult>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Input object for the IAppTokenProvider extensiblity. MSAL will create this object, which can be used
|
|
14
|
+
* to help create an AppTokenProviderResult.
|
|
15
|
+
*
|
|
16
|
+
* - correlationId - the correlation Id associated with the request
|
|
17
|
+
* - tenantId - the tenant Id for which the token must be provided
|
|
18
|
+
* - scopes - the scopes for which the token must be provided
|
|
19
|
+
* - claims - any extra claims that the token must satisfy
|
|
20
|
+
*/
|
|
21
|
+
export type AppTokenProviderParameters = {
|
|
22
|
+
readonly correlationId?: string;
|
|
23
|
+
readonly tenantId: string;
|
|
24
|
+
readonly scopes: Array<string>;
|
|
25
|
+
readonly claims?: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Output object for IAppTokenProvider extensiblity.
|
|
29
|
+
*
|
|
30
|
+
* - accessToken - the actual access token, typically in JWT format, that satisfies the request data AppTokenProviderParameters
|
|
31
|
+
* - expiresInSeconds - how long the tokens has before expiry, in seconds. Similar to the "expires_in" field in an AAD token response.
|
|
32
|
+
* - refreshInSeconds - how long the token has before it should be proactively refreshed. Similar to the "refresh_in" field in an AAD token response.
|
|
33
|
+
*/
|
|
34
|
+
export type AppTokenProviderResult = {
|
|
35
|
+
accessToken: string;
|
|
36
|
+
expiresInSeconds: number;
|
|
37
|
+
refreshInSeconds?: number;
|
|
38
|
+
};
|
|
39
39
|
//# sourceMappingURL=AppTokenProvider.d.ts.map
|
|
@@ -1,151 +1,151 @@
|
|
|
1
|
-
import { INetworkModule } from "../network/INetworkModule";
|
|
2
|
-
import { ICrypto } from "../crypto/ICrypto";
|
|
3
|
-
import { ILoggerCallback, LogLevel } from "../logger/Logger";
|
|
4
|
-
import { Authority } from "../authority/Authority";
|
|
5
|
-
import { AzureCloudInstance } from "../authority/AuthorityOptions";
|
|
6
|
-
import { CacheManager } from "../cache/CacheManager";
|
|
7
|
-
import { ServerTelemetryManager } from "../telemetry/server/ServerTelemetryManager";
|
|
8
|
-
import { ICachePlugin } from "../cache/interface/ICachePlugin";
|
|
9
|
-
import { ISerializableTokenCache } from "../cache/interface/ISerializableTokenCache";
|
|
10
|
-
import { ClientCredentials } from "../account/ClientCredentials";
|
|
11
|
-
/**
|
|
12
|
-
* Use the configuration object to configure MSAL Modules and initialize the base interfaces for MSAL.
|
|
13
|
-
*
|
|
14
|
-
* This object allows you to configure important elements of MSAL functionality:
|
|
15
|
-
* - authOptions - Authentication for application
|
|
16
|
-
* - cryptoInterface - Implementation of crypto functions
|
|
17
|
-
* - libraryInfo - Library metadata
|
|
18
|
-
* - telemetry - Telemetry options and data
|
|
19
|
-
* - loggerOptions - Logging for application
|
|
20
|
-
* - networkInterface - Network implementation
|
|
21
|
-
* - storageInterface - Storage implementation
|
|
22
|
-
* - systemOptions - Additional library options
|
|
23
|
-
* - clientCredentials - Credentials options for confidential clients
|
|
24
|
-
* @internal
|
|
25
|
-
*/
|
|
26
|
-
export type ClientConfiguration = {
|
|
27
|
-
authOptions: AuthOptions;
|
|
28
|
-
systemOptions?: SystemOptions;
|
|
29
|
-
loggerOptions?: LoggerOptions;
|
|
30
|
-
cacheOptions?: CacheOptions;
|
|
31
|
-
storageInterface?: CacheManager;
|
|
32
|
-
networkInterface?: INetworkModule;
|
|
33
|
-
cryptoInterface?: ICrypto;
|
|
34
|
-
clientCredentials?: ClientCredentials;
|
|
35
|
-
libraryInfo?: LibraryInfo;
|
|
36
|
-
telemetry?: TelemetryOptions;
|
|
37
|
-
serverTelemetryManager?: ServerTelemetryManager | null;
|
|
38
|
-
persistencePlugin?: ICachePlugin | null;
|
|
39
|
-
serializableCache?: ISerializableTokenCache | null;
|
|
40
|
-
};
|
|
41
|
-
export type CommonClientConfiguration = {
|
|
42
|
-
authOptions: Required<AuthOptions>;
|
|
43
|
-
systemOptions: Required<SystemOptions>;
|
|
44
|
-
loggerOptions: Required<LoggerOptions>;
|
|
45
|
-
cacheOptions: Required<CacheOptions>;
|
|
46
|
-
storageInterface: CacheManager;
|
|
47
|
-
networkInterface: INetworkModule;
|
|
48
|
-
cryptoInterface: Required<ICrypto>;
|
|
49
|
-
libraryInfo: LibraryInfo;
|
|
50
|
-
telemetry: Required<TelemetryOptions>;
|
|
51
|
-
serverTelemetryManager: ServerTelemetryManager | null;
|
|
52
|
-
clientCredentials: ClientCredentials;
|
|
53
|
-
persistencePlugin: ICachePlugin | null;
|
|
54
|
-
serializableCache: ISerializableTokenCache | null;
|
|
55
|
-
};
|
|
56
|
-
/**
|
|
57
|
-
* Use this to configure the auth options in the ClientConfiguration object
|
|
58
|
-
*
|
|
59
|
-
* - clientId - Client ID of your app registered with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview in Microsoft Identity Platform
|
|
60
|
-
* - authority - You can configure a specific authority, defaults to " " or "https://login.microsoftonline.com/common"
|
|
61
|
-
* - knownAuthorities - An array of URIs that are known to be valid. Used in B2C scenarios.
|
|
62
|
-
* - cloudDiscoveryMetadata - A string containing the cloud discovery response. Used in AAD scenarios.
|
|
63
|
-
* - clientCapabilities - Array of capabilities which will be added to the claims.access_token.xms_cc request property on every network request.
|
|
64
|
-
* - protocolMode - Enum that represents the protocol that msal follows. Used for configuring proper endpoints.
|
|
65
|
-
* - skipAuthorityMetadataCache - A flag to choose whether to use or not use the local metadata cache during authority initialization. Defaults to false.
|
|
66
|
-
* @internal
|
|
67
|
-
*/
|
|
68
|
-
export type AuthOptions = {
|
|
69
|
-
clientId: string;
|
|
70
|
-
authority: Authority;
|
|
71
|
-
clientCapabilities?: Array<string>;
|
|
72
|
-
azureCloudOptions?: AzureCloudOptions;
|
|
73
|
-
skipAuthorityMetadataCache?: boolean;
|
|
74
|
-
};
|
|
75
|
-
/**
|
|
76
|
-
* Use this to configure token renewal info in the Configuration object
|
|
77
|
-
*
|
|
78
|
-
* - tokenRenewalOffsetSeconds - Sets the window of offset needed to renew the token before expiry
|
|
79
|
-
*/
|
|
80
|
-
export type SystemOptions = {
|
|
81
|
-
tokenRenewalOffsetSeconds?: number;
|
|
82
|
-
preventCorsPreflight?: boolean;
|
|
83
|
-
};
|
|
84
|
-
/**
|
|
85
|
-
* Use this to configure the logging that MSAL does, by configuring logger options in the Configuration object
|
|
86
|
-
*
|
|
87
|
-
* - loggerCallback - Callback for logger
|
|
88
|
-
* - piiLoggingEnabled - Sets whether pii logging is enabled
|
|
89
|
-
* - logLevel - Sets the level at which logging happens
|
|
90
|
-
* - correlationId - Sets the correlationId printed by the logger
|
|
91
|
-
*/
|
|
92
|
-
export type LoggerOptions = {
|
|
93
|
-
loggerCallback?: ILoggerCallback;
|
|
94
|
-
piiLoggingEnabled?: boolean;
|
|
95
|
-
logLevel?: LogLevel;
|
|
96
|
-
correlationId?: string;
|
|
97
|
-
};
|
|
98
|
-
/**
|
|
99
|
-
* Use this to configure credential cache preferences in the ClientConfiguration object
|
|
100
|
-
*
|
|
101
|
-
* - claimsBasedCachingEnabled - Sets whether tokens should be cached based on the claims hash. Default is false.
|
|
102
|
-
*/
|
|
103
|
-
export type CacheOptions = {
|
|
104
|
-
claimsBasedCachingEnabled?: boolean;
|
|
105
|
-
};
|
|
106
|
-
/**
|
|
107
|
-
* Library-specific options
|
|
108
|
-
*/
|
|
109
|
-
export type LibraryInfo = {
|
|
110
|
-
sku: string;
|
|
111
|
-
version: string;
|
|
112
|
-
cpu: string;
|
|
113
|
-
os: string;
|
|
114
|
-
};
|
|
115
|
-
/**
|
|
116
|
-
* AzureCloudInstance specific options
|
|
117
|
-
*
|
|
118
|
-
* - azureCloudInstance - string enum providing short notation for soverign and public cloud authorities
|
|
119
|
-
* - tenant - provision to provide the tenant info
|
|
120
|
-
*/
|
|
121
|
-
export type AzureCloudOptions = {
|
|
122
|
-
azureCloudInstance: AzureCloudInstance;
|
|
123
|
-
tenant?: string;
|
|
124
|
-
};
|
|
125
|
-
export type TelemetryOptions = {
|
|
126
|
-
application: ApplicationTelemetry;
|
|
127
|
-
};
|
|
128
|
-
/**
|
|
129
|
-
* Telemetry information sent on request
|
|
130
|
-
* - appName: Unique string name of an application
|
|
131
|
-
* - appVersion: Version of the application using MSAL
|
|
132
|
-
*/
|
|
133
|
-
export type ApplicationTelemetry = {
|
|
134
|
-
appName: string;
|
|
135
|
-
appVersion: string;
|
|
136
|
-
};
|
|
137
|
-
export declare const DEFAULT_SYSTEM_OPTIONS: Required<SystemOptions>;
|
|
138
|
-
/**
|
|
139
|
-
* Function that sets the default options when not explicitly configured from app developer
|
|
140
|
-
*
|
|
141
|
-
* @param Configuration
|
|
142
|
-
*
|
|
143
|
-
* @returns Configuration
|
|
144
|
-
*/
|
|
145
|
-
export declare function buildClientConfiguration({ authOptions: userAuthOptions, systemOptions: userSystemOptions, loggerOptions: userLoggerOption, cacheOptions: userCacheOptions, storageInterface: storageImplementation, networkInterface: networkImplementation, cryptoInterface: cryptoImplementation, clientCredentials: clientCredentials, libraryInfo: libraryInfo, telemetry: telemetry, serverTelemetryManager: serverTelemetryManager, persistencePlugin: persistencePlugin, serializableCache: serializableCache, }: ClientConfiguration): CommonClientConfiguration;
|
|
146
|
-
/**
|
|
147
|
-
* Returns true if config has protocolMode set to ProtocolMode.OIDC, false otherwise
|
|
148
|
-
* @param ClientConfiguration
|
|
149
|
-
*/
|
|
150
|
-
export declare function isOidcProtocolMode(config: ClientConfiguration): boolean;
|
|
1
|
+
import { INetworkModule } from "../network/INetworkModule";
|
|
2
|
+
import { ICrypto } from "../crypto/ICrypto";
|
|
3
|
+
import { ILoggerCallback, LogLevel } from "../logger/Logger";
|
|
4
|
+
import { Authority } from "../authority/Authority";
|
|
5
|
+
import { AzureCloudInstance } from "../authority/AuthorityOptions";
|
|
6
|
+
import { CacheManager } from "../cache/CacheManager";
|
|
7
|
+
import { ServerTelemetryManager } from "../telemetry/server/ServerTelemetryManager";
|
|
8
|
+
import { ICachePlugin } from "../cache/interface/ICachePlugin";
|
|
9
|
+
import { ISerializableTokenCache } from "../cache/interface/ISerializableTokenCache";
|
|
10
|
+
import { ClientCredentials } from "../account/ClientCredentials";
|
|
11
|
+
/**
|
|
12
|
+
* Use the configuration object to configure MSAL Modules and initialize the base interfaces for MSAL.
|
|
13
|
+
*
|
|
14
|
+
* This object allows you to configure important elements of MSAL functionality:
|
|
15
|
+
* - authOptions - Authentication for application
|
|
16
|
+
* - cryptoInterface - Implementation of crypto functions
|
|
17
|
+
* - libraryInfo - Library metadata
|
|
18
|
+
* - telemetry - Telemetry options and data
|
|
19
|
+
* - loggerOptions - Logging for application
|
|
20
|
+
* - networkInterface - Network implementation
|
|
21
|
+
* - storageInterface - Storage implementation
|
|
22
|
+
* - systemOptions - Additional library options
|
|
23
|
+
* - clientCredentials - Credentials options for confidential clients
|
|
24
|
+
* @internal
|
|
25
|
+
*/
|
|
26
|
+
export type ClientConfiguration = {
|
|
27
|
+
authOptions: AuthOptions;
|
|
28
|
+
systemOptions?: SystemOptions;
|
|
29
|
+
loggerOptions?: LoggerOptions;
|
|
30
|
+
cacheOptions?: CacheOptions;
|
|
31
|
+
storageInterface?: CacheManager;
|
|
32
|
+
networkInterface?: INetworkModule;
|
|
33
|
+
cryptoInterface?: ICrypto;
|
|
34
|
+
clientCredentials?: ClientCredentials;
|
|
35
|
+
libraryInfo?: LibraryInfo;
|
|
36
|
+
telemetry?: TelemetryOptions;
|
|
37
|
+
serverTelemetryManager?: ServerTelemetryManager | null;
|
|
38
|
+
persistencePlugin?: ICachePlugin | null;
|
|
39
|
+
serializableCache?: ISerializableTokenCache | null;
|
|
40
|
+
};
|
|
41
|
+
export type CommonClientConfiguration = {
|
|
42
|
+
authOptions: Required<AuthOptions>;
|
|
43
|
+
systemOptions: Required<SystemOptions>;
|
|
44
|
+
loggerOptions: Required<LoggerOptions>;
|
|
45
|
+
cacheOptions: Required<CacheOptions>;
|
|
46
|
+
storageInterface: CacheManager;
|
|
47
|
+
networkInterface: INetworkModule;
|
|
48
|
+
cryptoInterface: Required<ICrypto>;
|
|
49
|
+
libraryInfo: LibraryInfo;
|
|
50
|
+
telemetry: Required<TelemetryOptions>;
|
|
51
|
+
serverTelemetryManager: ServerTelemetryManager | null;
|
|
52
|
+
clientCredentials: ClientCredentials;
|
|
53
|
+
persistencePlugin: ICachePlugin | null;
|
|
54
|
+
serializableCache: ISerializableTokenCache | null;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Use this to configure the auth options in the ClientConfiguration object
|
|
58
|
+
*
|
|
59
|
+
* - clientId - Client ID of your app registered with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview in Microsoft Identity Platform
|
|
60
|
+
* - authority - You can configure a specific authority, defaults to " " or "https://login.microsoftonline.com/common"
|
|
61
|
+
* - knownAuthorities - An array of URIs that are known to be valid. Used in B2C scenarios.
|
|
62
|
+
* - cloudDiscoveryMetadata - A string containing the cloud discovery response. Used in AAD scenarios.
|
|
63
|
+
* - clientCapabilities - Array of capabilities which will be added to the claims.access_token.xms_cc request property on every network request.
|
|
64
|
+
* - protocolMode - Enum that represents the protocol that msal follows. Used for configuring proper endpoints.
|
|
65
|
+
* - skipAuthorityMetadataCache - A flag to choose whether to use or not use the local metadata cache during authority initialization. Defaults to false.
|
|
66
|
+
* @internal
|
|
67
|
+
*/
|
|
68
|
+
export type AuthOptions = {
|
|
69
|
+
clientId: string;
|
|
70
|
+
authority: Authority;
|
|
71
|
+
clientCapabilities?: Array<string>;
|
|
72
|
+
azureCloudOptions?: AzureCloudOptions;
|
|
73
|
+
skipAuthorityMetadataCache?: boolean;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Use this to configure token renewal info in the Configuration object
|
|
77
|
+
*
|
|
78
|
+
* - tokenRenewalOffsetSeconds - Sets the window of offset needed to renew the token before expiry
|
|
79
|
+
*/
|
|
80
|
+
export type SystemOptions = {
|
|
81
|
+
tokenRenewalOffsetSeconds?: number;
|
|
82
|
+
preventCorsPreflight?: boolean;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Use this to configure the logging that MSAL does, by configuring logger options in the Configuration object
|
|
86
|
+
*
|
|
87
|
+
* - loggerCallback - Callback for logger
|
|
88
|
+
* - piiLoggingEnabled - Sets whether pii logging is enabled
|
|
89
|
+
* - logLevel - Sets the level at which logging happens
|
|
90
|
+
* - correlationId - Sets the correlationId printed by the logger
|
|
91
|
+
*/
|
|
92
|
+
export type LoggerOptions = {
|
|
93
|
+
loggerCallback?: ILoggerCallback;
|
|
94
|
+
piiLoggingEnabled?: boolean;
|
|
95
|
+
logLevel?: LogLevel;
|
|
96
|
+
correlationId?: string;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Use this to configure credential cache preferences in the ClientConfiguration object
|
|
100
|
+
*
|
|
101
|
+
* - claimsBasedCachingEnabled - Sets whether tokens should be cached based on the claims hash. Default is false.
|
|
102
|
+
*/
|
|
103
|
+
export type CacheOptions = {
|
|
104
|
+
claimsBasedCachingEnabled?: boolean;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Library-specific options
|
|
108
|
+
*/
|
|
109
|
+
export type LibraryInfo = {
|
|
110
|
+
sku: string;
|
|
111
|
+
version: string;
|
|
112
|
+
cpu: string;
|
|
113
|
+
os: string;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* AzureCloudInstance specific options
|
|
117
|
+
*
|
|
118
|
+
* - azureCloudInstance - string enum providing short notation for soverign and public cloud authorities
|
|
119
|
+
* - tenant - provision to provide the tenant info
|
|
120
|
+
*/
|
|
121
|
+
export type AzureCloudOptions = {
|
|
122
|
+
azureCloudInstance: AzureCloudInstance;
|
|
123
|
+
tenant?: string;
|
|
124
|
+
};
|
|
125
|
+
export type TelemetryOptions = {
|
|
126
|
+
application: ApplicationTelemetry;
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Telemetry information sent on request
|
|
130
|
+
* - appName: Unique string name of an application
|
|
131
|
+
* - appVersion: Version of the application using MSAL
|
|
132
|
+
*/
|
|
133
|
+
export type ApplicationTelemetry = {
|
|
134
|
+
appName: string;
|
|
135
|
+
appVersion: string;
|
|
136
|
+
};
|
|
137
|
+
export declare const DEFAULT_SYSTEM_OPTIONS: Required<SystemOptions>;
|
|
138
|
+
/**
|
|
139
|
+
* Function that sets the default options when not explicitly configured from app developer
|
|
140
|
+
*
|
|
141
|
+
* @param Configuration
|
|
142
|
+
*
|
|
143
|
+
* @returns Configuration
|
|
144
|
+
*/
|
|
145
|
+
export declare function buildClientConfiguration({ authOptions: userAuthOptions, systemOptions: userSystemOptions, loggerOptions: userLoggerOption, cacheOptions: userCacheOptions, storageInterface: storageImplementation, networkInterface: networkImplementation, cryptoInterface: cryptoImplementation, clientCredentials: clientCredentials, libraryInfo: libraryInfo, telemetry: telemetry, serverTelemetryManager: serverTelemetryManager, persistencePlugin: persistencePlugin, serializableCache: serializableCache, }: ClientConfiguration): CommonClientConfiguration;
|
|
146
|
+
/**
|
|
147
|
+
* Returns true if config has protocolMode set to ProtocolMode.OIDC, false otherwise
|
|
148
|
+
* @param ClientConfiguration
|
|
149
|
+
*/
|
|
150
|
+
export declare function isOidcProtocolMode(config: ClientConfiguration): boolean;
|
|
151
151
|
//# sourceMappingURL=ClientConfiguration.d.ts.map
|