@azure/msal-common 14.6.0-alpha.0 → 14.6.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 +58 -58
- package/dist/account/AccountInfo.mjs +59 -59
- package/dist/account/AuthToken.d.ts +17 -17
- package/dist/account/AuthToken.mjs +58 -58
- package/dist/account/CcsCredential.d.ts +9 -9
- package/dist/account/CcsCredential.mjs +8 -8
- package/dist/account/ClientCredentials.d.ts +14 -14
- package/dist/account/ClientInfo.d.ts +18 -18
- package/dist/account/ClientInfo.mjs +37 -37
- package/dist/account/TokenClaims.d.ts +83 -83
- package/dist/account/TokenClaims.mjs +20 -20
- package/dist/authority/Authority.d.ts +253 -254
- package/dist/authority/Authority.d.ts.map +1 -1
- package/dist/authority/Authority.mjs +831 -816
- package/dist/authority/Authority.mjs.map +1 -1
- package/dist/authority/AuthorityFactory.d.ts +18 -31
- package/dist/authority/AuthorityFactory.d.ts.map +1 -1
- package/dist/authority/AuthorityFactory.mjs +29 -50
- package/dist/authority/AuthorityFactory.mjs.map +1 -1
- package/dist/authority/AuthorityMetadata.d.ts +43 -503
- package/dist/authority/AuthorityMetadata.d.ts.map +1 -1
- package/dist/authority/AuthorityMetadata.mjs +137 -603
- package/dist/authority/AuthorityMetadata.mjs.map +1 -1
- package/dist/authority/AuthorityOptions.d.ts +27 -27
- package/dist/authority/AuthorityOptions.mjs +18 -18
- package/dist/authority/AuthorityType.d.ts +10 -10
- package/dist/authority/AuthorityType.mjs +13 -13
- package/dist/authority/AzureRegion.d.ts +1 -1
- package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
- package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +8 -8
- package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
- package/dist/authority/CloudInstanceDiscoveryResponse.mjs +8 -8
- package/dist/authority/ImdsOptions.d.ts +5 -5
- package/dist/authority/OIDCOptions.d.ts +8 -8
- package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
- package/dist/authority/OpenIdConfigResponse.mjs +10 -10
- package/dist/authority/ProtocolMode.d.ts +8 -8
- package/dist/authority/ProtocolMode.mjs +11 -11
- package/dist/authority/RegionDiscovery.d.ts +32 -32
- package/dist/authority/RegionDiscovery.mjs +106 -106
- package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
- package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
- package/dist/cache/CacheManager.d.ts +508 -508
- package/dist/cache/CacheManager.mjs +1237 -1237
- package/dist/cache/entities/AccessTokenEntity.d.ts +25 -25
- package/dist/cache/entities/AccountEntity.d.ts +106 -106
- package/dist/cache/entities/AccountEntity.mjs +244 -244
- package/dist/cache/entities/AppMetadataEntity.d.ts +11 -39
- package/dist/cache/entities/AppMetadataEntity.d.ts.map +1 -1
- package/dist/cache/entities/AuthorityMetadataEntity.d.ts +15 -48
- package/dist/cache/entities/AuthorityMetadataEntity.d.ts.map +1 -1
- package/dist/cache/entities/CacheRecord.d.ts +14 -14
- package/dist/cache/entities/CacheRecord.mjs +14 -14
- package/dist/cache/entities/CredentialEntity.d.ts +30 -30
- package/dist/cache/entities/IdTokenEntity.d.ts +8 -8
- package/dist/cache/entities/RefreshTokenEntity.d.ts +7 -7
- package/dist/cache/entities/ServerTelemetryEntity.d.ts +5 -5
- package/dist/cache/entities/ThrottlingEntity.d.ts +7 -7
- package/dist/cache/interface/ICacheManager.d.ts +166 -166
- package/dist/cache/interface/ICachePlugin.d.ts +5 -5
- package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
- package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
- package/dist/cache/persistence/TokenCacheContext.mjs +25 -25
- package/dist/cache/utils/CacheHelpers.d.ts +94 -70
- package/dist/cache/utils/CacheHelpers.d.ts.map +1 -1
- package/dist/cache/utils/CacheHelpers.mjs +326 -252
- package/dist/cache/utils/CacheHelpers.mjs.map +1 -1
- package/dist/cache/utils/CacheTypes.d.ts +69 -69
- package/dist/client/AuthorizationCodeClient.d.ts +74 -74
- package/dist/client/AuthorizationCodeClient.mjs +402 -402
- package/dist/client/BaseClient.d.ts +51 -51
- package/dist/client/BaseClient.d.ts.map +1 -1
- package/dist/client/BaseClient.mjs +101 -101
- package/dist/client/BaseClient.mjs.map +1 -1
- package/dist/client/RefreshTokenClient.d.ts +35 -35
- package/dist/client/RefreshTokenClient.mjs +204 -204
- package/dist/client/SilentFlowClient.d.ts +27 -27
- package/dist/client/SilentFlowClient.mjs +128 -128
- package/dist/config/AppTokenProvider.d.ts +38 -38
- package/dist/config/ClientConfiguration.d.ts +150 -150
- package/dist/config/ClientConfiguration.d.ts.map +1 -1
- package/dist/config/ClientConfiguration.mjs +98 -96
- package/dist/config/ClientConfiguration.mjs.map +1 -1
- package/dist/constants/AADServerParamKeys.d.ts +52 -52
- package/dist/constants/AADServerParamKeys.mjs +56 -56
- package/dist/crypto/ICrypto.d.ts +58 -58
- package/dist/crypto/ICrypto.mjs +30 -30
- package/dist/crypto/IGuidGenerator.d.ts +4 -4
- package/dist/crypto/JoseHeader.d.ts +22 -22
- package/dist/crypto/JoseHeader.mjs +37 -37
- package/dist/crypto/PopTokenGenerator.d.ts +60 -60
- package/dist/crypto/PopTokenGenerator.mjs +82 -82
- package/dist/crypto/SignedHttpRequest.d.ts +15 -15
- package/dist/error/AuthError.d.ts +44 -44
- package/dist/error/AuthError.mjs +46 -46
- package/dist/error/AuthErrorCodes.d.ts +5 -5
- package/dist/error/AuthErrorCodes.mjs +9 -9
- package/dist/error/ClientAuthError.d.ts +237 -237
- package/dist/error/ClientAuthError.mjs +249 -249
- package/dist/error/ClientAuthErrorCodes.d.ts +44 -44
- package/dist/error/ClientAuthErrorCodes.mjs +48 -48
- package/dist/error/ClientConfigurationError.d.ts +128 -128
- package/dist/error/ClientConfigurationError.mjs +135 -135
- package/dist/error/ClientConfigurationErrorCodes.d.ts +22 -22
- package/dist/error/ClientConfigurationErrorCodes.mjs +26 -26
- package/dist/error/InteractionRequiredAuthError.d.ts +61 -61
- package/dist/error/InteractionRequiredAuthError.mjs +84 -84
- package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +7 -7
- package/dist/error/InteractionRequiredAuthErrorCodes.mjs +13 -13
- package/dist/error/JoseHeaderError.d.ts +15 -15
- package/dist/error/JoseHeaderError.mjs +22 -22
- package/dist/error/JoseHeaderErrorCodes.d.ts +2 -2
- package/dist/error/JoseHeaderErrorCodes.mjs +6 -6
- package/dist/error/ServerError.d.ts +7 -7
- package/dist/error/ServerError.mjs +14 -14
- package/dist/index.cjs +8081 -8611
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +99 -99
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +4 -5
- package/dist/index.mjs.map +1 -1
- package/dist/logger/Logger.d.ts +95 -95
- package/dist/logger/Logger.mjs +188 -188
- package/dist/network/INetworkModule.d.ts +29 -29
- package/dist/network/INetworkModule.mjs +12 -12
- package/dist/network/NetworkManager.d.ts +33 -33
- package/dist/network/NetworkManager.mjs +34 -34
- package/dist/network/RequestThumbprint.d.ts +18 -18
- package/dist/network/ThrottlingUtils.d.ts +42 -42
- package/dist/network/ThrottlingUtils.mjs +95 -95
- package/dist/packageMetadata.d.ts +2 -2
- package/dist/packageMetadata.d.ts.map +1 -1
- package/dist/packageMetadata.mjs +4 -4
- package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
- package/dist/request/AuthenticationHeaderParser.mjs +55 -55
- package/dist/request/BaseAuthRequest.d.ts +43 -43
- package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
- package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
- package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
- package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
- package/dist/request/CommonEndSessionRequest.d.ts +21 -21
- package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
- package/dist/request/CommonRefreshTokenRequest.d.ts +22 -22
- package/dist/request/CommonSilentFlowRequest.d.ts +27 -27
- package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
- package/dist/request/NativeRequest.d.ts +19 -19
- package/dist/request/NativeSignOutRequest.d.ts +5 -5
- package/dist/request/RequestParameterBuilder.d.ts +217 -217
- package/dist/request/RequestParameterBuilder.mjs +381 -381
- package/dist/request/RequestValidator.d.ts +33 -33
- package/dist/request/RequestValidator.mjs +81 -81
- package/dist/request/ScopeSet.d.ts +88 -88
- package/dist/request/ScopeSet.mjs +197 -197
- package/dist/request/StoreInCache.d.ts +8 -8
- package/dist/response/AuthenticationResult.d.ts +41 -41
- package/dist/response/AuthorizationCodePayload.d.ts +13 -13
- package/dist/response/DeviceCodeResponse.d.ts +25 -25
- package/dist/response/ExternalTokenResponse.d.ts +15 -15
- package/dist/response/IMDSBadResponse.d.ts +4 -4
- package/dist/response/ResponseHandler.d.ts +69 -69
- package/dist/response/ResponseHandler.mjs +350 -347
- package/dist/response/ResponseHandler.mjs.map +1 -1
- package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
- package/dist/response/ServerAuthorizationTokenResponse.d.ts +47 -47
- package/dist/telemetry/performance/IPerformanceClient.d.ts +57 -57
- package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
- package/dist/telemetry/performance/PerformanceClient.d.ts +198 -198
- package/dist/telemetry/performance/PerformanceClient.mjs +412 -412
- package/dist/telemetry/performance/PerformanceEvent.d.ts +464 -464
- package/dist/telemetry/performance/PerformanceEvent.mjs +253 -253
- package/dist/telemetry/performance/StubPerformanceClient.d.ts +24 -24
- package/dist/telemetry/performance/StubPerformanceClient.mjs +76 -76
- package/dist/telemetry/server/ServerTelemetryManager.d.ts +66 -66
- package/dist/telemetry/server/ServerTelemetryManager.mjs +201 -201
- package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
- package/dist/url/IUri.d.ts +12 -12
- package/dist/url/UrlString.d.ts +48 -48
- package/dist/url/UrlString.mjs +161 -161
- package/dist/utils/Constants.d.ts +296 -298
- package/dist/utils/Constants.d.ts.map +1 -1
- package/dist/utils/Constants.mjs +310 -313
- package/dist/utils/Constants.mjs.map +1 -1
- package/dist/utils/FunctionWrappers.d.ts +27 -27
- package/dist/utils/FunctionWrappers.mjs +84 -84
- package/dist/utils/MsalTypes.d.ts +6 -6
- package/dist/utils/ProtocolUtils.d.ts +42 -42
- package/dist/utils/ProtocolUtils.mjs +69 -69
- package/dist/utils/StringUtils.d.ts +40 -40
- package/dist/utils/StringUtils.mjs +95 -95
- package/dist/utils/TimeUtils.d.ts +27 -27
- package/dist/utils/TimeUtils.mjs +45 -45
- package/dist/utils/UrlUtils.d.ts +10 -10
- package/dist/utils/UrlUtils.mjs +44 -44
- package/package.json +1 -1
- package/src/authority/Authority.ts +69 -29
- package/src/authority/AuthorityFactory.ts +48 -92
- package/src/authority/AuthorityMetadata.ts +23 -526
- package/src/cache/entities/AppMetadataEntity.ts +6 -81
- package/src/cache/entities/AuthorityMetadataEntity.ts +2 -94
- package/src/cache/utils/CacheHelpers.ts +111 -0
- package/src/client/BaseClient.ts +10 -11
- package/src/config/ClientConfiguration.ts +4 -4
- package/src/index.ts +1 -2
- package/src/packageMetadata.ts +1 -1
- package/src/response/ResponseHandler.ts +5 -5
- package/src/utils/Constants.ts +0 -4
- package/dist/cache/entities/AppMetadataEntity.mjs +0 -73
- package/dist/cache/entities/AppMetadataEntity.mjs.map +0 -1
- package/dist/cache/entities/AuthorityMetadataEntity.mjs +0 -86
- package/dist/cache/entities/AuthorityMetadataEntity.mjs.map +0 -1
|
@@ -57,6 +57,7 @@ import { AuthError } from "../error/AuthError";
|
|
|
57
57
|
import { IPerformanceClient } from "../telemetry/performance/IPerformanceClient";
|
|
58
58
|
import { PerformanceEvents } from "../telemetry/performance/PerformanceEvent";
|
|
59
59
|
import { invokeAsync } from "../utils/FunctionWrappers";
|
|
60
|
+
import * as CacheHelpers from "../cache/utils/CacheHelpers";
|
|
60
61
|
|
|
61
62
|
/**
|
|
62
63
|
* The authority class validates the authority URIs used by the user, and retrieves the OpenID Configuration Data from the
|
|
@@ -85,9 +86,7 @@ export class Authority {
|
|
|
85
86
|
// Performance client
|
|
86
87
|
protected performanceClient: IPerformanceClient | undefined;
|
|
87
88
|
// Correlation Id
|
|
88
|
-
protected correlationId: string
|
|
89
|
-
// Indicates if the authority is fake, for the purpose of a Managed Identity Application
|
|
90
|
-
private managedIdentity: boolean;
|
|
89
|
+
protected correlationId: string;
|
|
91
90
|
// Reserved tenant domain names that will not be replaced with tenant id
|
|
92
91
|
private static reservedTenantDomains: Set<string> = new Set([
|
|
93
92
|
"{tenant}",
|
|
@@ -103,9 +102,8 @@ export class Authority {
|
|
|
103
102
|
cacheManager: ICacheManager,
|
|
104
103
|
authorityOptions: AuthorityOptions,
|
|
105
104
|
logger: Logger,
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
managedIdentity?: boolean
|
|
105
|
+
correlationId: string,
|
|
106
|
+
performanceClient?: IPerformanceClient
|
|
109
107
|
) {
|
|
110
108
|
this.canonicalAuthority = authority;
|
|
111
109
|
this._canonicalAuthority.validateAsUri();
|
|
@@ -120,7 +118,6 @@ export class Authority {
|
|
|
120
118
|
this.logger = logger;
|
|
121
119
|
this.performanceClient = performanceClient;
|
|
122
120
|
this.correlationId = correlationId;
|
|
123
|
-
this.managedIdentity = managedIdentity || false;
|
|
124
121
|
this.regionDiscovery = new RegionDiscovery(
|
|
125
122
|
networkInterface,
|
|
126
123
|
this.logger,
|
|
@@ -386,7 +383,7 @@ export class Authority {
|
|
|
386
383
|
}
|
|
387
384
|
|
|
388
385
|
/**
|
|
389
|
-
* Boolean that returns
|
|
386
|
+
* Boolean that returns whethr or not tenant discovery has been completed.
|
|
390
387
|
*/
|
|
391
388
|
discoveryComplete(): boolean {
|
|
392
389
|
return !!this.metadata;
|
|
@@ -425,6 +422,13 @@ export class Authority {
|
|
|
425
422
|
this.updateCachedMetadata(metadataEntity, cloudDiscoverySource, {
|
|
426
423
|
source: endpointSource,
|
|
427
424
|
});
|
|
425
|
+
this.performanceClient?.addFields(
|
|
426
|
+
{
|
|
427
|
+
cloudDiscoverySource: cloudDiscoverySource,
|
|
428
|
+
authorityEndpointSource: endpointSource,
|
|
429
|
+
},
|
|
430
|
+
this.correlationId
|
|
431
|
+
);
|
|
428
432
|
}
|
|
429
433
|
|
|
430
434
|
/**
|
|
@@ -433,13 +437,24 @@ export class Authority {
|
|
|
433
437
|
* @returns
|
|
434
438
|
*/
|
|
435
439
|
private getCurrentMetadataEntity(): AuthorityMetadataEntity {
|
|
436
|
-
let metadataEntity =
|
|
437
|
-
this.hostnameAndPort
|
|
438
|
-
);
|
|
440
|
+
let metadataEntity: AuthorityMetadataEntity | null =
|
|
441
|
+
this.cacheManager.getAuthorityMetadataByAlias(this.hostnameAndPort);
|
|
439
442
|
|
|
440
443
|
if (!metadataEntity) {
|
|
441
|
-
metadataEntity =
|
|
442
|
-
|
|
444
|
+
metadataEntity = {
|
|
445
|
+
aliases: [],
|
|
446
|
+
preferred_cache: this.hostnameAndPort,
|
|
447
|
+
preferred_network: this.hostnameAndPort,
|
|
448
|
+
canonical_authority: this.canonicalAuthority,
|
|
449
|
+
authorization_endpoint: "",
|
|
450
|
+
token_endpoint: "",
|
|
451
|
+
end_session_endpoint: "",
|
|
452
|
+
issuer: "",
|
|
453
|
+
aliasesFromNetwork: false,
|
|
454
|
+
endpointsFromNetwork: false,
|
|
455
|
+
expiresAt: CacheHelpers.generateAuthorityMetadataExpiresAt(),
|
|
456
|
+
jwks_uri: "",
|
|
457
|
+
};
|
|
443
458
|
}
|
|
444
459
|
return metadataEntity;
|
|
445
460
|
}
|
|
@@ -464,8 +479,9 @@ export class Authority {
|
|
|
464
479
|
endpointMetadataResult?.source !== AuthorityMetadataSource.CACHE
|
|
465
480
|
) {
|
|
466
481
|
// Reset the expiration time unless both values came from a successful cache lookup
|
|
467
|
-
metadataEntity.
|
|
468
|
-
|
|
482
|
+
metadataEntity.expiresAt =
|
|
483
|
+
CacheHelpers.generateAuthorityMetadataExpiresAt();
|
|
484
|
+
metadataEntity.canonical_authority = this.canonicalAuthority;
|
|
469
485
|
}
|
|
470
486
|
|
|
471
487
|
const cacheKey = this.cacheManager.generateAuthorityMetadataCacheKey(
|
|
@@ -510,10 +526,13 @@ export class Authority {
|
|
|
510
526
|
this.performanceClient,
|
|
511
527
|
this.correlationId
|
|
512
528
|
)(localMetadata.metadata);
|
|
513
|
-
|
|
529
|
+
CacheHelpers.updateAuthorityEndpointMetadata(
|
|
530
|
+
metadataEntity,
|
|
514
531
|
hardcodedMetadata,
|
|
515
532
|
false
|
|
516
533
|
);
|
|
534
|
+
metadataEntity.canonical_authority =
|
|
535
|
+
this.canonicalAuthority;
|
|
517
536
|
}
|
|
518
537
|
}
|
|
519
538
|
}
|
|
@@ -540,7 +559,11 @@ export class Authority {
|
|
|
540
559
|
)(metadata);
|
|
541
560
|
}
|
|
542
561
|
|
|
543
|
-
|
|
562
|
+
CacheHelpers.updateAuthorityEndpointMetadata(
|
|
563
|
+
metadataEntity,
|
|
564
|
+
metadata,
|
|
565
|
+
true
|
|
566
|
+
);
|
|
544
567
|
return AuthorityMetadataSource.NETWORK;
|
|
545
568
|
} else {
|
|
546
569
|
// Metadata could not be obtained from the config, cache, network or hardcoded values
|
|
@@ -571,7 +594,11 @@ export class Authority {
|
|
|
571
594
|
this.logger.verbose(
|
|
572
595
|
"Found endpoint metadata in authority configuration"
|
|
573
596
|
);
|
|
574
|
-
|
|
597
|
+
CacheHelpers.updateAuthorityEndpointMetadata(
|
|
598
|
+
metadataEntity,
|
|
599
|
+
configMetadata,
|
|
600
|
+
false
|
|
601
|
+
);
|
|
575
602
|
return {
|
|
576
603
|
source: AuthorityMetadataSource.CONFIG,
|
|
577
604
|
};
|
|
@@ -590,7 +617,11 @@ export class Authority {
|
|
|
590
617
|
const hardcodedMetadata =
|
|
591
618
|
this.getEndpointMetadataFromHardcodedValues();
|
|
592
619
|
if (hardcodedMetadata) {
|
|
593
|
-
|
|
620
|
+
CacheHelpers.updateAuthorityEndpointMetadata(
|
|
621
|
+
metadataEntity,
|
|
622
|
+
hardcodedMetadata,
|
|
623
|
+
false
|
|
624
|
+
);
|
|
594
625
|
return {
|
|
595
626
|
source: AuthorityMetadataSource.HARDCODED_VALUES,
|
|
596
627
|
metadata: hardcodedMetadata,
|
|
@@ -603,7 +634,8 @@ export class Authority {
|
|
|
603
634
|
}
|
|
604
635
|
|
|
605
636
|
// Check cached metadata entity expiration status
|
|
606
|
-
const metadataEntityExpired =
|
|
637
|
+
const metadataEntityExpired =
|
|
638
|
+
CacheHelpers.isAuthorityMetadataExpired(metadataEntity);
|
|
607
639
|
if (
|
|
608
640
|
this.isAuthoritySameType(metadataEntity) &&
|
|
609
641
|
metadataEntity.endpointsFromNetwork &&
|
|
@@ -709,8 +741,8 @@ export class Authority {
|
|
|
709
741
|
* Get OAuth endpoints for common authorities.
|
|
710
742
|
*/
|
|
711
743
|
private getEndpointMetadataFromHardcodedValues(): OpenIdConfigResponse | null {
|
|
712
|
-
if (this.
|
|
713
|
-
return EndpointMetadata[this.
|
|
744
|
+
if (this.hostnameAndPort in EndpointMetadata) {
|
|
745
|
+
return EndpointMetadata[this.hostnameAndPort];
|
|
714
746
|
}
|
|
715
747
|
|
|
716
748
|
return null;
|
|
@@ -805,7 +837,11 @@ export class Authority {
|
|
|
805
837
|
)();
|
|
806
838
|
|
|
807
839
|
if (metadata) {
|
|
808
|
-
|
|
840
|
+
CacheHelpers.updateCloudDiscoveryMetadata(
|
|
841
|
+
metadataEntity,
|
|
842
|
+
metadata,
|
|
843
|
+
true
|
|
844
|
+
);
|
|
809
845
|
return AuthorityMetadataSource.NETWORK;
|
|
810
846
|
}
|
|
811
847
|
|
|
@@ -843,7 +879,11 @@ export class Authority {
|
|
|
843
879
|
this.logger.verbose(
|
|
844
880
|
"Found cloud discovery metadata in authority configuration"
|
|
845
881
|
);
|
|
846
|
-
|
|
882
|
+
CacheHelpers.updateCloudDiscoveryMetadata(
|
|
883
|
+
metadataEntity,
|
|
884
|
+
metadata,
|
|
885
|
+
false
|
|
886
|
+
);
|
|
847
887
|
return AuthorityMetadataSource.CONFIG;
|
|
848
888
|
}
|
|
849
889
|
|
|
@@ -865,7 +905,8 @@ export class Authority {
|
|
|
865
905
|
this.logger.verbose(
|
|
866
906
|
"Found cloud discovery metadata from hardcoded values."
|
|
867
907
|
);
|
|
868
|
-
|
|
908
|
+
CacheHelpers.updateCloudDiscoveryMetadata(
|
|
909
|
+
metadataEntity,
|
|
869
910
|
hardcodedMetadata,
|
|
870
911
|
false
|
|
871
912
|
);
|
|
@@ -877,7 +918,8 @@ export class Authority {
|
|
|
877
918
|
);
|
|
878
919
|
}
|
|
879
920
|
|
|
880
|
-
const metadataEntityExpired =
|
|
921
|
+
const metadataEntityExpired =
|
|
922
|
+
CacheHelpers.isAuthorityMetadataExpired(metadataEntity);
|
|
881
923
|
if (
|
|
882
924
|
this.isAuthoritySameType(metadataEntity) &&
|
|
883
925
|
metadataEntity.aliasesFromNetwork &&
|
|
@@ -1123,9 +1165,7 @@ export class Authority {
|
|
|
1123
1165
|
* helper function to generate environment from authority object
|
|
1124
1166
|
*/
|
|
1125
1167
|
getPreferredCache(): string {
|
|
1126
|
-
if (this.
|
|
1127
|
-
return Constants.DEFAULT_AUTHORITY_HOST;
|
|
1128
|
-
} else if (this.discoveryComplete()) {
|
|
1168
|
+
if (this.discoveryComplete()) {
|
|
1129
1169
|
return this.metadata.preferred_cache;
|
|
1130
1170
|
} else {
|
|
1131
1171
|
throw createClientAuthError(
|
|
@@ -4,10 +4,6 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { Authority, formatAuthorityUri } from "./Authority";
|
|
7
|
-
import {
|
|
8
|
-
createClientConfigurationError,
|
|
9
|
-
ClientConfigurationErrorCodes,
|
|
10
|
-
} from "../error/ClientConfigurationError";
|
|
11
7
|
import { INetworkModule } from "../network/INetworkModule";
|
|
12
8
|
import {
|
|
13
9
|
createClientAuthError,
|
|
@@ -20,99 +16,59 @@ import { IPerformanceClient } from "../telemetry/performance/IPerformanceClient"
|
|
|
20
16
|
import { PerformanceEvents } from "../telemetry/performance/PerformanceEvent";
|
|
21
17
|
import { invokeAsync } from "../utils/FunctionWrappers";
|
|
22
18
|
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
);
|
|
51
|
-
|
|
52
|
-
// Initialize authority and perform discovery endpoint check.
|
|
53
|
-
const acquireTokenAuthority: Authority =
|
|
54
|
-
AuthorityFactory.createInstance(
|
|
55
|
-
authorityUriFinal,
|
|
56
|
-
networkClient,
|
|
57
|
-
cacheManager,
|
|
58
|
-
authorityOptions,
|
|
59
|
-
logger,
|
|
60
|
-
performanceClient,
|
|
61
|
-
correlationId
|
|
62
|
-
);
|
|
63
|
-
|
|
64
|
-
try {
|
|
65
|
-
await invokeAsync(
|
|
66
|
-
acquireTokenAuthority.resolveEndpointsAsync.bind(
|
|
67
|
-
acquireTokenAuthority
|
|
68
|
-
),
|
|
69
|
-
PerformanceEvents.AuthorityResolveEndpointsAsync,
|
|
70
|
-
logger,
|
|
71
|
-
performanceClient,
|
|
72
|
-
correlationId
|
|
73
|
-
)();
|
|
74
|
-
return acquireTokenAuthority;
|
|
75
|
-
} catch (e) {
|
|
76
|
-
throw createClientAuthError(
|
|
77
|
-
ClientAuthErrorCodes.endpointResolutionError
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
19
|
+
/**
|
|
20
|
+
* Create an authority object of the correct type based on the url
|
|
21
|
+
* Performs basic authority validation - checks to see if the authority is of a valid type (i.e. aad, b2c, adfs)
|
|
22
|
+
*
|
|
23
|
+
* Also performs endpoint discovery.
|
|
24
|
+
*
|
|
25
|
+
* @param authorityUri
|
|
26
|
+
* @param networkClient
|
|
27
|
+
* @param protocolMode
|
|
28
|
+
* @internal
|
|
29
|
+
*/
|
|
30
|
+
export async function createDiscoveredInstance(
|
|
31
|
+
authorityUri: string,
|
|
32
|
+
networkClient: INetworkModule,
|
|
33
|
+
cacheManager: ICacheManager,
|
|
34
|
+
authorityOptions: AuthorityOptions,
|
|
35
|
+
logger: Logger,
|
|
36
|
+
correlationId: string,
|
|
37
|
+
performanceClient?: IPerformanceClient
|
|
38
|
+
): Promise<Authority> {
|
|
39
|
+
performanceClient?.addQueueMeasurement(
|
|
40
|
+
PerformanceEvents.AuthorityFactoryCreateDiscoveredInstance,
|
|
41
|
+
correlationId
|
|
42
|
+
);
|
|
43
|
+
const authorityUriFinal = Authority.transformCIAMAuthority(
|
|
44
|
+
formatAuthorityUri(authorityUri)
|
|
45
|
+
);
|
|
81
46
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
static createInstance(
|
|
93
|
-
authorityUrl: string,
|
|
94
|
-
networkInterface: INetworkModule,
|
|
95
|
-
cacheManager: ICacheManager,
|
|
96
|
-
authorityOptions: AuthorityOptions,
|
|
97
|
-
logger: Logger,
|
|
98
|
-
performanceClient?: IPerformanceClient,
|
|
99
|
-
correlationId?: string
|
|
100
|
-
): Authority {
|
|
101
|
-
// Throw error if authority url is empty
|
|
102
|
-
if (!authorityUrl) {
|
|
103
|
-
throw createClientConfigurationError(
|
|
104
|
-
ClientConfigurationErrorCodes.urlEmptyError
|
|
105
|
-
);
|
|
106
|
-
}
|
|
47
|
+
// Initialize authority and perform discovery endpoint check.
|
|
48
|
+
const acquireTokenAuthority: Authority = new Authority(
|
|
49
|
+
authorityUriFinal,
|
|
50
|
+
networkClient,
|
|
51
|
+
cacheManager,
|
|
52
|
+
authorityOptions,
|
|
53
|
+
logger,
|
|
54
|
+
correlationId,
|
|
55
|
+
performanceClient
|
|
56
|
+
);
|
|
107
57
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
58
|
+
try {
|
|
59
|
+
await invokeAsync(
|
|
60
|
+
acquireTokenAuthority.resolveEndpointsAsync.bind(
|
|
61
|
+
acquireTokenAuthority
|
|
62
|
+
),
|
|
63
|
+
PerformanceEvents.AuthorityResolveEndpointsAsync,
|
|
113
64
|
logger,
|
|
114
65
|
performanceClient,
|
|
115
66
|
correlationId
|
|
67
|
+
)();
|
|
68
|
+
return acquireTokenAuthority;
|
|
69
|
+
} catch (e) {
|
|
70
|
+
throw createClientAuthError(
|
|
71
|
+
ClientAuthErrorCodes.endpointResolutionError
|
|
116
72
|
);
|
|
117
73
|
}
|
|
118
74
|
}
|