@azure/msal-common 14.5.0 → 14.6.0-alpha.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.
Files changed (234) hide show
  1. package/dist/account/AccountInfo.d.ts +58 -58
  2. package/dist/account/AccountInfo.mjs +59 -59
  3. package/dist/account/AuthToken.d.ts +17 -17
  4. package/dist/account/AuthToken.mjs +58 -58
  5. package/dist/account/CcsCredential.d.ts +9 -9
  6. package/dist/account/CcsCredential.mjs +8 -8
  7. package/dist/account/ClientCredentials.d.ts +14 -14
  8. package/dist/account/ClientInfo.d.ts +18 -18
  9. package/dist/account/ClientInfo.mjs +37 -37
  10. package/dist/account/TokenClaims.d.ts +83 -83
  11. package/dist/account/TokenClaims.mjs +20 -20
  12. package/dist/authority/Authority.d.ts +254 -253
  13. package/dist/authority/Authority.d.ts.map +1 -1
  14. package/dist/authority/Authority.mjs +815 -811
  15. package/dist/authority/Authority.mjs.map +1 -1
  16. package/dist/authority/AuthorityFactory.d.ts +31 -31
  17. package/dist/authority/AuthorityFactory.mjs +47 -47
  18. package/dist/authority/AuthorityMetadata.d.ts +503 -503
  19. package/dist/authority/AuthorityMetadata.mjs +603 -603
  20. package/dist/authority/AuthorityOptions.d.ts +27 -27
  21. package/dist/authority/AuthorityOptions.mjs +18 -18
  22. package/dist/authority/AuthorityType.d.ts +10 -10
  23. package/dist/authority/AuthorityType.mjs +13 -13
  24. package/dist/authority/AzureRegion.d.ts +1 -1
  25. package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
  26. package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
  27. package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
  28. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +8 -8
  29. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
  30. package/dist/authority/CloudInstanceDiscoveryResponse.mjs +8 -8
  31. package/dist/authority/ImdsOptions.d.ts +5 -5
  32. package/dist/authority/OIDCOptions.d.ts +8 -8
  33. package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
  34. package/dist/authority/OpenIdConfigResponse.mjs +10 -10
  35. package/dist/authority/ProtocolMode.d.ts +8 -8
  36. package/dist/authority/ProtocolMode.mjs +11 -11
  37. package/dist/authority/RegionDiscovery.d.ts +32 -32
  38. package/dist/authority/RegionDiscovery.mjs +106 -106
  39. package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
  40. package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
  41. package/dist/cache/CacheManager.d.ts +508 -517
  42. package/dist/cache/CacheManager.d.ts.map +1 -1
  43. package/dist/cache/CacheManager.mjs +1237 -1263
  44. package/dist/cache/CacheManager.mjs.map +1 -1
  45. package/dist/cache/entities/AccessTokenEntity.d.ts +25 -25
  46. package/dist/cache/entities/AccountEntity.d.ts +106 -106
  47. package/dist/cache/entities/AccountEntity.mjs +244 -244
  48. package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
  49. package/dist/cache/entities/AppMetadataEntity.mjs +66 -66
  50. package/dist/cache/entities/AuthorityMetadataEntity.d.ts +48 -48
  51. package/dist/cache/entities/AuthorityMetadataEntity.mjs +78 -78
  52. package/dist/cache/entities/CacheRecord.d.ts +14 -14
  53. package/dist/cache/entities/CacheRecord.mjs +14 -14
  54. package/dist/cache/entities/CredentialEntity.d.ts +30 -30
  55. package/dist/cache/entities/IdTokenEntity.d.ts +8 -8
  56. package/dist/cache/entities/RefreshTokenEntity.d.ts +7 -5
  57. package/dist/cache/entities/RefreshTokenEntity.d.ts.map +1 -1
  58. package/dist/cache/entities/ServerTelemetryEntity.d.ts +5 -5
  59. package/dist/cache/entities/ThrottlingEntity.d.ts +7 -13
  60. package/dist/cache/entities/ThrottlingEntity.d.ts.map +1 -1
  61. package/dist/cache/interface/ICacheManager.d.ts +166 -166
  62. package/dist/cache/interface/ICachePlugin.d.ts +5 -5
  63. package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
  64. package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
  65. package/dist/cache/persistence/TokenCacheContext.mjs +25 -25
  66. package/dist/cache/utils/CacheHelpers.d.ts +70 -64
  67. package/dist/cache/utils/CacheHelpers.d.ts.map +1 -1
  68. package/dist/cache/utils/CacheHelpers.mjs +252 -233
  69. package/dist/cache/utils/CacheHelpers.mjs.map +1 -1
  70. package/dist/cache/utils/CacheTypes.d.ts +69 -69
  71. package/dist/client/AuthorizationCodeClient.d.ts +74 -74
  72. package/dist/client/AuthorizationCodeClient.mjs +402 -402
  73. package/dist/client/BaseClient.d.ts +51 -51
  74. package/dist/client/BaseClient.mjs +100 -100
  75. package/dist/client/RefreshTokenClient.d.ts +35 -35
  76. package/dist/client/RefreshTokenClient.d.ts.map +1 -1
  77. package/dist/client/RefreshTokenClient.mjs +206 -187
  78. package/dist/client/RefreshTokenClient.mjs.map +1 -1
  79. package/dist/client/SilentFlowClient.d.ts +27 -27
  80. package/dist/client/SilentFlowClient.d.ts.map +1 -1
  81. package/dist/client/SilentFlowClient.mjs +129 -118
  82. package/dist/client/SilentFlowClient.mjs.map +1 -1
  83. package/dist/config/AppTokenProvider.d.ts +38 -38
  84. package/dist/config/ClientConfiguration.d.ts +150 -150
  85. package/dist/config/ClientConfiguration.d.ts.map +1 -1
  86. package/dist/config/ClientConfiguration.mjs +96 -98
  87. package/dist/config/ClientConfiguration.mjs.map +1 -1
  88. package/dist/constants/AADServerParamKeys.d.ts +52 -51
  89. package/dist/constants/AADServerParamKeys.d.ts.map +1 -1
  90. package/dist/constants/AADServerParamKeys.mjs +57 -56
  91. package/dist/constants/AADServerParamKeys.mjs.map +1 -1
  92. package/dist/crypto/ICrypto.d.ts +58 -58
  93. package/dist/crypto/ICrypto.mjs +30 -30
  94. package/dist/crypto/IGuidGenerator.d.ts +4 -4
  95. package/dist/crypto/JoseHeader.d.ts +22 -22
  96. package/dist/crypto/JoseHeader.mjs +37 -37
  97. package/dist/crypto/PopTokenGenerator.d.ts +60 -60
  98. package/dist/crypto/PopTokenGenerator.mjs +82 -82
  99. package/dist/crypto/SignedHttpRequest.d.ts +15 -15
  100. package/dist/error/AuthError.d.ts +44 -44
  101. package/dist/error/AuthError.mjs +46 -46
  102. package/dist/error/AuthErrorCodes.d.ts +5 -5
  103. package/dist/error/AuthErrorCodes.mjs +9 -9
  104. package/dist/error/ClientAuthError.d.ts +237 -237
  105. package/dist/error/ClientAuthError.mjs +249 -249
  106. package/dist/error/ClientAuthErrorCodes.d.ts +44 -44
  107. package/dist/error/ClientAuthErrorCodes.mjs +48 -48
  108. package/dist/error/ClientConfigurationError.d.ts +128 -128
  109. package/dist/error/ClientConfigurationError.mjs +135 -135
  110. package/dist/error/ClientConfigurationErrorCodes.d.ts +22 -22
  111. package/dist/error/ClientConfigurationErrorCodes.mjs +26 -26
  112. package/dist/error/InteractionRequiredAuthError.d.ts +61 -57
  113. package/dist/error/InteractionRequiredAuthError.d.ts.map +1 -1
  114. package/dist/error/InteractionRequiredAuthError.mjs +85 -77
  115. package/dist/error/InteractionRequiredAuthError.mjs.map +1 -1
  116. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +7 -5
  117. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts.map +1 -1
  118. package/dist/error/InteractionRequiredAuthErrorCodes.mjs +15 -13
  119. package/dist/error/InteractionRequiredAuthErrorCodes.mjs.map +1 -1
  120. package/dist/error/JoseHeaderError.d.ts +15 -15
  121. package/dist/error/JoseHeaderError.mjs +22 -22
  122. package/dist/error/JoseHeaderErrorCodes.d.ts +2 -2
  123. package/dist/error/JoseHeaderErrorCodes.mjs +6 -6
  124. package/dist/error/ServerError.d.ts +7 -7
  125. package/dist/error/ServerError.mjs +14 -14
  126. package/dist/index.cjs +8628 -8597
  127. package/dist/index.cjs.map +1 -1
  128. package/dist/index.d.ts +99 -99
  129. package/dist/index.d.ts.map +1 -1
  130. package/dist/index.mjs +2 -3
  131. package/dist/index.mjs.map +1 -1
  132. package/dist/logger/Logger.d.ts +95 -95
  133. package/dist/logger/Logger.mjs +188 -188
  134. package/dist/network/INetworkModule.d.ts +29 -29
  135. package/dist/network/INetworkModule.mjs +12 -12
  136. package/dist/network/NetworkManager.d.ts +33 -33
  137. package/dist/network/NetworkManager.mjs +34 -34
  138. package/dist/network/RequestThumbprint.d.ts +18 -18
  139. package/dist/network/ThrottlingUtils.d.ts +42 -42
  140. package/dist/network/ThrottlingUtils.mjs +95 -95
  141. package/dist/packageMetadata.d.ts +2 -2
  142. package/dist/packageMetadata.d.ts.map +1 -1
  143. package/dist/packageMetadata.mjs +4 -4
  144. package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
  145. package/dist/request/AuthenticationHeaderParser.mjs +55 -55
  146. package/dist/request/BaseAuthRequest.d.ts +43 -43
  147. package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
  148. package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
  149. package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
  150. package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
  151. package/dist/request/CommonEndSessionRequest.d.ts +21 -21
  152. package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
  153. package/dist/request/CommonRefreshTokenRequest.d.ts +22 -22
  154. package/dist/request/CommonSilentFlowRequest.d.ts +27 -20
  155. package/dist/request/CommonSilentFlowRequest.d.ts.map +1 -1
  156. package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
  157. package/dist/request/NativeRequest.d.ts +19 -19
  158. package/dist/request/NativeSignOutRequest.d.ts +5 -5
  159. package/dist/request/RequestParameterBuilder.d.ts +217 -217
  160. package/dist/request/RequestParameterBuilder.mjs +381 -381
  161. package/dist/request/RequestValidator.d.ts +33 -33
  162. package/dist/request/RequestValidator.mjs +81 -81
  163. package/dist/request/ScopeSet.d.ts +88 -88
  164. package/dist/request/ScopeSet.mjs +197 -197
  165. package/dist/request/StoreInCache.d.ts +8 -8
  166. package/dist/response/AuthenticationResult.d.ts +41 -41
  167. package/dist/response/AuthorizationCodePayload.d.ts +13 -13
  168. package/dist/response/DeviceCodeResponse.d.ts +25 -25
  169. package/dist/response/ExternalTokenResponse.d.ts +15 -15
  170. package/dist/response/IMDSBadResponse.d.ts +4 -4
  171. package/dist/response/ResponseHandler.d.ts +69 -69
  172. package/dist/response/ResponseHandler.d.ts.map +1 -1
  173. package/dist/response/ResponseHandler.mjs +346 -336
  174. package/dist/response/ResponseHandler.mjs.map +1 -1
  175. package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
  176. package/dist/response/ServerAuthorizationTokenResponse.d.ts +47 -46
  177. package/dist/response/ServerAuthorizationTokenResponse.d.ts.map +1 -1
  178. package/dist/telemetry/performance/IPerformanceClient.d.ts +57 -51
  179. package/dist/telemetry/performance/IPerformanceClient.d.ts.map +1 -1
  180. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
  181. package/dist/telemetry/performance/PerformanceClient.d.ts +198 -191
  182. package/dist/telemetry/performance/PerformanceClient.d.ts.map +1 -1
  183. package/dist/telemetry/performance/PerformanceClient.mjs +413 -409
  184. package/dist/telemetry/performance/PerformanceClient.mjs.map +1 -1
  185. package/dist/telemetry/performance/PerformanceEvent.d.ts +464 -464
  186. package/dist/telemetry/performance/PerformanceEvent.mjs +253 -253
  187. package/dist/telemetry/performance/StubPerformanceClient.d.ts +24 -24
  188. package/dist/telemetry/performance/StubPerformanceClient.d.ts.map +1 -1
  189. package/dist/telemetry/performance/StubPerformanceClient.mjs +76 -76
  190. package/dist/telemetry/performance/StubPerformanceClient.mjs.map +1 -1
  191. package/dist/telemetry/server/ServerTelemetryManager.d.ts +66 -66
  192. package/dist/telemetry/server/ServerTelemetryManager.mjs +201 -201
  193. package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
  194. package/dist/url/IUri.d.ts +12 -12
  195. package/dist/url/UrlString.d.ts +48 -48
  196. package/dist/url/UrlString.mjs +161 -161
  197. package/dist/utils/Constants.d.ts +298 -296
  198. package/dist/utils/Constants.d.ts.map +1 -1
  199. package/dist/utils/Constants.mjs +313 -310
  200. package/dist/utils/Constants.mjs.map +1 -1
  201. package/dist/utils/FunctionWrappers.d.ts +27 -27
  202. package/dist/utils/FunctionWrappers.mjs +84 -84
  203. package/dist/utils/MsalTypes.d.ts +6 -6
  204. package/dist/utils/ProtocolUtils.d.ts +42 -42
  205. package/dist/utils/ProtocolUtils.mjs +69 -69
  206. package/dist/utils/StringUtils.d.ts +40 -40
  207. package/dist/utils/StringUtils.mjs +95 -95
  208. package/dist/utils/TimeUtils.d.ts +27 -27
  209. package/dist/utils/TimeUtils.mjs +45 -45
  210. package/dist/utils/UrlUtils.d.ts +10 -10
  211. package/dist/utils/UrlUtils.mjs +44 -44
  212. package/package.json +1 -1
  213. package/src/authority/Authority.ts +9 -3
  214. package/src/cache/CacheManager.ts +0 -54
  215. package/src/cache/entities/RefreshTokenEntity.ts +3 -1
  216. package/src/cache/entities/ThrottlingEntity.ts +2 -24
  217. package/src/cache/utils/CacheHelpers.ts +26 -1
  218. package/src/client/RefreshTokenClient.ts +40 -7
  219. package/src/client/SilentFlowClient.ts +30 -10
  220. package/src/config/ClientConfiguration.ts +4 -4
  221. package/src/constants/AADServerParamKeys.ts +1 -0
  222. package/src/error/InteractionRequiredAuthError.ts +12 -0
  223. package/src/error/InteractionRequiredAuthErrorCodes.ts +2 -0
  224. package/src/index.ts +1 -0
  225. package/src/packageMetadata.ts +1 -1
  226. package/src/request/CommonSilentFlowRequest.ts +7 -0
  227. package/src/response/ResponseHandler.ts +21 -5
  228. package/src/response/ServerAuthorizationTokenResponse.ts +1 -0
  229. package/src/telemetry/performance/IPerformanceClient.ts +6 -0
  230. package/src/telemetry/performance/PerformanceClient.ts +24 -31
  231. package/src/telemetry/performance/StubPerformanceClient.ts +0 -1
  232. package/src/utils/Constants.ts +4 -0
  233. package/dist/cache/entities/ThrottlingEntity.mjs +0 -30
  234. package/dist/cache/entities/ThrottlingEntity.mjs.map +0 -1
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v14.5.0 2023-12-01 */
1
+ /*! @azure/msal-common v14.6.0-alpha.0 2023-12-15 */
2
2
  'use strict';
3
3
  import { BaseClient } from './BaseClient.mjs';
4
4
  import { TimeUtils } from '../utils/TimeUtils.mjs';
@@ -10,125 +10,136 @@ import { StringUtils } from '../utils/StringUtils.mjs';
10
10
  import { extractTokenClaims, checkMaxAge } from '../account/AuthToken.mjs';
11
11
  import { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.mjs';
12
12
  import { invokeAsync } from '../utils/FunctionWrappers.mjs';
13
+ import { getTenantFromAuthorityString } from '../authority/Authority.mjs';
13
14
  import { tokenRefreshRequired, noAccountInSilentRequest, authTimeNotFound } from '../error/ClientAuthErrorCodes.mjs';
14
15
 
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 ResponseHandler.generateAuthenticationResult(this.cryptoUtils, this.authority, cacheRecord, true, request, idTokenClaims);
131
- }
16
+ /*
17
+ * Copyright (c) Microsoft Corporation. All rights reserved.
18
+ * Licensed under the MIT License.
19
+ */
20
+ /** @internal */
21
+ class SilentFlowClient extends BaseClient {
22
+ constructor(configuration, performanceClient) {
23
+ super(configuration, performanceClient);
24
+ }
25
+ /**
26
+ * Retrieves a token from cache if it is still valid, or uses the cached refresh token to renew
27
+ * the given token and returns the renewed token
28
+ * @param request
29
+ */
30
+ async acquireToken(request) {
31
+ try {
32
+ const [authResponse, cacheOutcome] = await this.acquireCachedToken(request);
33
+ // if the token is not expired but must be refreshed; get a new one in the background
34
+ if (cacheOutcome === CacheOutcome.PROACTIVELY_REFRESHED) {
35
+ this.logger.info("SilentFlowClient:acquireCachedToken - Cached access token's refreshOn property has been exceeded'. It's not expired, but must be refreshed.");
36
+ // refresh the access token in the background
37
+ const refreshTokenClient = new RefreshTokenClient(this.config, this.performanceClient);
38
+ refreshTokenClient
39
+ .acquireTokenByRefreshToken(request)
40
+ .catch(() => {
41
+ // do nothing, this is running in the background and no action is to be taken upon success or failure
42
+ });
43
+ }
44
+ // return the cached token
45
+ return authResponse;
46
+ }
47
+ catch (e) {
48
+ if (e instanceof ClientAuthError &&
49
+ e.errorCode === tokenRefreshRequired) {
50
+ const refreshTokenClient = new RefreshTokenClient(this.config, this.performanceClient);
51
+ return refreshTokenClient.acquireTokenByRefreshToken(request);
52
+ }
53
+ else {
54
+ throw e;
55
+ }
56
+ }
57
+ }
58
+ /**
59
+ * Retrieves token from cache or throws an error if it must be refreshed.
60
+ * @param request
61
+ */
62
+ async acquireCachedToken(request) {
63
+ this.performanceClient?.addQueueMeasurement(PerformanceEvents.SilentFlowClientAcquireCachedToken, request.correlationId);
64
+ let lastCacheOutcome = CacheOutcome.NOT_APPLICABLE;
65
+ if (request.forceRefresh ||
66
+ (!this.config.cacheOptions.claimsBasedCachingEnabled &&
67
+ !StringUtils.isEmptyObj(request.claims))) {
68
+ // Must refresh due to present force_refresh flag.
69
+ this.setCacheOutcome(CacheOutcome.FORCE_REFRESH_OR_CLAIMS, request.correlationId);
70
+ throw createClientAuthError(tokenRefreshRequired);
71
+ }
72
+ // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases
73
+ if (!request.account) {
74
+ throw createClientAuthError(noAccountInSilentRequest);
75
+ }
76
+ const requestTenantId = request.account.tenantId ||
77
+ getTenantFromAuthorityString(request.authority);
78
+ const tokenKeys = this.cacheManager.getTokenKeys();
79
+ const cachedAccessToken = this.cacheManager.getAccessToken(request.account, request, tokenKeys, requestTenantId, this.performanceClient, request.correlationId);
80
+ if (!cachedAccessToken) {
81
+ // must refresh due to non-existent access_token
82
+ this.setCacheOutcome(CacheOutcome.NO_CACHED_ACCESS_TOKEN, request.correlationId);
83
+ throw createClientAuthError(tokenRefreshRequired);
84
+ }
85
+ else if (TimeUtils.wasClockTurnedBack(cachedAccessToken.cachedAt) ||
86
+ TimeUtils.isTokenExpired(cachedAccessToken.expiresOn, this.config.systemOptions.tokenRenewalOffsetSeconds)) {
87
+ // must refresh due to the expires_in value
88
+ this.setCacheOutcome(CacheOutcome.CACHED_ACCESS_TOKEN_EXPIRED, request.correlationId);
89
+ throw createClientAuthError(tokenRefreshRequired);
90
+ }
91
+ else if (cachedAccessToken.refreshOn &&
92
+ TimeUtils.isTokenExpired(cachedAccessToken.refreshOn, 0)) {
93
+ // must refresh (in the background) due to the refresh_in value
94
+ lastCacheOutcome = CacheOutcome.PROACTIVELY_REFRESHED;
95
+ // don't throw ClientAuthError.createRefreshRequiredError(), return cached token instead
96
+ }
97
+ const environment = request.authority || this.authority.getPreferredCache();
98
+ const cacheRecord = {
99
+ account: this.cacheManager.readAccountFromCache(request.account),
100
+ accessToken: cachedAccessToken,
101
+ idToken: this.cacheManager.getIdToken(request.account, tokenKeys, requestTenantId, this.performanceClient, request.correlationId),
102
+ refreshToken: null,
103
+ appMetadata: this.cacheManager.readAppMetadataFromCache(environment),
104
+ };
105
+ this.setCacheOutcome(lastCacheOutcome, request.correlationId);
106
+ if (this.config.serverTelemetryManager) {
107
+ this.config.serverTelemetryManager.incrementCacheHits();
108
+ }
109
+ return [
110
+ await invokeAsync(this.generateResultFromCacheRecord.bind(this), PerformanceEvents.SilentFlowClientGenerateResultFromCacheRecord, this.logger, this.performanceClient, request.correlationId)(cacheRecord, request),
111
+ lastCacheOutcome,
112
+ ];
113
+ }
114
+ setCacheOutcome(cacheOutcome, correlationId) {
115
+ this.serverTelemetryManager?.setCacheOutcome(cacheOutcome);
116
+ this.performanceClient?.addFields({
117
+ cacheOutcome: cacheOutcome,
118
+ }, correlationId);
119
+ if (cacheOutcome !== CacheOutcome.NOT_APPLICABLE) {
120
+ this.logger.info(`Token refresh is required due to cache outcome: ${cacheOutcome}`);
121
+ }
122
+ }
123
+ /**
124
+ * Helper function to build response object from the CacheRecord
125
+ * @param cacheRecord
126
+ */
127
+ async generateResultFromCacheRecord(cacheRecord, request) {
128
+ this.performanceClient?.addQueueMeasurement(PerformanceEvents.SilentFlowClientGenerateResultFromCacheRecord, request.correlationId);
129
+ let idTokenClaims;
130
+ if (cacheRecord.idToken) {
131
+ idTokenClaims = extractTokenClaims(cacheRecord.idToken.secret, this.config.cryptoInterface.base64Decode);
132
+ }
133
+ // token max_age check
134
+ if (request.maxAge || request.maxAge === 0) {
135
+ const authTime = idTokenClaims?.auth_time;
136
+ if (!authTime) {
137
+ throw createClientAuthError(authTimeNotFound);
138
+ }
139
+ checkMaxAge(authTime, request.maxAge);
140
+ }
141
+ return ResponseHandler.generateAuthenticationResult(this.cryptoUtils, this.authority, cacheRecord, true, request, idTokenClaims);
142
+ }
132
143
  }
133
144
 
134
145
  export { SilentFlowClient };
@@ -1 +1 @@
1
- {"version":3,"file":"SilentFlowClient.mjs","sources":["../../src/client/SilentFlowClient.ts"],"sourcesContent":[null],"names":["ClientAuthErrorCodes.tokenRefreshRequired","ClientAuthErrorCodes.noAccountInSilentRequest","ClientAuthErrorCodes.authTimeNotFound"],"mappings":"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"}
1
+ {"version":3,"file":"SilentFlowClient.mjs","sources":["../../src/client/SilentFlowClient.ts"],"sourcesContent":[null],"names":["ClientAuthErrorCodes.tokenRefreshRequired","ClientAuthErrorCodes.noAccountInSilentRequest","ClientAuthErrorCodes.authTimeNotFound"],"mappings":"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"}
@@ -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