@azure/msal-common 14.4.1-beta.1 → 14.5.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 (288) hide show
  1. package/dist/account/AccountInfo.d.ts +58 -31
  2. package/dist/account/AccountInfo.d.ts.map +1 -1
  3. package/dist/account/AccountInfo.mjs +64 -0
  4. package/dist/account/AccountInfo.mjs.map +1 -0
  5. package/dist/account/AuthToken.d.ts +17 -17
  6. package/dist/account/AuthToken.mjs +58 -58
  7. package/dist/account/AuthToken.mjs.map +1 -1
  8. package/dist/account/CcsCredential.d.ts +9 -9
  9. package/dist/account/CcsCredential.mjs +8 -8
  10. package/dist/account/CcsCredential.mjs.map +1 -1
  11. package/dist/account/ClientCredentials.d.ts +14 -14
  12. package/dist/account/ClientInfo.d.ts +18 -19
  13. package/dist/account/ClientInfo.d.ts.map +1 -1
  14. package/dist/account/ClientInfo.mjs +37 -37
  15. package/dist/account/ClientInfo.mjs.map +1 -1
  16. package/dist/account/TokenClaims.d.ts +83 -65
  17. package/dist/account/TokenClaims.d.ts.map +1 -1
  18. package/dist/account/TokenClaims.mjs +25 -0
  19. package/dist/account/TokenClaims.mjs.map +1 -0
  20. package/dist/authority/Authority.d.ts +253 -249
  21. package/dist/authority/Authority.d.ts.map +1 -1
  22. package/dist/authority/Authority.mjs +812 -789
  23. package/dist/authority/Authority.mjs.map +1 -1
  24. package/dist/authority/AuthorityFactory.d.ts +31 -31
  25. package/dist/authority/AuthorityFactory.mjs +47 -47
  26. package/dist/authority/AuthorityFactory.mjs.map +1 -1
  27. package/dist/authority/AuthorityMetadata.d.ts +503 -503
  28. package/dist/authority/AuthorityMetadata.mjs +603 -603
  29. package/dist/authority/AuthorityMetadata.mjs.map +1 -1
  30. package/dist/authority/AuthorityOptions.d.ts +27 -27
  31. package/dist/authority/AuthorityOptions.mjs +18 -18
  32. package/dist/authority/AuthorityOptions.mjs.map +1 -1
  33. package/dist/authority/AuthorityType.d.ts +10 -10
  34. package/dist/authority/AuthorityType.mjs +13 -13
  35. package/dist/authority/AuthorityType.mjs.map +1 -1
  36. package/dist/authority/AzureRegion.d.ts +1 -1
  37. package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
  38. package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
  39. package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
  40. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +8 -8
  41. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs.map +1 -1
  42. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
  43. package/dist/authority/CloudInstanceDiscoveryResponse.mjs +8 -8
  44. package/dist/authority/CloudInstanceDiscoveryResponse.mjs.map +1 -1
  45. package/dist/authority/ImdsOptions.d.ts +5 -5
  46. package/dist/authority/OIDCOptions.d.ts +8 -8
  47. package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
  48. package/dist/authority/OpenIdConfigResponse.mjs +10 -10
  49. package/dist/authority/OpenIdConfigResponse.mjs.map +1 -1
  50. package/dist/authority/ProtocolMode.d.ts +8 -8
  51. package/dist/authority/ProtocolMode.mjs +11 -11
  52. package/dist/authority/ProtocolMode.mjs.map +1 -1
  53. package/dist/authority/RegionDiscovery.d.ts +32 -32
  54. package/dist/authority/RegionDiscovery.mjs +106 -106
  55. package/dist/authority/RegionDiscovery.mjs.map +1 -1
  56. package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
  57. package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
  58. package/dist/cache/CacheManager.d.ts +517 -485
  59. package/dist/cache/CacheManager.d.ts.map +1 -1
  60. package/dist/cache/CacheManager.mjs +1264 -1102
  61. package/dist/cache/CacheManager.mjs.map +1 -1
  62. package/dist/cache/entities/AccessTokenEntity.d.ts +25 -25
  63. package/dist/cache/entities/AccountEntity.d.ts +106 -101
  64. package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
  65. package/dist/cache/entities/AccountEntity.mjs +247 -219
  66. package/dist/cache/entities/AccountEntity.mjs.map +1 -1
  67. package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
  68. package/dist/cache/entities/AppMetadataEntity.mjs +66 -66
  69. package/dist/cache/entities/AppMetadataEntity.mjs.map +1 -1
  70. package/dist/cache/entities/AuthorityMetadataEntity.d.ts +48 -48
  71. package/dist/cache/entities/AuthorityMetadataEntity.mjs +78 -78
  72. package/dist/cache/entities/AuthorityMetadataEntity.mjs.map +1 -1
  73. package/dist/cache/entities/CacheRecord.d.ts +14 -14
  74. package/dist/cache/entities/CacheRecord.mjs +14 -14
  75. package/dist/cache/entities/CacheRecord.mjs.map +1 -1
  76. package/dist/cache/entities/CredentialEntity.d.ts +30 -30
  77. package/dist/cache/entities/IdTokenEntity.d.ts +8 -8
  78. package/dist/cache/entities/RefreshTokenEntity.d.ts +5 -7
  79. package/dist/cache/entities/RefreshTokenEntity.d.ts.map +1 -1
  80. package/dist/cache/entities/ServerTelemetryEntity.d.ts +5 -5
  81. package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
  82. package/dist/cache/entities/ThrottlingEntity.mjs +23 -23
  83. package/dist/cache/entities/ThrottlingEntity.mjs.map +1 -1
  84. package/dist/cache/interface/ICacheManager.d.ts +166 -166
  85. package/dist/cache/interface/ICachePlugin.d.ts +5 -5
  86. package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
  87. package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
  88. package/dist/cache/persistence/TokenCacheContext.mjs +25 -25
  89. package/dist/cache/persistence/TokenCacheContext.mjs.map +1 -1
  90. package/dist/cache/utils/CacheHelpers.d.ts +64 -64
  91. package/dist/cache/utils/CacheHelpers.d.ts.map +1 -1
  92. package/dist/cache/utils/CacheHelpers.mjs +231 -234
  93. package/dist/cache/utils/CacheHelpers.mjs.map +1 -1
  94. package/dist/cache/utils/CacheTypes.d.ts +69 -67
  95. package/dist/cache/utils/CacheTypes.d.ts.map +1 -1
  96. package/dist/client/AuthorizationCodeClient.d.ts +74 -74
  97. package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
  98. package/dist/client/AuthorizationCodeClient.mjs +404 -403
  99. package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
  100. package/dist/client/BaseClient.d.ts +51 -51
  101. package/dist/client/BaseClient.mjs +100 -100
  102. package/dist/client/BaseClient.mjs.map +1 -1
  103. package/dist/client/RefreshTokenClient.d.ts +35 -35
  104. package/dist/client/RefreshTokenClient.d.ts.map +1 -1
  105. package/dist/client/RefreshTokenClient.mjs +189 -194
  106. package/dist/client/RefreshTokenClient.mjs.map +1 -1
  107. package/dist/client/SilentFlowClient.d.ts +27 -27
  108. package/dist/client/SilentFlowClient.mjs +118 -118
  109. package/dist/client/SilentFlowClient.mjs.map +1 -1
  110. package/dist/config/AppTokenProvider.d.ts +38 -38
  111. package/dist/config/ClientConfiguration.d.ts +150 -150
  112. package/dist/config/ClientConfiguration.mjs +97 -97
  113. package/dist/config/ClientConfiguration.mjs.map +1 -1
  114. package/dist/constants/AADServerParamKeys.d.ts +52 -0
  115. package/dist/constants/AADServerParamKeys.d.ts.map +1 -0
  116. package/dist/constants/AADServerParamKeys.mjs +60 -0
  117. package/dist/constants/AADServerParamKeys.mjs.map +1 -0
  118. package/dist/crypto/ICrypto.d.ts +58 -58
  119. package/dist/crypto/ICrypto.mjs +30 -30
  120. package/dist/crypto/ICrypto.mjs.map +1 -1
  121. package/dist/crypto/IGuidGenerator.d.ts +4 -4
  122. package/dist/crypto/JoseHeader.d.ts +22 -22
  123. package/dist/crypto/JoseHeader.mjs +37 -37
  124. package/dist/crypto/JoseHeader.mjs.map +1 -1
  125. package/dist/crypto/PopTokenGenerator.d.ts +60 -60
  126. package/dist/crypto/PopTokenGenerator.mjs +82 -82
  127. package/dist/crypto/PopTokenGenerator.mjs.map +1 -1
  128. package/dist/crypto/SignedHttpRequest.d.ts +15 -15
  129. package/dist/error/AuthError.d.ts +44 -44
  130. package/dist/error/AuthError.mjs +46 -46
  131. package/dist/error/AuthError.mjs.map +1 -1
  132. package/dist/error/AuthErrorCodes.d.ts +5 -5
  133. package/dist/error/AuthErrorCodes.mjs +9 -9
  134. package/dist/error/AuthErrorCodes.mjs.map +1 -1
  135. package/dist/error/ClientAuthError.d.ts +237 -237
  136. package/dist/error/ClientAuthError.mjs +249 -249
  137. package/dist/error/ClientAuthError.mjs.map +1 -1
  138. package/dist/error/ClientAuthErrorCodes.d.ts +44 -44
  139. package/dist/error/ClientAuthErrorCodes.mjs +48 -48
  140. package/dist/error/ClientAuthErrorCodes.mjs.map +1 -1
  141. package/dist/error/ClientConfigurationError.d.ts +128 -128
  142. package/dist/error/ClientConfigurationError.mjs +135 -135
  143. package/dist/error/ClientConfigurationError.mjs.map +1 -1
  144. package/dist/error/ClientConfigurationErrorCodes.d.ts +22 -22
  145. package/dist/error/ClientConfigurationErrorCodes.mjs +26 -26
  146. package/dist/error/ClientConfigurationErrorCodes.mjs.map +1 -1
  147. package/dist/error/InteractionRequiredAuthError.d.ts +57 -57
  148. package/dist/error/InteractionRequiredAuthError.d.ts.map +1 -1
  149. package/dist/error/InteractionRequiredAuthError.mjs +77 -78
  150. package/dist/error/InteractionRequiredAuthError.mjs.map +1 -1
  151. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +5 -6
  152. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts.map +1 -1
  153. package/dist/error/InteractionRequiredAuthErrorCodes.mjs +12 -13
  154. package/dist/error/InteractionRequiredAuthErrorCodes.mjs.map +1 -1
  155. package/dist/error/JoseHeaderError.d.ts +15 -15
  156. package/dist/error/JoseHeaderError.mjs +22 -22
  157. package/dist/error/JoseHeaderError.mjs.map +1 -1
  158. package/dist/error/JoseHeaderErrorCodes.d.ts +2 -2
  159. package/dist/error/JoseHeaderErrorCodes.mjs +6 -6
  160. package/dist/error/JoseHeaderErrorCodes.mjs.map +1 -1
  161. package/dist/error/ServerError.d.ts +7 -7
  162. package/dist/error/ServerError.mjs +14 -14
  163. package/dist/error/ServerError.mjs.map +1 -1
  164. package/dist/index.cjs +8645 -8295
  165. package/dist/index.cjs.map +1 -1
  166. package/dist/index.d.ts +99 -98
  167. package/dist/index.d.ts.map +1 -1
  168. package/dist/index.mjs +7 -3
  169. package/dist/index.mjs.map +1 -1
  170. package/dist/logger/Logger.d.ts +95 -95
  171. package/dist/logger/Logger.mjs +188 -188
  172. package/dist/logger/Logger.mjs.map +1 -1
  173. package/dist/network/INetworkModule.d.ts +29 -29
  174. package/dist/network/INetworkModule.mjs +12 -12
  175. package/dist/network/INetworkModule.mjs.map +1 -1
  176. package/dist/network/NetworkManager.d.ts +33 -33
  177. package/dist/network/NetworkManager.mjs +34 -34
  178. package/dist/network/NetworkManager.mjs.map +1 -1
  179. package/dist/network/RequestThumbprint.d.ts +18 -18
  180. package/dist/network/ThrottlingUtils.d.ts +42 -42
  181. package/dist/network/ThrottlingUtils.mjs +95 -95
  182. package/dist/network/ThrottlingUtils.mjs.map +1 -1
  183. package/dist/packageMetadata.d.ts +2 -2
  184. package/dist/packageMetadata.d.ts.map +1 -1
  185. package/dist/packageMetadata.mjs +4 -4
  186. package/dist/packageMetadata.mjs.map +1 -1
  187. package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
  188. package/dist/request/AuthenticationHeaderParser.mjs +55 -55
  189. package/dist/request/AuthenticationHeaderParser.mjs.map +1 -1
  190. package/dist/request/BaseAuthRequest.d.ts +43 -43
  191. package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
  192. package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
  193. package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
  194. package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
  195. package/dist/request/CommonEndSessionRequest.d.ts +21 -21
  196. package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
  197. package/dist/request/CommonRefreshTokenRequest.d.ts +22 -23
  198. package/dist/request/CommonRefreshTokenRequest.d.ts.map +1 -1
  199. package/dist/request/CommonSilentFlowRequest.d.ts +20 -21
  200. package/dist/request/CommonSilentFlowRequest.d.ts.map +1 -1
  201. package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
  202. package/dist/request/NativeRequest.d.ts +19 -19
  203. package/dist/request/NativeSignOutRequest.d.ts +5 -5
  204. package/dist/request/RequestParameterBuilder.d.ts +217 -217
  205. package/dist/request/RequestParameterBuilder.d.ts.map +1 -1
  206. package/dist/request/RequestParameterBuilder.mjs +383 -382
  207. package/dist/request/RequestParameterBuilder.mjs.map +1 -1
  208. package/dist/request/RequestValidator.d.ts +33 -33
  209. package/dist/request/RequestValidator.mjs +81 -81
  210. package/dist/request/RequestValidator.mjs.map +1 -1
  211. package/dist/request/ScopeSet.d.ts +88 -88
  212. package/dist/request/ScopeSet.mjs +197 -197
  213. package/dist/request/ScopeSet.mjs.map +1 -1
  214. package/dist/request/StoreInCache.d.ts +8 -8
  215. package/dist/response/AuthenticationResult.d.ts +41 -41
  216. package/dist/response/AuthorizationCodePayload.d.ts +13 -13
  217. package/dist/response/DeviceCodeResponse.d.ts +25 -25
  218. package/dist/response/ExternalTokenResponse.d.ts +15 -15
  219. package/dist/response/IMDSBadResponse.d.ts +4 -4
  220. package/dist/response/ResponseHandler.d.ts +69 -67
  221. package/dist/response/ResponseHandler.d.ts.map +1 -1
  222. package/dist/response/ResponseHandler.mjs +339 -313
  223. package/dist/response/ResponseHandler.mjs.map +1 -1
  224. package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
  225. package/dist/response/ServerAuthorizationTokenResponse.d.ts +46 -46
  226. package/dist/telemetry/performance/IPerformanceClient.d.ts +51 -51
  227. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
  228. package/dist/telemetry/performance/PerformanceClient.d.ts +191 -191
  229. package/dist/telemetry/performance/PerformanceClient.mjs +409 -409
  230. package/dist/telemetry/performance/PerformanceClient.mjs.map +1 -1
  231. package/dist/telemetry/performance/PerformanceEvent.d.ts +464 -464
  232. package/dist/telemetry/performance/PerformanceEvent.mjs +253 -253
  233. package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
  234. package/dist/telemetry/performance/StubPerformanceClient.d.ts +24 -24
  235. package/dist/telemetry/performance/StubPerformanceClient.mjs +76 -76
  236. package/dist/telemetry/performance/StubPerformanceClient.mjs.map +1 -1
  237. package/dist/telemetry/server/ServerTelemetryManager.d.ts +66 -66
  238. package/dist/telemetry/server/ServerTelemetryManager.mjs +201 -201
  239. package/dist/telemetry/server/ServerTelemetryManager.mjs.map +1 -1
  240. package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
  241. package/dist/url/IUri.d.ts +12 -12
  242. package/dist/url/UrlString.d.ts +48 -48
  243. package/dist/url/UrlString.mjs +161 -161
  244. package/dist/url/UrlString.mjs.map +1 -1
  245. package/dist/utils/Constants.d.ts +296 -365
  246. package/dist/utils/Constants.d.ts.map +1 -1
  247. package/dist/utils/Constants.mjs +309 -376
  248. package/dist/utils/Constants.mjs.map +1 -1
  249. package/dist/utils/FunctionWrappers.d.ts +27 -27
  250. package/dist/utils/FunctionWrappers.mjs +84 -84
  251. package/dist/utils/FunctionWrappers.mjs.map +1 -1
  252. package/dist/utils/MsalTypes.d.ts +6 -6
  253. package/dist/utils/ProtocolUtils.d.ts +42 -42
  254. package/dist/utils/ProtocolUtils.mjs +69 -69
  255. package/dist/utils/ProtocolUtils.mjs.map +1 -1
  256. package/dist/utils/StringUtils.d.ts +40 -40
  257. package/dist/utils/StringUtils.mjs +95 -95
  258. package/dist/utils/StringUtils.mjs.map +1 -1
  259. package/dist/utils/TimeUtils.d.ts +27 -27
  260. package/dist/utils/TimeUtils.mjs +45 -45
  261. package/dist/utils/TimeUtils.mjs.map +1 -1
  262. package/dist/utils/UrlUtils.d.ts +10 -10
  263. package/dist/utils/UrlUtils.mjs +44 -44
  264. package/dist/utils/UrlUtils.mjs.map +1 -1
  265. package/package.json +93 -92
  266. package/src/account/AccountInfo.ts +96 -0
  267. package/src/account/ClientInfo.ts +2 -3
  268. package/src/account/TokenClaims.ts +28 -0
  269. package/src/authority/Authority.ts +29 -2
  270. package/src/cache/CacheManager.ts +416 -114
  271. package/src/cache/entities/AccountEntity.ts +84 -33
  272. package/src/cache/entities/RefreshTokenEntity.ts +1 -3
  273. package/src/cache/utils/CacheHelpers.ts +1 -6
  274. package/src/cache/utils/CacheTypes.ts +11 -0
  275. package/src/client/AuthorizationCodeClient.ts +4 -5
  276. package/src/client/RefreshTokenClient.ts +3 -15
  277. package/src/client/SilentFlowClient.ts +1 -1
  278. package/src/constants/AADServerParamKeys.ts +56 -0
  279. package/src/crypto/PopTokenGenerator.ts +1 -1
  280. package/src/error/InteractionRequiredAuthError.ts +0 -2
  281. package/src/error/InteractionRequiredAuthErrorCodes.ts +0 -1
  282. package/src/index.ts +17 -5
  283. package/src/packageMetadata.ts +1 -1
  284. package/src/request/CommonRefreshTokenRequest.ts +0 -1
  285. package/src/request/CommonSilentFlowRequest.ts +0 -1
  286. package/src/request/RequestParameterBuilder.ts +7 -5
  287. package/src/response/ResponseHandler.ts +95 -27
  288. package/src/utils/Constants.ts +0 -72
@@ -42,8 +42,15 @@ import { BaseAuthRequest } from "../request/BaseAuthRequest";
42
42
  import { IPerformanceClient } from "../telemetry/performance/IPerformanceClient";
43
43
  import { PerformanceEvents } from "../telemetry/performance/PerformanceEvent";
44
44
  import { checkMaxAge, extractTokenClaims } from "../account/AuthToken";
45
- import { TokenClaims } from "../account/TokenClaims";
46
- import { AccountInfo } from "../account/AccountInfo";
45
+ import {
46
+ TokenClaims,
47
+ getTenantIdFromIdTokenClaims,
48
+ } from "../account/TokenClaims";
49
+ import {
50
+ AccountInfo,
51
+ buildTenantProfileFromIdTokenClaims,
52
+ updateAccountTenantProfileData,
53
+ } from "../account/AccountInfo";
47
54
  import * as CacheHelpers from "../cache/utils/CacheHelpers";
48
55
 
49
56
  /**
@@ -245,8 +252,7 @@ export class ResponseHandler {
245
252
  userAssertionHash?: string,
246
253
  handlingRefreshTokenResponse?: boolean,
247
254
  forceCacheRefreshTokenResponse?: boolean,
248
- serverRequestId?: string,
249
- rtExpiresOn?: string
255
+ serverRequestId?: string
250
256
  ): Promise<AuthenticationResult> {
251
257
  this.performanceClient?.addQueueMeasurement(
252
258
  PerformanceEvents.HandleServerTokenResponse,
@@ -312,8 +318,7 @@ export class ResponseHandler {
312
318
  request,
313
319
  idTokenClaims,
314
320
  userAssertionHash,
315
- authCodePayload,
316
- rtExpiresOn
321
+ authCodePayload
317
322
  );
318
323
  let cacheContext;
319
324
  try {
@@ -339,12 +344,12 @@ export class ResponseHandler {
339
344
  cacheRecord.account
340
345
  ) {
341
346
  const key = cacheRecord.account.generateAccountKey();
342
- const account = this.cacheStorage.getAccount(key);
347
+ const account = this.cacheStorage.getAccount(key, this.logger);
343
348
  if (!account) {
344
349
  this.logger.warning(
345
350
  "Account used to refresh tokens not in persistence, refreshed tokens will not be stored in the cache"
346
351
  );
347
- return ResponseHandler.generateAuthenticationResult(
352
+ return await ResponseHandler.generateAuthenticationResult(
348
353
  this.cryptoObj,
349
354
  authority,
350
355
  cacheRecord,
@@ -373,6 +378,7 @@ export class ResponseHandler {
373
378
  await this.persistencePlugin.afterCacheAccess(cacheContext);
374
379
  }
375
380
  }
381
+
376
382
  return ResponseHandler.generateAuthenticationResult(
377
383
  this.cryptoObj,
378
384
  authority,
@@ -399,8 +405,7 @@ export class ResponseHandler {
399
405
  request: BaseAuthRequest,
400
406
  idTokenClaims?: TokenClaims,
401
407
  userAssertionHash?: string,
402
- authCodePayload?: AuthorizationCodePayload,
403
- rtExpiresOn?: string
408
+ authCodePayload?: AuthorizationCodePayload
404
409
  ): CacheRecord {
405
410
  const env = authority.getPreferredCache();
406
411
  if (!env) {
@@ -409,6 +414,8 @@ export class ResponseHandler {
409
414
  );
410
415
  }
411
416
 
417
+ const claimsTenantId = getTenantIdFromIdTokenClaims(idTokenClaims);
418
+
412
419
  // IdToken: non AAD scenarios can have empty realm
413
420
  let cachedIdToken: IdTokenEntity | undefined;
414
421
  let cachedAccount: AccountEntity | undefined;
@@ -418,18 +425,20 @@ export class ResponseHandler {
418
425
  env,
419
426
  serverTokenResponse.id_token,
420
427
  this.clientId,
421
- idTokenClaims.tid || ""
428
+ claimsTenantId || ""
422
429
  );
423
430
 
424
- cachedAccount = AccountEntity.createAccount(
425
- {
426
- homeAccountId: this.homeAccountIdentifier,
427
- idTokenClaims: idTokenClaims,
428
- clientInfo: serverTokenResponse.client_info,
429
- cloudGraphHostName: authCodePayload?.cloud_graph_host_name,
430
- msGraphHost: authCodePayload?.msgraph_host,
431
- },
432
- authority
431
+ cachedAccount = buildAccountToCache(
432
+ this.cacheStorage,
433
+ authority,
434
+ this.homeAccountIdentifier,
435
+ idTokenClaims,
436
+ this.cryptoObj.base64Decode,
437
+ serverTokenResponse.client_info,
438
+ claimsTenantId,
439
+ authCodePayload,
440
+ undefined,
441
+ this.logger
433
442
  );
434
443
  }
435
444
 
@@ -471,7 +480,7 @@ export class ResponseHandler {
471
480
  env,
472
481
  serverTokenResponse.access_token,
473
482
  this.clientId,
474
- idTokenClaims?.tid || authority.tenant,
483
+ claimsTenantId || authority.tenant,
475
484
  responseScopes.printScopes(),
476
485
  tokenExpirationSeconds,
477
486
  extendedTokenExpirationSeconds,
@@ -494,8 +503,7 @@ export class ResponseHandler {
494
503
  serverTokenResponse.refresh_token,
495
504
  this.clientId,
496
505
  serverTokenResponse.foci,
497
- userAssertionHash,
498
- rtExpiresOn
506
+ userAssertionHash
499
507
  );
500
508
  }
501
509
 
@@ -600,10 +608,11 @@ export class ResponseHandler {
600
608
  }
601
609
 
602
610
  const accountInfo: AccountInfo | null = cacheRecord.account
603
- ? {
604
- ...cacheRecord.account.getAccountInfo(),
605
- idTokenClaims,
606
- }
611
+ ? updateAccountTenantProfileData(
612
+ cacheRecord.account.getAccountInfo(),
613
+ undefined, // tenantProfile optional
614
+ idTokenClaims
615
+ )
607
616
  : null;
608
617
 
609
618
  return {
@@ -637,3 +646,62 @@ export class ResponseHandler {
637
646
  };
638
647
  }
639
648
  }
649
+
650
+ export function buildAccountToCache(
651
+ cacheStorage: CacheManager,
652
+ authority: Authority,
653
+ homeAccountId: string,
654
+ idTokenClaims: TokenClaims,
655
+ base64Decode: (input: string) => string,
656
+ clientInfo?: string,
657
+ claimsTenantId?: string | null,
658
+ authCodePayload?: AuthorizationCodePayload,
659
+ nativeAccountId?: string,
660
+ logger?: Logger
661
+ ): AccountEntity {
662
+ logger?.verbose("setCachedAccount called");
663
+
664
+ // Check if base account is already cached
665
+ const accountKeys = cacheStorage.getAccountKeys();
666
+ const baseAccountKey = accountKeys.find((accountKey: string) => {
667
+ return accountKey.startsWith(homeAccountId);
668
+ });
669
+
670
+ let cachedAccount: AccountEntity | null = null;
671
+ if (baseAccountKey) {
672
+ cachedAccount = cacheStorage.getAccount(baseAccountKey, logger);
673
+ }
674
+
675
+ const baseAccount =
676
+ cachedAccount ||
677
+ AccountEntity.createAccount(
678
+ {
679
+ homeAccountId: homeAccountId,
680
+ idTokenClaims: idTokenClaims,
681
+ clientInfo: clientInfo,
682
+ cloudGraphHostName: authCodePayload?.cloud_graph_host_name,
683
+ msGraphHost: authCodePayload?.msgraph_host,
684
+ nativeAccountId: nativeAccountId,
685
+ },
686
+ authority,
687
+ base64Decode
688
+ );
689
+
690
+ const tenantProfiles = baseAccount.tenantProfiles || [];
691
+
692
+ if (
693
+ claimsTenantId &&
694
+ !tenantProfiles.find((tenantProfile) => {
695
+ return tenantProfile.tenantId === claimsTenantId;
696
+ })
697
+ ) {
698
+ const newTenantProfile = buildTenantProfileFromIdTokenClaims(
699
+ homeAccountId,
700
+ idTokenClaims
701
+ );
702
+ tenantProfiles.push(newTenantProfile);
703
+ }
704
+ baseAccount.tenantProfiles = tenantProfiles;
705
+
706
+ return baseAccount;
707
+ }
@@ -122,62 +122,6 @@ export const AADAuthorityConstants = {
122
122
  export type AADAuthorityConstants =
123
123
  (typeof AADAuthorityConstants)[keyof typeof AADAuthorityConstants];
124
124
 
125
- /**
126
- * Keys in the hashParams sent by AAD Server
127
- */
128
- export const AADServerParamKeys = {
129
- CLIENT_ID: "client_id",
130
- REDIRECT_URI: "redirect_uri",
131
- RESPONSE_TYPE: "response_type",
132
- RESPONSE_MODE: "response_mode",
133
- GRANT_TYPE: "grant_type",
134
- CLAIMS: "claims",
135
- SCOPE: "scope",
136
- ERROR: "error",
137
- ERROR_DESCRIPTION: "error_description",
138
- ACCESS_TOKEN: "access_token",
139
- ID_TOKEN: "id_token",
140
- REFRESH_TOKEN: "refresh_token",
141
- EXPIRES_IN: "expires_in",
142
- STATE: "state",
143
- NONCE: "nonce",
144
- PROMPT: "prompt",
145
- SESSION_STATE: "session_state",
146
- CLIENT_INFO: "client_info",
147
- CODE: "code",
148
- CODE_CHALLENGE: "code_challenge",
149
- CODE_CHALLENGE_METHOD: "code_challenge_method",
150
- CODE_VERIFIER: "code_verifier",
151
- CLIENT_REQUEST_ID: "client-request-id",
152
- X_CLIENT_SKU: "x-client-SKU",
153
- X_CLIENT_VER: "x-client-VER",
154
- X_CLIENT_OS: "x-client-OS",
155
- X_CLIENT_CPU: "x-client-CPU",
156
- X_CLIENT_CURR_TELEM: "x-client-current-telemetry",
157
- X_CLIENT_LAST_TELEM: "x-client-last-telemetry",
158
- X_MS_LIB_CAPABILITY: "x-ms-lib-capability",
159
- X_APP_NAME: "x-app-name",
160
- X_APP_VER: "x-app-ver",
161
- POST_LOGOUT_URI: "post_logout_redirect_uri",
162
- ID_TOKEN_HINT: "id_token_hint",
163
- DEVICE_CODE: "device_code",
164
- CLIENT_SECRET: "client_secret",
165
- CLIENT_ASSERTION: "client_assertion",
166
- CLIENT_ASSERTION_TYPE: "client_assertion_type",
167
- TOKEN_TYPE: "token_type",
168
- REQ_CNF: "req_cnf",
169
- OBO_ASSERTION: "assertion",
170
- REQUESTED_TOKEN_USE: "requested_token_use",
171
- ON_BEHALF_OF: "on_behalf_of",
172
- FOCI: "foci",
173
- CCS_HEADER: "X-AnchorMailbox",
174
- RETURN_SPA_CODE: "return_spa_code",
175
- NATIVE_BROKER: "nativebroker",
176
- LOGOUT_HINT: "logout_hint",
177
- } as const;
178
- export type AADServerParamKeys =
179
- (typeof AADServerParamKeys)[keyof typeof AADServerParamKeys];
180
-
181
125
  /**
182
126
  * Claims request keys
183
127
  */
@@ -202,22 +146,6 @@ export const PromptValue = {
202
146
  NO_SESSION: "no_session",
203
147
  };
204
148
 
205
- /**
206
- * SSO Types - generated to populate hints
207
- */
208
- export const SSOTypes = {
209
- ACCOUNT: "account",
210
- SID: "sid",
211
- LOGIN_HINT: "login_hint",
212
- ID_TOKEN: "id_token",
213
- DOMAIN_HINT: "domain_hint",
214
- ORGANIZATIONS: "organizations",
215
- CONSUMERS: "consumers",
216
- ACCOUNT_ID: "accountIdentifier",
217
- HOMEACCOUNT_ID: "homeAccountIdentifier",
218
- } as const;
219
- export type SSOTypes = (typeof SSOTypes)[keyof typeof SSOTypes];
220
-
221
149
  /**
222
150
  * allowed values for codeVerifier
223
151
  */