@azure/msal-common 14.4.1-beta.1 → 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.
- package/dist/account/AccountInfo.d.ts +27 -0
- package/dist/account/AccountInfo.d.ts.map +1 -1
- package/dist/account/AccountInfo.mjs +64 -0
- package/dist/account/AccountInfo.mjs.map +1 -0
- package/dist/account/AuthToken.mjs +1 -1
- package/dist/account/AuthToken.mjs.map +1 -1
- package/dist/account/CcsCredential.mjs +1 -1
- package/dist/account/CcsCredential.mjs.map +1 -1
- package/dist/account/ClientInfo.d.ts +1 -2
- package/dist/account/ClientInfo.d.ts.map +1 -1
- package/dist/account/ClientInfo.mjs +3 -3
- package/dist/account/ClientInfo.mjs.map +1 -1
- package/dist/account/TokenClaims.d.ts +18 -0
- package/dist/account/TokenClaims.d.ts.map +1 -1
- package/dist/account/TokenClaims.mjs +25 -0
- package/dist/account/TokenClaims.mjs.map +1 -0
- package/dist/authority/Authority.d.ts +7 -2
- package/dist/authority/Authority.d.ts.map +1 -1
- package/dist/authority/Authority.mjs +34 -7
- package/dist/authority/Authority.mjs.map +1 -1
- package/dist/authority/AuthorityFactory.mjs +1 -1
- package/dist/authority/AuthorityFactory.mjs.map +1 -1
- package/dist/authority/AuthorityMetadata.mjs +1 -1
- package/dist/authority/AuthorityMetadata.mjs.map +1 -1
- package/dist/authority/AuthorityOptions.mjs +1 -1
- package/dist/authority/AuthorityOptions.mjs.map +1 -1
- package/dist/authority/AuthorityType.mjs +1 -1
- package/dist/authority/AuthorityType.mjs.map +1 -1
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +1 -1
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs.map +1 -1
- package/dist/authority/CloudInstanceDiscoveryResponse.mjs +1 -1
- package/dist/authority/CloudInstanceDiscoveryResponse.mjs.map +1 -1
- package/dist/authority/OpenIdConfigResponse.mjs +1 -1
- package/dist/authority/OpenIdConfigResponse.mjs.map +1 -1
- package/dist/authority/ProtocolMode.mjs +1 -1
- package/dist/authority/ProtocolMode.mjs.map +1 -1
- package/dist/authority/RegionDiscovery.mjs +1 -1
- package/dist/authority/RegionDiscovery.mjs.map +1 -1
- package/dist/cache/CacheManager.d.ts +50 -27
- package/dist/cache/CacheManager.d.ts.map +1 -1
- package/dist/cache/CacheManager.mjs +243 -107
- package/dist/cache/CacheManager.mjs.map +1 -1
- package/dist/cache/entities/AccountEntity.d.ts +9 -4
- package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
- package/dist/cache/entities/AccountEntity.mjs +56 -28
- package/dist/cache/entities/AccountEntity.mjs.map +1 -1
- package/dist/cache/entities/AppMetadataEntity.mjs +1 -1
- package/dist/cache/entities/AppMetadataEntity.mjs.map +1 -1
- package/dist/cache/entities/AuthorityMetadataEntity.mjs +1 -1
- package/dist/cache/entities/AuthorityMetadataEntity.mjs.map +1 -1
- package/dist/cache/entities/CacheRecord.mjs +1 -1
- package/dist/cache/entities/CacheRecord.mjs.map +1 -1
- package/dist/cache/entities/ThrottlingEntity.d.ts +2 -8
- package/dist/cache/entities/ThrottlingEntity.d.ts.map +1 -1
- package/dist/cache/persistence/TokenCacheContext.mjs +1 -1
- package/dist/cache/persistence/TokenCacheContext.mjs.map +1 -1
- package/dist/cache/utils/CacheHelpers.d.ts +7 -1
- package/dist/cache/utils/CacheHelpers.d.ts.map +1 -1
- package/dist/cache/utils/CacheHelpers.mjs +20 -4
- package/dist/cache/utils/CacheHelpers.mjs.map +1 -1
- package/dist/cache/utils/CacheTypes.d.ts +2 -0
- package/dist/cache/utils/CacheTypes.d.ts.map +1 -1
- package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
- package/dist/client/AuthorizationCodeClient.mjs +10 -9
- package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
- package/dist/client/BaseClient.mjs +1 -1
- package/dist/client/BaseClient.mjs.map +1 -1
- package/dist/client/RefreshTokenClient.d.ts.map +1 -1
- package/dist/client/RefreshTokenClient.mjs +25 -11
- package/dist/client/RefreshTokenClient.mjs.map +1 -1
- package/dist/client/SilentFlowClient.d.ts.map +1 -1
- package/dist/client/SilentFlowClient.mjs +20 -9
- package/dist/client/SilentFlowClient.mjs.map +1 -1
- package/dist/config/ClientConfiguration.d.ts.map +1 -1
- package/dist/config/ClientConfiguration.mjs +2 -4
- package/dist/config/ClientConfiguration.mjs.map +1 -1
- package/dist/constants/AADServerParamKeys.d.ts +53 -0
- package/dist/constants/AADServerParamKeys.d.ts.map +1 -0
- package/dist/constants/AADServerParamKeys.mjs +61 -0
- package/dist/constants/AADServerParamKeys.mjs.map +1 -0
- package/dist/crypto/ICrypto.mjs +1 -1
- package/dist/crypto/ICrypto.mjs.map +1 -1
- package/dist/crypto/JoseHeader.mjs +1 -1
- package/dist/crypto/JoseHeader.mjs.map +1 -1
- package/dist/crypto/PopTokenGenerator.mjs +2 -2
- package/dist/crypto/PopTokenGenerator.mjs.map +1 -1
- package/dist/error/AuthError.mjs +1 -1
- package/dist/error/AuthError.mjs.map +1 -1
- package/dist/error/AuthErrorCodes.mjs +1 -1
- package/dist/error/AuthErrorCodes.mjs.map +1 -1
- package/dist/error/ClientAuthError.mjs +1 -1
- package/dist/error/ClientAuthError.mjs.map +1 -1
- package/dist/error/ClientAuthErrorCodes.mjs +1 -1
- package/dist/error/ClientAuthErrorCodes.mjs.map +1 -1
- package/dist/error/ClientConfigurationError.mjs +1 -1
- package/dist/error/ClientConfigurationError.mjs.map +1 -1
- package/dist/error/ClientConfigurationErrorCodes.mjs +1 -1
- package/dist/error/ClientConfigurationErrorCodes.mjs.map +1 -1
- package/dist/error/InteractionRequiredAuthError.d.ts +4 -0
- package/dist/error/InteractionRequiredAuthError.d.ts.map +1 -1
- package/dist/error/InteractionRequiredAuthError.mjs +10 -3
- package/dist/error/InteractionRequiredAuthError.mjs.map +1 -1
- package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +1 -0
- package/dist/error/InteractionRequiredAuthErrorCodes.d.ts.map +1 -1
- package/dist/error/InteractionRequiredAuthErrorCodes.mjs +4 -3
- package/dist/error/InteractionRequiredAuthErrorCodes.mjs.map +1 -1
- package/dist/error/JoseHeaderError.mjs +1 -1
- package/dist/error/JoseHeaderError.mjs.map +1 -1
- package/dist/error/JoseHeaderErrorCodes.mjs +1 -1
- package/dist/error/JoseHeaderErrorCodes.mjs.map +1 -1
- package/dist/error/ServerError.mjs +1 -1
- package/dist/error/ServerError.mjs.map +1 -1
- package/dist/index.cjs +797 -416
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +7 -4
- package/dist/index.mjs.map +1 -1
- package/dist/logger/Logger.mjs +1 -1
- package/dist/logger/Logger.mjs.map +1 -1
- package/dist/network/INetworkModule.mjs +1 -1
- package/dist/network/INetworkModule.mjs.map +1 -1
- package/dist/network/NetworkManager.mjs +1 -1
- package/dist/network/NetworkManager.mjs.map +1 -1
- package/dist/network/ThrottlingUtils.mjs +1 -1
- package/dist/network/ThrottlingUtils.mjs.map +1 -1
- package/dist/packageMetadata.d.ts +1 -1
- package/dist/packageMetadata.d.ts.map +1 -1
- package/dist/packageMetadata.mjs +2 -2
- package/dist/packageMetadata.mjs.map +1 -1
- package/dist/request/AuthenticationHeaderParser.mjs +1 -1
- package/dist/request/AuthenticationHeaderParser.mjs.map +1 -1
- package/dist/request/CommonRefreshTokenRequest.d.ts +0 -1
- package/dist/request/CommonRefreshTokenRequest.d.ts.map +1 -1
- package/dist/request/CommonSilentFlowRequest.d.ts +7 -1
- package/dist/request/CommonSilentFlowRequest.d.ts.map +1 -1
- package/dist/request/RequestParameterBuilder.d.ts.map +1 -1
- package/dist/request/RequestParameterBuilder.mjs +46 -45
- package/dist/request/RequestParameterBuilder.mjs.map +1 -1
- package/dist/request/RequestValidator.mjs +1 -1
- package/dist/request/RequestValidator.mjs.map +1 -1
- package/dist/request/ScopeSet.mjs +1 -1
- package/dist/request/ScopeSet.mjs.map +1 -1
- package/dist/response/ResponseHandler.d.ts +3 -1
- package/dist/response/ResponseHandler.d.ts.map +1 -1
- package/dist/response/ResponseHandler.mjs +56 -20
- package/dist/response/ResponseHandler.mjs.map +1 -1
- package/dist/response/ServerAuthorizationTokenResponse.d.ts +1 -0
- package/dist/response/ServerAuthorizationTokenResponse.d.ts.map +1 -1
- package/dist/telemetry/performance/IPerformanceClient.d.ts +6 -0
- package/dist/telemetry/performance/IPerformanceClient.d.ts.map +1 -1
- package/dist/telemetry/performance/PerformanceClient.d.ts +9 -2
- package/dist/telemetry/performance/PerformanceClient.d.ts.map +1 -1
- package/dist/telemetry/performance/PerformanceClient.mjs +17 -13
- package/dist/telemetry/performance/PerformanceClient.mjs.map +1 -1
- package/dist/telemetry/performance/PerformanceEvent.mjs +1 -1
- package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
- package/dist/telemetry/performance/StubPerformanceClient.d.ts.map +1 -1
- package/dist/telemetry/performance/StubPerformanceClient.mjs +1 -1
- package/dist/telemetry/performance/StubPerformanceClient.mjs.map +1 -1
- package/dist/telemetry/server/ServerTelemetryManager.mjs +1 -1
- package/dist/telemetry/server/ServerTelemetryManager.mjs.map +1 -1
- package/dist/url/UrlString.mjs +1 -1
- package/dist/url/UrlString.mjs.map +1 -1
- package/dist/utils/Constants.d.ts +2 -69
- package/dist/utils/Constants.d.ts.map +1 -1
- package/dist/utils/Constants.mjs +6 -70
- package/dist/utils/Constants.mjs.map +1 -1
- package/dist/utils/FunctionWrappers.mjs +1 -1
- package/dist/utils/FunctionWrappers.mjs.map +1 -1
- package/dist/utils/ProtocolUtils.mjs +1 -1
- package/dist/utils/ProtocolUtils.mjs.map +1 -1
- package/dist/utils/StringUtils.mjs +1 -1
- package/dist/utils/StringUtils.mjs.map +1 -1
- package/dist/utils/TimeUtils.mjs +1 -1
- package/dist/utils/TimeUtils.mjs.map +1 -1
- package/dist/utils/UrlUtils.mjs +1 -1
- package/dist/utils/UrlUtils.mjs.map +1 -1
- package/package.json +93 -92
- package/src/account/AccountInfo.ts +96 -0
- package/src/account/ClientInfo.ts +2 -3
- package/src/account/TokenClaims.ts +28 -0
- package/src/authority/Authority.ts +38 -5
- package/src/cache/CacheManager.ts +410 -162
- package/src/cache/entities/AccountEntity.ts +84 -33
- package/src/cache/entities/ThrottlingEntity.ts +2 -24
- package/src/cache/utils/CacheHelpers.ts +22 -2
- package/src/cache/utils/CacheTypes.ts +11 -0
- package/src/client/AuthorizationCodeClient.ts +4 -5
- package/src/client/RefreshTokenClient.ts +35 -14
- package/src/client/SilentFlowClient.ts +31 -11
- package/src/config/ClientConfiguration.ts +4 -4
- package/src/constants/AADServerParamKeys.ts +57 -0
- package/src/crypto/PopTokenGenerator.ts +1 -1
- package/src/error/InteractionRequiredAuthError.ts +12 -2
- package/src/error/InteractionRequiredAuthErrorCodes.ts +1 -0
- package/src/index.ts +18 -5
- package/src/packageMetadata.ts +1 -1
- package/src/request/CommonRefreshTokenRequest.ts +0 -1
- package/src/request/CommonSilentFlowRequest.ts +7 -1
- package/src/request/RequestParameterBuilder.ts +7 -5
- package/src/response/ResponseHandler.ts +109 -25
- package/src/response/ServerAuthorizationTokenResponse.ts +1 -0
- package/src/telemetry/performance/IPerformanceClient.ts +6 -0
- package/src/telemetry/performance/PerformanceClient.ts +24 -31
- package/src/telemetry/performance/StubPerformanceClient.ts +0 -1
- package/src/utils/Constants.ts +4 -72
- package/dist/cache/entities/ThrottlingEntity.mjs +0 -30
- package/dist/cache/entities/ThrottlingEntity.mjs.map +0 -1
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
/*! @azure/msal-common v14.
|
|
1
|
+
/*! @azure/msal-common v14.6.0-alpha.0 2023-12-15 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { Separators, CredentialType, AuthenticationScheme, THE_FAMILY_ID, APP_METADATA, AUTHORITY_METADATA_CONSTANTS } from '../utils/Constants.mjs';
|
|
4
4
|
import { generateCredentialKey } from './utils/CacheHelpers.mjs';
|
|
5
5
|
import { ScopeSet } from '../request/ScopeSet.mjs';
|
|
6
6
|
import { AccountEntity } from './entities/AccountEntity.mjs';
|
|
7
7
|
import { createClientAuthError } from '../error/ClientAuthError.mjs';
|
|
8
|
+
import { updateAccountTenantProfileData, tenantIdMatchesHomeTenant } from '../account/AccountInfo.mjs';
|
|
8
9
|
import { extractTokenClaims } from '../account/AuthToken.mjs';
|
|
9
10
|
import { name, version } from '../packageMetadata.mjs';
|
|
10
11
|
import { getAliasesFromStaticSources } from '../authority/AuthorityMetadata.mjs';
|
|
@@ -31,25 +32,19 @@ class CacheManager {
|
|
|
31
32
|
* @returns Array of AccountInfo objects in cache
|
|
32
33
|
*/
|
|
33
34
|
getAllAccounts(accountFilter) {
|
|
34
|
-
|
|
35
|
-
this.getAccountsFilteredBy(accountFilter || {}).forEach((accountEntity) => {
|
|
36
|
-
const accountInfo = this.getAccountInfoFromEntity(accountEntity, accountFilter);
|
|
37
|
-
if (accountInfo) {
|
|
38
|
-
validAccounts.push(accountInfo);
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
return validAccounts;
|
|
35
|
+
return this.buildTenantProfiles(this.getAccountsFilteredBy(accountFilter || {}), accountFilter);
|
|
42
36
|
}
|
|
43
37
|
/**
|
|
44
|
-
* Gets
|
|
38
|
+
* Gets first tenanted AccountInfo object found based on provided filters
|
|
45
39
|
*/
|
|
46
40
|
getAccountInfoFilteredBy(accountFilter) {
|
|
47
41
|
const allAccounts = this.getAllAccounts(accountFilter);
|
|
48
42
|
if (allAccounts.length > 1) {
|
|
49
|
-
// If one or more accounts are found,
|
|
50
|
-
|
|
51
|
-
return
|
|
52
|
-
})
|
|
43
|
+
// If one or more accounts are found, prioritize accounts that have an ID token
|
|
44
|
+
const sortedAccounts = allAccounts.sort((account) => {
|
|
45
|
+
return account.idTokenClaims ? -1 : 1;
|
|
46
|
+
});
|
|
47
|
+
return sortedAccounts[0];
|
|
53
48
|
}
|
|
54
49
|
else if (allAccounts.length === 1) {
|
|
55
50
|
// If only one account is found, return it regardless of whether a matching ID token was found
|
|
@@ -73,27 +68,104 @@ class CacheManager {
|
|
|
73
68
|
return null;
|
|
74
69
|
}
|
|
75
70
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Matches filtered account entities with cached ID tokens that match the tenant profile-specific account filters
|
|
73
|
+
* and builds the account info objects from the matching ID token's claims
|
|
74
|
+
* @param cachedAccounts
|
|
75
|
+
* @param accountFilter
|
|
76
|
+
* @returns Array of AccountInfo objects that match account and tenant profile filters
|
|
77
|
+
*/
|
|
78
|
+
buildTenantProfiles(cachedAccounts, accountFilter) {
|
|
79
|
+
return cachedAccounts.flatMap((accountEntity) => {
|
|
80
|
+
return this.getAccountInfoForTenantProfiles(accountEntity, accountFilter);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
getAccountInfoForTenantProfiles(accountEntity, accountFilter) {
|
|
84
|
+
return this.getTenantProfilesFromAccountEntity(accountEntity, accountFilter?.tenantId, accountFilter);
|
|
85
|
+
}
|
|
86
|
+
getTenantedAccountInfoByFilter(accountInfo, tokenKeys, tenantProfile, tenantProfileFilter) {
|
|
87
|
+
let tenantedAccountInfo = null;
|
|
88
|
+
let idTokenClaims;
|
|
89
|
+
if (tenantProfileFilter) {
|
|
90
|
+
if (!this.tenantProfileMatchesFilter(tenantProfile, tenantProfileFilter)) {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
const idToken = this.getIdToken(accountInfo, tokenKeys, tenantProfile.tenantId);
|
|
79
95
|
if (idToken) {
|
|
80
|
-
|
|
81
|
-
if (this.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
96
|
+
idTokenClaims = extractTokenClaims(idToken.secret, this.cryptoImpl.base64Decode);
|
|
97
|
+
if (!this.idTokenClaimsMatchTenantProfileFilter(idTokenClaims, tenantProfileFilter)) {
|
|
98
|
+
// ID token sourced claims don't match so this tenant profile is not a match
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// Expand tenant profile into account info based on matching tenant profile and if available matching ID token claims
|
|
103
|
+
tenantedAccountInfo = updateAccountTenantProfileData(accountInfo, tenantProfile, idTokenClaims);
|
|
104
|
+
return tenantedAccountInfo;
|
|
105
|
+
}
|
|
106
|
+
getTenantProfilesFromAccountEntity(accountEntity, targetTenantId, tenantProfileFilter) {
|
|
107
|
+
const accountInfo = accountEntity.getAccountInfo();
|
|
108
|
+
let searchTenantProfiles = accountInfo.tenantProfiles || new Map();
|
|
109
|
+
const tokenKeys = this.getTokenKeys();
|
|
110
|
+
// If a tenant ID was provided, only return the tenant profile for that tenant ID if it exists
|
|
111
|
+
if (targetTenantId) {
|
|
112
|
+
const tenantProfile = searchTenantProfiles.get(targetTenantId);
|
|
113
|
+
if (tenantProfile) {
|
|
114
|
+
// Reduce search field to just this tenant profile
|
|
115
|
+
searchTenantProfiles = new Map([
|
|
116
|
+
[targetTenantId, tenantProfile],
|
|
117
|
+
]);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
// No tenant profile for search tenant ID, return empty array
|
|
121
|
+
return [];
|
|
85
122
|
}
|
|
86
123
|
}
|
|
87
|
-
|
|
124
|
+
const matchingTenantProfiles = [];
|
|
125
|
+
searchTenantProfiles.forEach((tenantProfile) => {
|
|
126
|
+
const tenantedAccountInfo = this.getTenantedAccountInfoByFilter(accountInfo, tokenKeys, tenantProfile, tenantProfileFilter);
|
|
127
|
+
if (tenantedAccountInfo) {
|
|
128
|
+
matchingTenantProfiles.push(tenantedAccountInfo);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
return matchingTenantProfiles;
|
|
132
|
+
}
|
|
133
|
+
tenantProfileMatchesFilter(tenantProfile, tenantProfileFilter) {
|
|
134
|
+
if (!!tenantProfileFilter.localAccountId &&
|
|
135
|
+
!this.matchLocalAccountIdFromTenantProfile(tenantProfile, tenantProfileFilter.localAccountId)) {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
if (!!tenantProfileFilter.name &&
|
|
139
|
+
!(tenantProfile.name === tenantProfileFilter.name)) {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
if (tenantProfileFilter.isHomeTenant !== undefined &&
|
|
143
|
+
!(tenantProfile.isHomeTenant === tenantProfileFilter.isHomeTenant)) {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
return true;
|
|
88
147
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
148
|
+
idTokenClaimsMatchTenantProfileFilter(idTokenClaims, tenantProfileFilter) {
|
|
149
|
+
// Tenant Profile filtering
|
|
150
|
+
if (tenantProfileFilter) {
|
|
151
|
+
if (!!tenantProfileFilter.localAccountId &&
|
|
152
|
+
!this.matchLocalAccountIdFromTokenClaims(idTokenClaims, tenantProfileFilter.localAccountId)) {
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
if (!!tenantProfileFilter.loginHint &&
|
|
156
|
+
!this.matchLoginHintFromTokenClaims(idTokenClaims, tenantProfileFilter.loginHint)) {
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
if (!!tenantProfileFilter.username &&
|
|
160
|
+
!this.matchUsername(idTokenClaims.preferred_username, tenantProfileFilter.username)) {
|
|
93
161
|
return false;
|
|
94
162
|
}
|
|
95
|
-
if (!!
|
|
96
|
-
!this.
|
|
163
|
+
if (!!tenantProfileFilter.name &&
|
|
164
|
+
!this.matchName(idTokenClaims, tenantProfileFilter.name)) {
|
|
165
|
+
return false;
|
|
166
|
+
}
|
|
167
|
+
if (!!tenantProfileFilter.sid &&
|
|
168
|
+
!this.matchSid(idTokenClaims, tenantProfileFilter.sid)) {
|
|
97
169
|
return false;
|
|
98
170
|
}
|
|
99
171
|
}
|
|
@@ -158,7 +230,7 @@ class CacheManager {
|
|
|
158
230
|
this.setAccessTokenCredential(credential);
|
|
159
231
|
}
|
|
160
232
|
/**
|
|
161
|
-
* Retrieve
|
|
233
|
+
* Retrieve account entities matching all provided tenant-agnostic filters; if no filter is set, get all account entities in the cache
|
|
162
234
|
* Not checking for casing as keys are all generated in lower case, remember to convert to lower case if object properties are compared
|
|
163
235
|
* @param accountFilter - An object containing Account properties to filter by
|
|
164
236
|
*/
|
|
@@ -166,11 +238,12 @@ class CacheManager {
|
|
|
166
238
|
const allAccountKeys = this.getAccountKeys();
|
|
167
239
|
const matchingAccounts = [];
|
|
168
240
|
allAccountKeys.forEach((cacheKey) => {
|
|
169
|
-
if (!this.isAccountKey(cacheKey, accountFilter.homeAccountId
|
|
241
|
+
if (!this.isAccountKey(cacheKey, accountFilter.homeAccountId)) {
|
|
170
242
|
// Don't parse value if the key doesn't match the account filters
|
|
171
243
|
return;
|
|
172
244
|
}
|
|
173
|
-
const entity = this.getAccount(cacheKey);
|
|
245
|
+
const entity = this.getAccount(cacheKey, this.commonLogger);
|
|
246
|
+
// Match base account fields
|
|
174
247
|
if (!entity) {
|
|
175
248
|
return;
|
|
176
249
|
}
|
|
@@ -178,12 +251,8 @@ class CacheManager {
|
|
|
178
251
|
!this.matchHomeAccountId(entity, accountFilter.homeAccountId)) {
|
|
179
252
|
return;
|
|
180
253
|
}
|
|
181
|
-
if (!!accountFilter.localAccountId &&
|
|
182
|
-
!this.matchLocalAccountId(entity, accountFilter.localAccountId)) {
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
254
|
if (!!accountFilter.username &&
|
|
186
|
-
!this.matchUsername(entity, accountFilter.username)) {
|
|
255
|
+
!this.matchUsername(entity.username, accountFilter.username)) {
|
|
187
256
|
return;
|
|
188
257
|
}
|
|
189
258
|
if (!!accountFilter.environment &&
|
|
@@ -194,11 +263,6 @@ class CacheManager {
|
|
|
194
263
|
!this.matchRealm(entity, accountFilter.realm)) {
|
|
195
264
|
return;
|
|
196
265
|
}
|
|
197
|
-
// tenantId is another name for realm
|
|
198
|
-
if (!!accountFilter.tenantId &&
|
|
199
|
-
!this.matchRealm(entity, accountFilter.tenantId)) {
|
|
200
|
-
return;
|
|
201
|
-
}
|
|
202
266
|
if (!!accountFilter.nativeAccountId &&
|
|
203
267
|
!this.matchNativeAccountId(entity, accountFilter.nativeAccountId)) {
|
|
204
268
|
return;
|
|
@@ -207,8 +271,16 @@ class CacheManager {
|
|
|
207
271
|
!this.matchAuthorityType(entity, accountFilter.authorityType)) {
|
|
208
272
|
return;
|
|
209
273
|
}
|
|
210
|
-
|
|
211
|
-
|
|
274
|
+
// If at least one tenant profile matches the tenant profile filter, add the account to the list of matching accounts
|
|
275
|
+
const tenantProfileFilter = {
|
|
276
|
+
localAccountId: accountFilter?.localAccountId,
|
|
277
|
+
name: accountFilter?.name,
|
|
278
|
+
};
|
|
279
|
+
const matchingTenantProfiles = entity.tenantProfiles?.filter((tenantProfile) => {
|
|
280
|
+
return this.tenantProfileMatchesFilter(tenantProfile, tenantProfileFilter);
|
|
281
|
+
});
|
|
282
|
+
if (matchingTenantProfiles && matchingTenantProfiles.length === 0) {
|
|
283
|
+
// No tenant profile for this account matches filter, don't add to list of matching accounts
|
|
212
284
|
return;
|
|
213
285
|
}
|
|
214
286
|
matchingAccounts.push(entity);
|
|
@@ -415,7 +487,7 @@ class CacheManager {
|
|
|
415
487
|
* @param account
|
|
416
488
|
*/
|
|
417
489
|
async removeAccount(accountKey) {
|
|
418
|
-
const account = this.getAccount(accountKey);
|
|
490
|
+
const account = this.getAccount(accountKey, this.commonLogger);
|
|
419
491
|
if (!account) {
|
|
420
492
|
return;
|
|
421
493
|
}
|
|
@@ -447,6 +519,61 @@ class CacheManager {
|
|
|
447
519
|
});
|
|
448
520
|
await Promise.all(removedCredentials);
|
|
449
521
|
}
|
|
522
|
+
/**
|
|
523
|
+
* Migrates a single-tenant account and all it's associated alternate cross-tenant account objects in the
|
|
524
|
+
* cache into a condensed multi-tenant account object with tenant profiles.
|
|
525
|
+
* @param accountKey
|
|
526
|
+
* @param accountEntity
|
|
527
|
+
* @param logger
|
|
528
|
+
* @returns
|
|
529
|
+
*/
|
|
530
|
+
updateOutdatedCachedAccount(accountKey, accountEntity, logger) {
|
|
531
|
+
// Only update if account entity is defined and has no tenantProfiles object (is outdated)
|
|
532
|
+
if (accountEntity && accountEntity.isSingleTenant()) {
|
|
533
|
+
this.commonLogger?.verbose("updateOutdatedCachedAccount: Found a single-tenant (outdated) account entity in the cache, migrating to multi-tenant account entity");
|
|
534
|
+
// Get keys of all accounts belonging to user
|
|
535
|
+
const matchingAccountKeys = this.getAccountKeys().filter((key) => {
|
|
536
|
+
return key.startsWith(accountEntity.homeAccountId);
|
|
537
|
+
});
|
|
538
|
+
// Get all account entities belonging to user
|
|
539
|
+
const accountsToMerge = [];
|
|
540
|
+
matchingAccountKeys.forEach((key) => {
|
|
541
|
+
const account = this.getCachedAccountEntity(key);
|
|
542
|
+
if (account) {
|
|
543
|
+
accountsToMerge.push(account);
|
|
544
|
+
}
|
|
545
|
+
});
|
|
546
|
+
// Set base account to home account if available, any account if not
|
|
547
|
+
const baseAccount = accountsToMerge.find((account) => {
|
|
548
|
+
return tenantIdMatchesHomeTenant(account.realm, account.homeAccountId);
|
|
549
|
+
}) || accountsToMerge[0];
|
|
550
|
+
// Populate tenant profiles built from each account entity belonging to the user
|
|
551
|
+
baseAccount.tenantProfiles = accountsToMerge.map((account) => {
|
|
552
|
+
return {
|
|
553
|
+
tenantId: account.realm,
|
|
554
|
+
localAccountId: account.localAccountId,
|
|
555
|
+
name: account.name,
|
|
556
|
+
isHomeTenant: tenantIdMatchesHomeTenant(account.realm, account.homeAccountId),
|
|
557
|
+
};
|
|
558
|
+
});
|
|
559
|
+
const updatedAccount = CacheManager.toObject(new AccountEntity(), {
|
|
560
|
+
...baseAccount,
|
|
561
|
+
});
|
|
562
|
+
const newAccountKey = updatedAccount.generateAccountKey();
|
|
563
|
+
// Clear cache of legacy account objects that have been collpsed into tenant profiles
|
|
564
|
+
matchingAccountKeys.forEach((key) => {
|
|
565
|
+
if (key !== newAccountKey) {
|
|
566
|
+
this.removeOutdatedAccount(accountKey);
|
|
567
|
+
}
|
|
568
|
+
});
|
|
569
|
+
// Cache updated account object
|
|
570
|
+
this.setAccount(updatedAccount);
|
|
571
|
+
logger?.verbose("Updated an outdated account entity in the cache");
|
|
572
|
+
return updatedAccount;
|
|
573
|
+
}
|
|
574
|
+
// No update is necessary
|
|
575
|
+
return accountEntity;
|
|
576
|
+
}
|
|
450
577
|
/**
|
|
451
578
|
* returns a boolean if the given credential is removed
|
|
452
579
|
* @param credential
|
|
@@ -486,74 +613,73 @@ class CacheManager {
|
|
|
486
613
|
});
|
|
487
614
|
return true;
|
|
488
615
|
}
|
|
489
|
-
/**
|
|
490
|
-
* Retrieve the cached credentials into a cacherecord
|
|
491
|
-
* @param account {AccountInfo}
|
|
492
|
-
* @param request {BaseAuthRequest}
|
|
493
|
-
* @param environment {string}
|
|
494
|
-
* @param performanceClient {?IPerformanceClient}
|
|
495
|
-
* @param correlationId {?string}
|
|
496
|
-
*/
|
|
497
|
-
readCacheRecord(account, request, environment, performanceClient, correlationId) {
|
|
498
|
-
const tokenKeys = this.getTokenKeys();
|
|
499
|
-
const cachedAccount = this.readAccountFromCache(account);
|
|
500
|
-
const cachedIdToken = this.getIdToken(account, tokenKeys, performanceClient, correlationId);
|
|
501
|
-
const cachedAccessToken = this.getAccessToken(account, request, tokenKeys, performanceClient, correlationId);
|
|
502
|
-
const cachedRefreshToken = this.getRefreshToken(account, false, tokenKeys, performanceClient, correlationId);
|
|
503
|
-
const cachedAppMetadata = this.readAppMetadataFromCache(environment);
|
|
504
|
-
if (cachedAccount && cachedIdToken) {
|
|
505
|
-
cachedAccount.idTokenClaims = extractTokenClaims(cachedIdToken.secret, this.cryptoImpl.base64Decode);
|
|
506
|
-
}
|
|
507
|
-
return {
|
|
508
|
-
account: cachedAccount,
|
|
509
|
-
idToken: cachedIdToken,
|
|
510
|
-
accessToken: cachedAccessToken,
|
|
511
|
-
refreshToken: cachedRefreshToken,
|
|
512
|
-
appMetadata: cachedAppMetadata,
|
|
513
|
-
};
|
|
514
|
-
}
|
|
515
616
|
/**
|
|
516
617
|
* Retrieve AccountEntity from cache
|
|
517
618
|
* @param account
|
|
518
619
|
*/
|
|
519
620
|
readAccountFromCache(account) {
|
|
520
621
|
const accountKey = AccountEntity.generateAccountCacheKey(account);
|
|
521
|
-
return this.getAccount(accountKey);
|
|
622
|
+
return this.getAccount(accountKey, this.commonLogger);
|
|
522
623
|
}
|
|
523
624
|
/**
|
|
524
625
|
* Retrieve IdTokenEntity from cache
|
|
525
626
|
* @param account {AccountInfo}
|
|
526
627
|
* @param tokenKeys {?TokenKeys}
|
|
628
|
+
* @param targetRealm {?string}
|
|
527
629
|
* @param performanceClient {?IPerformanceClient}
|
|
528
630
|
* @param correlationId {?string}
|
|
529
631
|
*/
|
|
530
|
-
getIdToken(account, tokenKeys, performanceClient, correlationId) {
|
|
632
|
+
getIdToken(account, tokenKeys, targetRealm, performanceClient, correlationId) {
|
|
531
633
|
this.commonLogger.trace("CacheManager - getIdToken called");
|
|
532
634
|
const idTokenFilter = {
|
|
533
635
|
homeAccountId: account.homeAccountId,
|
|
534
636
|
environment: account.environment,
|
|
535
637
|
credentialType: CredentialType.ID_TOKEN,
|
|
536
638
|
clientId: this.clientId,
|
|
537
|
-
realm:
|
|
639
|
+
realm: targetRealm,
|
|
538
640
|
};
|
|
539
|
-
const
|
|
540
|
-
const numIdTokens =
|
|
641
|
+
const idTokenMap = this.getIdTokensByFilter(idTokenFilter, tokenKeys);
|
|
642
|
+
const numIdTokens = idTokenMap.size;
|
|
541
643
|
if (numIdTokens < 1) {
|
|
542
644
|
this.commonLogger.info("CacheManager:getIdToken - No token found");
|
|
543
645
|
return null;
|
|
544
646
|
}
|
|
545
647
|
else if (numIdTokens > 1) {
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
648
|
+
let tokensToBeRemoved = idTokenMap;
|
|
649
|
+
// Multiple tenant profiles and no tenant specified, pick home account
|
|
650
|
+
if (!targetRealm) {
|
|
651
|
+
const homeIdTokenMap = new Map();
|
|
652
|
+
idTokenMap.forEach((idToken, key) => {
|
|
653
|
+
if (idToken.realm === account.tenantId) {
|
|
654
|
+
homeIdTokenMap.set(key, idToken);
|
|
655
|
+
}
|
|
656
|
+
});
|
|
657
|
+
const numHomeIdTokens = homeIdTokenMap.size;
|
|
658
|
+
if (numHomeIdTokens < 1) {
|
|
659
|
+
this.commonLogger.info("CacheManager:getIdToken - Multiple ID tokens found for account but none match account entity tenant id, returning first result");
|
|
660
|
+
return idTokenMap.values().next().value;
|
|
661
|
+
}
|
|
662
|
+
else if (numHomeIdTokens === 1) {
|
|
663
|
+
this.commonLogger.info("CacheManager:getIdToken - Multiple ID tokens found for account, defaulting to home tenant profile");
|
|
664
|
+
return homeIdTokenMap.values().next().value;
|
|
665
|
+
}
|
|
666
|
+
else {
|
|
667
|
+
// Multiple ID tokens for home tenant profile, remove all and return null
|
|
668
|
+
tokensToBeRemoved = homeIdTokenMap;
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
// Multiple tokens for a single tenant profile, remove all and return null
|
|
672
|
+
this.commonLogger.info("CacheManager:getIdToken - Multiple matching ID tokens found, clearing them");
|
|
673
|
+
tokensToBeRemoved.forEach((idToken, key) => {
|
|
674
|
+
this.removeIdToken(key);
|
|
549
675
|
});
|
|
550
676
|
if (performanceClient && correlationId) {
|
|
551
|
-
performanceClient.addFields({ multiMatchedID:
|
|
677
|
+
performanceClient.addFields({ multiMatchedID: idTokenMap.size }, correlationId);
|
|
552
678
|
}
|
|
553
679
|
return null;
|
|
554
680
|
}
|
|
555
|
-
this.commonLogger.info("CacheManager:getIdToken - Returning
|
|
556
|
-
return
|
|
681
|
+
this.commonLogger.info("CacheManager:getIdToken - Returning ID token");
|
|
682
|
+
return idTokenMap.values().next().value;
|
|
557
683
|
}
|
|
558
684
|
/**
|
|
559
685
|
* Gets all idTokens matching the given filter
|
|
@@ -562,7 +688,7 @@ class CacheManager {
|
|
|
562
688
|
*/
|
|
563
689
|
getIdTokensByFilter(filter, tokenKeys) {
|
|
564
690
|
const idTokenKeys = (tokenKeys && tokenKeys.idToken) || this.getTokenKeys().idToken;
|
|
565
|
-
const idTokens =
|
|
691
|
+
const idTokens = new Map();
|
|
566
692
|
idTokenKeys.forEach((key) => {
|
|
567
693
|
if (!this.idTokenKeyMatchesFilter(key, {
|
|
568
694
|
clientId: this.clientId,
|
|
@@ -572,7 +698,7 @@ class CacheManager {
|
|
|
572
698
|
}
|
|
573
699
|
const idToken = this.getIdTokenCredential(key);
|
|
574
700
|
if (idToken && this.credentialMatchesFilter(idToken, filter)) {
|
|
575
|
-
idTokens.
|
|
701
|
+
idTokens.set(key, idToken);
|
|
576
702
|
}
|
|
577
703
|
});
|
|
578
704
|
return idTokens;
|
|
@@ -617,7 +743,7 @@ class CacheManager {
|
|
|
617
743
|
* @param performanceClient {?IPerformanceClient}
|
|
618
744
|
* @param correlationId {?string}
|
|
619
745
|
*/
|
|
620
|
-
getAccessToken(account, request, tokenKeys, performanceClient, correlationId) {
|
|
746
|
+
getAccessToken(account, request, tokenKeys, targetRealm, performanceClient, correlationId) {
|
|
621
747
|
this.commonLogger.trace("CacheManager - getAccessToken called");
|
|
622
748
|
const scopes = ScopeSet.createSearchScopes(request.scopes);
|
|
623
749
|
const authScheme = request.authenticationScheme || AuthenticationScheme.BEARER;
|
|
@@ -635,7 +761,7 @@ class CacheManager {
|
|
|
635
761
|
environment: account.environment,
|
|
636
762
|
credentialType: credentialType,
|
|
637
763
|
clientId: this.clientId,
|
|
638
|
-
realm: account.tenantId,
|
|
764
|
+
realm: targetRealm || account.tenantId,
|
|
639
765
|
target: scopes,
|
|
640
766
|
tokenType: authScheme,
|
|
641
767
|
keyId: request.sshKid,
|
|
@@ -844,19 +970,12 @@ class CacheManager {
|
|
|
844
970
|
* @param localAccountId
|
|
845
971
|
* @returns
|
|
846
972
|
*/
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
973
|
+
matchLocalAccountIdFromTokenClaims(tokenClaims, localAccountId) {
|
|
974
|
+
const idTokenLocalAccountId = tokenClaims.oid || tokenClaims.sub;
|
|
975
|
+
return localAccountId === idTokenLocalAccountId;
|
|
850
976
|
}
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
* @param entity
|
|
854
|
-
* @param username
|
|
855
|
-
* @returns
|
|
856
|
-
*/
|
|
857
|
-
matchUsername(entity, username) {
|
|
858
|
-
return !!(typeof entity.username === "string" &&
|
|
859
|
-
username.toLowerCase() === entity.username.toLowerCase());
|
|
977
|
+
matchLocalAccountIdFromTenantProfile(tenantProfile, localAccountId) {
|
|
978
|
+
return tenantProfile.localAccountId === localAccountId;
|
|
860
979
|
}
|
|
861
980
|
/**
|
|
862
981
|
* helper to match names
|
|
@@ -864,8 +983,19 @@ class CacheManager {
|
|
|
864
983
|
* @param name
|
|
865
984
|
* @returns true if the downcased name properties are present and match in the filter and the entity
|
|
866
985
|
*/
|
|
867
|
-
matchName(
|
|
868
|
-
return !!(name.toLowerCase() ===
|
|
986
|
+
matchName(claims, name) {
|
|
987
|
+
return !!(name.toLowerCase() === claims.name?.toLowerCase());
|
|
988
|
+
}
|
|
989
|
+
/**
|
|
990
|
+
* helper to match usernames
|
|
991
|
+
* @param entity
|
|
992
|
+
* @param username
|
|
993
|
+
* @returns
|
|
994
|
+
*/
|
|
995
|
+
matchUsername(cachedUsername, filterUsername) {
|
|
996
|
+
return !!(cachedUsername &&
|
|
997
|
+
typeof cachedUsername === "string" &&
|
|
998
|
+
filterUsername?.toLowerCase() === cachedUsername.toLowerCase());
|
|
869
999
|
}
|
|
870
1000
|
/**
|
|
871
1001
|
* helper to match assertion
|
|
@@ -929,7 +1059,7 @@ class CacheManager {
|
|
|
929
1059
|
* @param realm
|
|
930
1060
|
*/
|
|
931
1061
|
matchRealm(entity, realm) {
|
|
932
|
-
return !!(entity.realm
|
|
1062
|
+
return !!(entity.realm?.toLowerCase() === realm.toLowerCase());
|
|
933
1063
|
}
|
|
934
1064
|
/**
|
|
935
1065
|
* helper to match nativeAccountId
|
|
@@ -949,26 +1079,26 @@ class CacheManager {
|
|
|
949
1079
|
* @param loginHint
|
|
950
1080
|
* @returns
|
|
951
1081
|
*/
|
|
952
|
-
|
|
953
|
-
if (
|
|
1082
|
+
matchLoginHintFromTokenClaims(tokenClaims, loginHint) {
|
|
1083
|
+
if (tokenClaims.login_hint === loginHint) {
|
|
954
1084
|
return true;
|
|
955
1085
|
}
|
|
956
|
-
if (
|
|
1086
|
+
if (tokenClaims.preferred_username === loginHint) {
|
|
957
1087
|
return true;
|
|
958
1088
|
}
|
|
959
|
-
if (
|
|
1089
|
+
if (tokenClaims.upn === loginHint) {
|
|
960
1090
|
return true;
|
|
961
1091
|
}
|
|
962
1092
|
return false;
|
|
963
1093
|
}
|
|
964
1094
|
/**
|
|
965
1095
|
* Helper to match sid
|
|
966
|
-
* @param
|
|
1096
|
+
* @param entity
|
|
967
1097
|
* @param sid
|
|
968
1098
|
* @returns true if the sid claim is present and matches the filter
|
|
969
1099
|
*/
|
|
970
1100
|
matchSid(idTokenClaims, sid) {
|
|
971
|
-
return
|
|
1101
|
+
return idTokenClaims.sid === sid;
|
|
972
1102
|
}
|
|
973
1103
|
matchAuthorityType(entity, authorityType) {
|
|
974
1104
|
return !!(entity.authorityType &&
|
|
@@ -1045,6 +1175,9 @@ class DefaultStorageClass extends CacheManager {
|
|
|
1045
1175
|
getAccount() {
|
|
1046
1176
|
throw createClientAuthError(methodNotImplemented);
|
|
1047
1177
|
}
|
|
1178
|
+
getCachedAccountEntity() {
|
|
1179
|
+
throw createClientAuthError(methodNotImplemented);
|
|
1180
|
+
}
|
|
1048
1181
|
setIdTokenCredential() {
|
|
1049
1182
|
throw createClientAuthError(methodNotImplemented);
|
|
1050
1183
|
}
|
|
@@ -1111,6 +1244,9 @@ class DefaultStorageClass extends CacheManager {
|
|
|
1111
1244
|
updateCredentialCacheKey() {
|
|
1112
1245
|
throw createClientAuthError(methodNotImplemented);
|
|
1113
1246
|
}
|
|
1247
|
+
removeOutdatedAccount() {
|
|
1248
|
+
throw createClientAuthError(methodNotImplemented);
|
|
1249
|
+
}
|
|
1114
1250
|
}
|
|
1115
1251
|
|
|
1116
1252
|
export { CacheManager, DefaultStorageClass };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheManager.mjs","sources":["../../src/cache/CacheManager.ts"],"sourcesContent":[null],"names":["ClientAuthErrorCodes.invalidCacheRecord","ClientAuthErrorCodes.bindingKeyNotRemoved"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CacheManager.mjs","sources":["../../src/cache/CacheManager.ts"],"sourcesContent":[null],"names":["ClientAuthErrorCodes.invalidCacheRecord","ClientAuthErrorCodes.bindingKeyNotRemoved","ClientAuthErrorCodes.multipleMatchingAppMetadata","ClientAuthErrorCodes.methodNotImplemented"],"mappings":"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"}
|