@azure/msal-common 16.5.0 → 16.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/account/AccountInfo.d.ts +3 -1
- package/dist/account/AccountInfo.d.ts.map +1 -1
- package/dist/account/AccountInfo.mjs +3 -2
- package/dist/account/AccountInfo.mjs.map +1 -1
- package/dist/account/AuthToken.mjs +1 -1
- package/dist/account/CcsCredential.mjs +1 -1
- package/dist/account/ClientInfo.mjs +1 -1
- package/dist/account/TokenClaims.mjs +1 -1
- package/dist/authority/Authority.mjs +1 -1
- package/dist/authority/AuthorityFactory.mjs +1 -1
- package/dist/authority/AuthorityMetadata.mjs +1 -1
- package/dist/authority/AuthorityOptions.mjs +1 -1
- package/dist/authority/AuthorityType.mjs +1 -1
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +1 -1
- package/dist/authority/CloudInstanceDiscoveryResponse.mjs +1 -1
- package/dist/authority/OpenIdConfigResponse.mjs +1 -1
- package/dist/authority/ProtocolMode.mjs +1 -1
- package/dist/authority/RegionDiscovery.mjs +1 -1
- package/dist/cache/CacheManager.d.ts +7 -0
- package/dist/cache/CacheManager.d.ts.map +1 -1
- package/dist/cache/CacheManager.mjs +37 -9
- package/dist/cache/CacheManager.mjs.map +1 -1
- package/dist/cache/persistence/TokenCacheContext.mjs +1 -1
- package/dist/cache/utils/AccountEntityUtils.mjs +1 -1
- package/dist/cache/utils/CacheHelpers.mjs +1 -1
- package/dist/cache/utils/CacheTypes.d.ts +1 -1
- package/dist/cache/utils/CacheTypes.d.ts.map +1 -1
- package/dist/client/AuthorizationCodeClient.mjs +1 -1
- package/dist/client/RefreshTokenClient.mjs +1 -1
- package/dist/client/SilentFlowClient.mjs +1 -1
- package/dist/config/ClientConfiguration.mjs +1 -1
- package/dist/constants/AADServerParamKeys.mjs +1 -1
- package/dist/crypto/ICrypto.mjs +1 -1
- package/dist/crypto/JoseHeader.mjs +1 -1
- package/dist/crypto/PopTokenGenerator.mjs +1 -1
- package/dist/error/AuthError.mjs +1 -1
- package/dist/error/AuthErrorCodes.mjs +1 -1
- package/dist/error/CacheError.mjs +1 -1
- package/dist/error/CacheErrorCodes.mjs +1 -1
- package/dist/error/ClientAuthError.mjs +1 -1
- package/dist/error/ClientAuthErrorCodes.mjs +1 -1
- package/dist/error/ClientConfigurationError.mjs +1 -1
- package/dist/error/ClientConfigurationErrorCodes.mjs +1 -1
- package/dist/error/InteractionRequiredAuthError.mjs +1 -1
- package/dist/error/InteractionRequiredAuthErrorCodes.mjs +1 -1
- package/dist/error/JoseHeaderError.mjs +1 -1
- package/dist/error/JoseHeaderErrorCodes.mjs +1 -1
- package/dist/error/NetworkError.mjs +1 -1
- package/dist/error/PlatformBrokerError.mjs +1 -1
- package/dist/error/ServerError.mjs +1 -1
- package/dist/index-node.mjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/logger/Logger.mjs +1 -1
- package/dist/network/INetworkModule.mjs +1 -1
- package/dist/network/RequestThumbprint.mjs +1 -1
- package/dist/network/ThrottlingUtils.mjs +1 -1
- package/dist/packageMetadata.d.ts +1 -1
- package/dist/packageMetadata.mjs +2 -2
- package/dist/protocol/Authorize.mjs +1 -1
- package/dist/protocol/Token.mjs +1 -1
- package/dist/request/AuthenticationHeaderParser.mjs +1 -1
- package/dist/request/BaseAuthRequest.mjs +1 -1
- package/dist/request/RequestParameterBuilder.mjs +1 -1
- package/dist/request/ScopeSet.mjs +1 -1
- package/dist/response/ResponseHandler.mjs +1 -1
- package/dist/telemetry/performance/PerformanceClient.mjs +1 -1
- package/dist/telemetry/performance/PerformanceEvent.mjs +1 -1
- package/dist/telemetry/performance/PerformanceEvents.mjs +1 -1
- package/dist/telemetry/performance/StubPerformanceClient.mjs +1 -1
- package/dist/telemetry/server/ServerTelemetryManager.mjs +1 -1
- package/dist/url/UrlString.mjs +1 -1
- package/dist/utils/ClientAssertionUtils.mjs +1 -1
- package/dist/utils/Constants.mjs +1 -1
- package/dist/utils/FunctionWrappers.mjs +1 -1
- package/dist/utils/ProtocolUtils.mjs +1 -1
- package/dist/utils/StringUtils.mjs +1 -1
- package/dist/utils/TimeUtils.mjs +1 -1
- package/dist/utils/UrlUtils.mjs +1 -1
- package/dist-browser/account/AccountInfo.d.ts +3 -1
- package/dist-browser/account/AccountInfo.d.ts.map +1 -1
- package/dist-browser/account/AccountInfo.mjs +3 -2
- package/dist-browser/account/AccountInfo.mjs.map +1 -1
- package/dist-browser/account/AuthToken.mjs +1 -1
- package/dist-browser/account/CcsCredential.mjs +1 -1
- package/dist-browser/account/ClientInfo.mjs +1 -1
- package/dist-browser/account/TokenClaims.mjs +1 -1
- package/dist-browser/authority/Authority.mjs +1 -1
- package/dist-browser/authority/AuthorityFactory.mjs +1 -1
- package/dist-browser/authority/AuthorityMetadata.mjs +1 -1
- package/dist-browser/authority/AuthorityOptions.mjs +1 -1
- package/dist-browser/authority/AuthorityType.mjs +1 -1
- package/dist-browser/authority/CloudInstanceDiscoveryErrorResponse.mjs +1 -1
- package/dist-browser/authority/CloudInstanceDiscoveryResponse.mjs +1 -1
- package/dist-browser/authority/OpenIdConfigResponse.mjs +1 -1
- package/dist-browser/authority/ProtocolMode.mjs +1 -1
- package/dist-browser/authority/RegionDiscovery.mjs +1 -1
- package/dist-browser/cache/CacheManager.d.ts +7 -0
- package/dist-browser/cache/CacheManager.d.ts.map +1 -1
- package/dist-browser/cache/CacheManager.mjs +37 -9
- package/dist-browser/cache/CacheManager.mjs.map +1 -1
- package/dist-browser/cache/persistence/TokenCacheContext.mjs +1 -1
- package/dist-browser/cache/utils/AccountEntityUtils.mjs +1 -1
- package/dist-browser/cache/utils/CacheHelpers.mjs +1 -1
- package/dist-browser/cache/utils/CacheTypes.d.ts +1 -1
- package/dist-browser/cache/utils/CacheTypes.d.ts.map +1 -1
- package/dist-browser/client/AuthorizationCodeClient.mjs +1 -1
- package/dist-browser/client/RefreshTokenClient.mjs +1 -1
- package/dist-browser/client/SilentFlowClient.mjs +1 -1
- package/dist-browser/config/ClientConfiguration.mjs +1 -1
- package/dist-browser/constants/AADServerParamKeys.mjs +1 -1
- package/dist-browser/crypto/ICrypto.mjs +1 -1
- package/dist-browser/crypto/JoseHeader.mjs +1 -1
- package/dist-browser/crypto/PopTokenGenerator.mjs +1 -1
- package/dist-browser/error/AuthError.mjs +1 -1
- package/dist-browser/error/AuthErrorCodes.mjs +1 -1
- package/dist-browser/error/CacheError.mjs +1 -1
- package/dist-browser/error/CacheErrorCodes.mjs +1 -1
- package/dist-browser/error/ClientAuthError.mjs +1 -1
- package/dist-browser/error/ClientAuthErrorCodes.mjs +1 -1
- package/dist-browser/error/ClientConfigurationError.mjs +1 -1
- package/dist-browser/error/ClientConfigurationErrorCodes.mjs +1 -1
- package/dist-browser/error/InteractionRequiredAuthError.mjs +1 -1
- package/dist-browser/error/InteractionRequiredAuthErrorCodes.mjs +1 -1
- package/dist-browser/error/JoseHeaderError.mjs +1 -1
- package/dist-browser/error/JoseHeaderErrorCodes.mjs +1 -1
- package/dist-browser/error/NetworkError.mjs +1 -1
- package/dist-browser/error/PlatformBrokerError.mjs +1 -1
- package/dist-browser/error/ServerError.mjs +1 -1
- package/dist-browser/index-browser.mjs +1 -1
- package/dist-browser/index.mjs +1 -1
- package/dist-browser/log-strings-mapping.json +2 -2
- package/dist-browser/logger/Logger.mjs +1 -1
- package/dist-browser/network/INetworkModule.mjs +1 -1
- package/dist-browser/network/RequestThumbprint.mjs +1 -1
- package/dist-browser/network/ThrottlingUtils.mjs +1 -1
- package/dist-browser/packageMetadata.d.ts +1 -1
- package/dist-browser/packageMetadata.mjs +2 -2
- package/dist-browser/protocol/Authorize.mjs +1 -1
- package/dist-browser/protocol/Token.mjs +1 -1
- package/dist-browser/request/AuthenticationHeaderParser.mjs +1 -1
- package/dist-browser/request/BaseAuthRequest.mjs +1 -1
- package/dist-browser/request/RequestParameterBuilder.mjs +1 -1
- package/dist-browser/request/ScopeSet.mjs +1 -1
- package/dist-browser/response/ResponseHandler.mjs +1 -1
- package/dist-browser/telemetry/performance/PerformanceClient.mjs +1 -1
- package/dist-browser/telemetry/performance/PerformanceEvent.mjs +1 -1
- package/dist-browser/telemetry/performance/PerformanceEvents.mjs +1 -1
- package/dist-browser/telemetry/performance/StubPerformanceClient.mjs +1 -1
- package/dist-browser/telemetry/server/ServerTelemetryManager.mjs +1 -1
- package/dist-browser/url/UrlString.mjs +1 -1
- package/dist-browser/utils/ClientAssertionUtils.mjs +1 -1
- package/dist-browser/utils/Constants.mjs +1 -1
- package/dist-browser/utils/FunctionWrappers.mjs +1 -1
- package/dist-browser/utils/ProtocolUtils.mjs +1 -1
- package/dist-browser/utils/StringUtils.mjs +1 -1
- package/dist-browser/utils/TimeUtils.mjs +1 -1
- package/dist-browser/utils/UrlUtils.mjs +1 -1
- package/lib/index-browser.cjs +2 -2
- package/lib/{index-node-Du5Fgpah.js → index-node-CJl1_QbT.js} +41 -12
- package/lib/index-node-CJl1_QbT.js.map +1 -0
- package/lib/index-node.cjs +2 -2
- package/lib/index.cjs +2 -2
- package/lib/types/account/AccountInfo.d.ts +3 -1
- package/lib/types/account/AccountInfo.d.ts.map +1 -1
- package/lib/types/cache/CacheManager.d.ts +7 -0
- package/lib/types/cache/CacheManager.d.ts.map +1 -1
- package/lib/types/cache/utils/CacheTypes.d.ts +1 -1
- package/lib/types/cache/utils/CacheTypes.d.ts.map +1 -1
- package/lib/types/packageMetadata.d.ts +1 -1
- package/package.json +1 -1
- package/src/account/AccountInfo.ts +5 -2
- package/src/cache/CacheManager.ts +65 -10
- package/src/cache/utils/CacheTypes.ts +1 -0
- package/src/packageMetadata.ts +1 -1
- package/lib/index-node-Du5Fgpah.js.map +0 -1
|
@@ -38,7 +38,7 @@ export type AccountFilter = Omit<Partial<AccountInfo>, "idToken" | "idTokenClaim
|
|
|
38
38
|
sid?: string;
|
|
39
39
|
isHomeTenant?: boolean;
|
|
40
40
|
};
|
|
41
|
-
export type TenantProfileFilter = Pick<AccountFilter, "localAccountId" | "loginHint" | "name" | "sid" | "isHomeTenant" | "username">;
|
|
41
|
+
export type TenantProfileFilter = Pick<AccountFilter, "localAccountId" | "loginHint" | "name" | "sid" | "isHomeTenant" | "username" | "upn">;
|
|
42
42
|
/**
|
|
43
43
|
* Credential: <home_account_id*>-<environment>-<credential_type>-<client_id>-<realm*>-<target*>-<scheme*>
|
|
44
44
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheTypes.d.ts","sourceRoot":"","sources":["../../../../src/cache/utils/CacheTypes.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,gBAAgB;AAChB,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AACzD,gBAAgB;AAChB,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AACzD,gBAAgB;AAChB,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AACjE,gBAAgB;AAChB,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AACnE,gBAAgB;AAChB,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAEjE;;;GAGG;AACH,MAAM,MAAM,cAAc,GACpB,aAAa,GACb,aAAa,GACb,iBAAiB,GACjB,kBAAkB,GAClB,iBAAiB,GACjB,uBAAuB,GACvB,qBAAqB,GACrB,gBAAgB,GAChB,MAAM,CAAC;AAEb;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GACzB,aAAa,GACb,iBAAiB,GACjB,kBAAkB,CAAC;AAEzB;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,CAC5B,OAAO,CAAC,WAAW,CAAC,EACpB,SAAS,GAAG,eAAe,CAC9B,GAAG;IACA,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAClC,aAAa,EACX,gBAAgB,GAChB,WAAW,GACX,MAAM,GACN,KAAK,GACL,cAAc,GACd,UAAU,
|
|
1
|
+
{"version":3,"file":"CacheTypes.d.ts","sourceRoot":"","sources":["../../../../src/cache/utils/CacheTypes.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -13,6 +13,7 @@ export type DataBoundary = "EU" | "None";
|
|
|
13
13
|
* - environment - Entity which issued the token represented by the domain of the issuer (e.g. login.microsoftonline.com)
|
|
14
14
|
* - tenantId - Full tenant or organizational id that this account belongs to
|
|
15
15
|
* - username - preferred_username claim of the id_token that represents this account
|
|
16
|
+
* - upn - The user's UPN used to populate the account username in cases where preferred_username is not present in the ID token claims.
|
|
16
17
|
* - localAccountId - Local, tenant-specific account identifer for this account object, usually used in legacy cases
|
|
17
18
|
* - name - Full name for the account, including given name and family name
|
|
18
19
|
* - idToken - raw ID token
|
|
@@ -29,6 +30,7 @@ export type AccountInfo = {
|
|
|
29
30
|
localAccountId: string;
|
|
30
31
|
loginHint?: string;
|
|
31
32
|
name?: string;
|
|
33
|
+
upn?: string;
|
|
32
34
|
idToken?: string;
|
|
33
35
|
idTokenClaims?: TokenClaims & {
|
|
34
36
|
[key: string]:
|
|
@@ -50,7 +52,7 @@ export type AccountInfo = {
|
|
|
50
52
|
*/
|
|
51
53
|
export type TenantProfile = Pick<
|
|
52
54
|
AccountInfo,
|
|
53
|
-
"tenantId" | "localAccountId" | "name" | "username" | "loginHint"
|
|
55
|
+
"tenantId" | "localAccountId" | "name" | "username" | "loginHint" | "upn"
|
|
54
56
|
> & {
|
|
55
57
|
/**
|
|
56
58
|
* - isHomeTenant - True if this is the home tenant profile of the account, false if it's a guest tenant profile
|
|
@@ -123,6 +125,7 @@ export function buildTenantProfile(
|
|
|
123
125
|
username: preferred_username || upn || "",
|
|
124
126
|
loginHint: login_hint,
|
|
125
127
|
isHomeTenant: tenantIdMatchesHomeTenant(tenantId, homeAccountId),
|
|
128
|
+
upn: upn,
|
|
126
129
|
};
|
|
127
130
|
} else {
|
|
128
131
|
return {
|
|
@@ -156,7 +159,7 @@ export function updateAccountTenantProfileData(
|
|
|
156
159
|
|
|
157
160
|
// ID token claims override passed in account info and tenant profile
|
|
158
161
|
if (idTokenClaims) {
|
|
159
|
-
// Ignore isHomeTenant
|
|
162
|
+
// Ignore isHomeTenant which is a utility property of tenant profile but not required in base account info
|
|
160
163
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
161
164
|
const { isHomeTenant, ...claimsSourcedTenantProfile } =
|
|
162
165
|
buildTenantProfile(
|
|
@@ -495,6 +495,39 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
495
495
|
return false;
|
|
496
496
|
}
|
|
497
497
|
|
|
498
|
+
if (
|
|
499
|
+
!!tenantProfileFilter.username &&
|
|
500
|
+
!(
|
|
501
|
+
this.matchUsername(
|
|
502
|
+
tenantProfile.username,
|
|
503
|
+
tenantProfileFilter.username
|
|
504
|
+
) ||
|
|
505
|
+
!this.matchUsername(
|
|
506
|
+
tenantProfile.upn,
|
|
507
|
+
tenantProfileFilter.username
|
|
508
|
+
)
|
|
509
|
+
)
|
|
510
|
+
) {
|
|
511
|
+
return false;
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
if (
|
|
515
|
+
!!tenantProfileFilter.loginHint &&
|
|
516
|
+
!this.matchLoginHintWithTenantProfile(
|
|
517
|
+
tenantProfile,
|
|
518
|
+
tenantProfileFilter.loginHint
|
|
519
|
+
)
|
|
520
|
+
) {
|
|
521
|
+
return false;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
if (
|
|
525
|
+
!!tenantProfileFilter.upn &&
|
|
526
|
+
!(tenantProfile.upn === tenantProfileFilter.upn)
|
|
527
|
+
) {
|
|
528
|
+
return false;
|
|
529
|
+
}
|
|
530
|
+
|
|
498
531
|
return true;
|
|
499
532
|
}
|
|
500
533
|
|
|
@@ -529,6 +562,10 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
529
562
|
!this.matchUsername(
|
|
530
563
|
idTokenClaims.preferred_username,
|
|
531
564
|
tenantProfileFilter.username
|
|
565
|
+
) &&
|
|
566
|
+
!this.matchUsername(
|
|
567
|
+
idTokenClaims.upn,
|
|
568
|
+
tenantProfileFilter.username
|
|
532
569
|
)
|
|
533
570
|
) {
|
|
534
571
|
return false;
|
|
@@ -707,13 +744,6 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
707
744
|
return;
|
|
708
745
|
}
|
|
709
746
|
|
|
710
|
-
if (
|
|
711
|
-
!!accountFilter.username &&
|
|
712
|
-
!this.matchUsername(entity.username, accountFilter.username)
|
|
713
|
-
) {
|
|
714
|
-
return;
|
|
715
|
-
}
|
|
716
|
-
|
|
717
747
|
if (
|
|
718
748
|
!!accountFilter.environment &&
|
|
719
749
|
!this.matchEnvironment(
|
|
@@ -753,6 +783,9 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
753
783
|
const tenantProfileFilter: TenantProfileFilter = {
|
|
754
784
|
localAccountId: accountFilter?.localAccountId,
|
|
755
785
|
name: accountFilter?.name,
|
|
786
|
+
username: accountFilter?.username,
|
|
787
|
+
loginHint: accountFilter?.loginHint,
|
|
788
|
+
upn: accountFilter?.upn,
|
|
756
789
|
};
|
|
757
790
|
|
|
758
791
|
const matchingTenantProfiles = entity.tenantProfiles?.filter(
|
|
@@ -1125,13 +1158,13 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1125
1158
|
"CacheManager:getIdToken - Multiple ID tokens found for account but none match account entity tenant id, returning first result",
|
|
1126
1159
|
correlationId
|
|
1127
1160
|
);
|
|
1128
|
-
return idTokenMap.values().next().value;
|
|
1161
|
+
return idTokenMap.values().next().value ?? null;
|
|
1129
1162
|
} else if (numHomeIdTokens === 1) {
|
|
1130
1163
|
this.commonLogger.info(
|
|
1131
1164
|
"CacheManager:getIdToken - Multiple ID tokens found for account, defaulting to home tenant profile",
|
|
1132
1165
|
correlationId
|
|
1133
1166
|
);
|
|
1134
|
-
return homeIdTokenMap.values().next().value;
|
|
1167
|
+
return homeIdTokenMap.values().next().value ?? null;
|
|
1135
1168
|
} else {
|
|
1136
1169
|
// Multiple ID tokens for home tenant profile, remove all and return null
|
|
1137
1170
|
tokensToBeRemoved = homeIdTokenMap;
|
|
@@ -1156,7 +1189,7 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1156
1189
|
"CacheManager:getIdToken - Returning ID token",
|
|
1157
1190
|
correlationId
|
|
1158
1191
|
);
|
|
1159
|
-
return idTokenMap.values().next().value;
|
|
1192
|
+
return idTokenMap.values().next().value ?? null;
|
|
1160
1193
|
}
|
|
1161
1194
|
|
|
1162
1195
|
/**
|
|
@@ -1654,6 +1687,23 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1654
1687
|
);
|
|
1655
1688
|
}
|
|
1656
1689
|
|
|
1690
|
+
/**
|
|
1691
|
+
* helper to match loginhints
|
|
1692
|
+
* @param entity
|
|
1693
|
+
* @param loginHint
|
|
1694
|
+
* @returns
|
|
1695
|
+
*/
|
|
1696
|
+
private matchLoginHintWithTenantProfile(
|
|
1697
|
+
tenantProfile: TenantProfile,
|
|
1698
|
+
loginHintFilter: string
|
|
1699
|
+
): boolean {
|
|
1700
|
+
return (
|
|
1701
|
+
tenantProfile.loginHint === loginHintFilter ||
|
|
1702
|
+
tenantProfile.username === loginHintFilter ||
|
|
1703
|
+
tenantProfile.upn === loginHintFilter
|
|
1704
|
+
);
|
|
1705
|
+
}
|
|
1706
|
+
|
|
1657
1707
|
/**
|
|
1658
1708
|
* helper to match assertion
|
|
1659
1709
|
* @param value
|
|
@@ -1799,6 +1849,11 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1799
1849
|
return true;
|
|
1800
1850
|
}
|
|
1801
1851
|
|
|
1852
|
+
// check login hint against list of emails in token claims
|
|
1853
|
+
if (tokenClaims.emails && tokenClaims.emails.includes(loginHint)) {
|
|
1854
|
+
return true;
|
|
1855
|
+
}
|
|
1856
|
+
|
|
1802
1857
|
return false;
|
|
1803
1858
|
}
|
|
1804
1859
|
|
package/src/packageMetadata.ts
CHANGED