@azure/msal-common 14.1.0-alpha.0 → 14.1.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 +31 -32
- package/dist/account/AccountInfo.d.ts.map +1 -1
- 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 +19 -19
- package/dist/account/ClientInfo.mjs +37 -37
- package/dist/account/TokenClaims.d.ts +65 -65
- package/dist/authority/Authority.d.ts +235 -235
- package/dist/authority/Authority.mjs +738 -738
- package/dist/authority/AuthorityFactory.d.ts +31 -31
- package/dist/authority/AuthorityFactory.mjs +47 -47
- package/dist/authority/AuthorityMetadata.d.ts +623 -623
- package/dist/authority/AuthorityMetadata.mjs +884 -884
- package/dist/authority/AuthorityOptions.d.ts +21 -21
- 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 +464 -446
- package/dist/cache/CacheManager.d.ts.map +1 -1
- package/dist/cache/CacheManager.mjs +1049 -998
- package/dist/cache/CacheManager.mjs.map +1 -1
- package/dist/cache/entities/AccessTokenEntity.d.ts +56 -56
- package/dist/cache/entities/AccessTokenEntity.mjs +109 -109
- package/dist/cache/entities/AccountEntity.d.ts +101 -101
- package/dist/cache/entities/AccountEntity.mjs +220 -220
- package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
- package/dist/cache/entities/AppMetadataEntity.mjs +66 -66
- package/dist/cache/entities/AuthorityMetadataEntity.d.ts +48 -48
- package/dist/cache/entities/AuthorityMetadataEntity.mjs +78 -78
- package/dist/cache/entities/CacheRecord.d.ts +14 -14
- package/dist/cache/entities/CacheRecord.mjs +14 -14
- package/dist/cache/entities/CredentialEntity.d.ts +88 -88
- package/dist/cache/entities/CredentialEntity.mjs +136 -136
- package/dist/cache/entities/IdTokenEntity.d.ts +34 -34
- package/dist/cache/entities/IdTokenEntity.mjs +56 -56
- package/dist/cache/entities/RefreshTokenEntity.d.ts +36 -36
- package/dist/cache/entities/RefreshTokenEntity.mjs +59 -59
- package/dist/cache/entities/ServerTelemetryEntity.d.ts +12 -12
- package/dist/cache/entities/ServerTelemetryEntity.mjs +27 -27
- package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
- package/dist/cache/entities/ThrottlingEntity.mjs +23 -23
- 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/CacheTypes.d.ts +66 -69
- package/dist/cache/utils/CacheTypes.d.ts.map +1 -1
- package/dist/client/AuthorizationCodeClient.d.ts +73 -73
- package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
- package/dist/client/AuthorizationCodeClient.mjs +408 -407
- package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
- package/dist/client/BaseClient.d.ts +51 -51
- package/dist/client/BaseClient.mjs +98 -98
- package/dist/client/RefreshTokenClient.d.ts +35 -35
- package/dist/client/RefreshTokenClient.d.ts.map +1 -1
- package/dist/client/RefreshTokenClient.mjs +187 -179
- package/dist/client/RefreshTokenClient.mjs.map +1 -1
- package/dist/client/SilentFlowClient.d.ts +26 -26
- package/dist/client/SilentFlowClient.mjs +123 -123
- package/dist/config/AppTokenProvider.d.ts +38 -38
- package/dist/config/ClientConfiguration.d.ts +150 -150
- package/dist/config/ClientConfiguration.mjs +97 -97
- package/dist/crypto/ICrypto.d.ts +58 -62
- package/dist/crypto/ICrypto.d.ts.map +1 -1
- package/dist/crypto/ICrypto.mjs +30 -33
- package/dist/crypto/ICrypto.mjs.map +1 -1
- 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 +11 -11
- 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 +232 -232
- package/dist/error/ClientAuthError.mjs +244 -244
- package/dist/error/ClientAuthErrorCodes.d.ts +43 -43
- package/dist/error/ClientAuthErrorCodes.mjs +47 -47
- 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 +57 -57
- package/dist/error/InteractionRequiredAuthError.mjs +76 -76
- package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +5 -5
- package/dist/error/InteractionRequiredAuthErrorCodes.mjs +11 -11
- 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 +8672 -8608
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +96 -96
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +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 +16 -16
- 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.mjs +4 -4
- package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
- package/dist/request/AuthenticationHeaderParser.mjs +55 -55
- package/dist/request/BaseAuthRequest.d.ts +40 -40
- 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 -19
- package/dist/request/CommonRefreshTokenRequest.d.ts.map +1 -1
- package/dist/request/CommonSilentFlowRequest.d.ts +20 -18
- package/dist/request/CommonSilentFlowRequest.d.ts.map +1 -1
- 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 +67 -67
- package/dist/response/ResponseHandler.mjs +311 -311
- package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
- package/dist/response/ServerAuthorizationTokenResponse.d.ts +46 -46
- package/dist/telemetry/performance/IPerformanceClient.d.ts +51 -51
- package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
- package/dist/telemetry/performance/PerformanceClient.d.ts +191 -191
- package/dist/telemetry/performance/PerformanceClient.mjs +409 -409
- package/dist/telemetry/performance/PerformanceEvent.d.ts +441 -433
- package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
- package/dist/telemetry/performance/PerformanceEvent.mjs +242 -234
- package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
- 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 +197 -197
- package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
- package/dist/url/IUri.d.ts +12 -12
- package/dist/url/UrlString.d.ts +83 -83
- package/dist/url/UrlString.mjs +279 -279
- package/dist/utils/Constants.d.ts +366 -366
- package/dist/utils/Constants.mjs +376 -376
- package/dist/utils/FunctionWrappers.d.ts +27 -27
- package/dist/utils/FunctionWrappers.d.ts.map +1 -1
- package/dist/utils/FunctionWrappers.mjs +84 -85
- package/dist/utils/FunctionWrappers.mjs.map +1 -1
- 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/package.json +1 -1
- package/src/account/AccountInfo.ts +0 -1
- package/src/cache/CacheManager.ts +96 -18
- package/src/cache/utils/CacheTypes.ts +6 -6
- package/src/client/AuthorizationCodeClient.ts +3 -1
- package/src/client/RefreshTokenClient.ts +19 -2
- package/src/crypto/ICrypto.ts +0 -7
- package/src/index.ts +1 -0
- package/src/packageMetadata.ts +1 -1
- package/src/request/CommonRefreshTokenRequest.ts +3 -0
- package/src/request/CommonSilentFlowRequest.ts +2 -0
- package/src/telemetry/performance/PerformanceEvent.ts +9 -0
- package/src/utils/FunctionWrappers.ts +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @azure/msal-common v14.1.0
|
|
1
|
+
/*! @azure/msal-common v14.1.0 2023-10-05 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { DEFAULT_CRYPTO_IMPLEMENTATION } from '../crypto/ICrypto.mjs';
|
|
4
4
|
import { Logger, LogLevel } from '../logger/Logger.mjs';
|
|
@@ -10,102 +10,102 @@ import { ProtocolMode } from '../authority/ProtocolMode.mjs';
|
|
|
10
10
|
import { createClientAuthError } from '../error/ClientAuthError.mjs';
|
|
11
11
|
import { methodNotImplemented } from '../error/ClientAuthErrorCodes.mjs';
|
|
12
12
|
|
|
13
|
-
/*
|
|
14
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
15
|
-
* Licensed under the MIT License.
|
|
16
|
-
*/
|
|
17
|
-
// Token renewal offset default in seconds
|
|
18
|
-
const DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;
|
|
19
|
-
const DEFAULT_SYSTEM_OPTIONS = {
|
|
20
|
-
tokenRenewalOffsetSeconds: DEFAULT_TOKEN_RENEWAL_OFFSET_SEC,
|
|
21
|
-
preventCorsPreflight: false,
|
|
22
|
-
};
|
|
23
|
-
const DEFAULT_LOGGER_IMPLEMENTATION = {
|
|
24
|
-
loggerCallback: () => {
|
|
25
|
-
// allow users to not set loggerCallback
|
|
26
|
-
},
|
|
27
|
-
piiLoggingEnabled: false,
|
|
28
|
-
logLevel: LogLevel.Info,
|
|
29
|
-
correlationId: Constants.EMPTY_STRING,
|
|
30
|
-
};
|
|
31
|
-
const DEFAULT_CACHE_OPTIONS = {
|
|
32
|
-
claimsBasedCachingEnabled: false,
|
|
33
|
-
};
|
|
34
|
-
const DEFAULT_NETWORK_IMPLEMENTATION = {
|
|
35
|
-
async sendGetRequestAsync() {
|
|
36
|
-
throw createClientAuthError(methodNotImplemented);
|
|
37
|
-
},
|
|
38
|
-
async sendPostRequestAsync() {
|
|
39
|
-
throw createClientAuthError(methodNotImplemented);
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
|
-
const DEFAULT_LIBRARY_INFO = {
|
|
43
|
-
sku: Constants.SKU,
|
|
44
|
-
version: version,
|
|
45
|
-
cpu: Constants.EMPTY_STRING,
|
|
46
|
-
os: Constants.EMPTY_STRING,
|
|
47
|
-
};
|
|
48
|
-
const DEFAULT_CLIENT_CREDENTIALS = {
|
|
49
|
-
clientSecret: Constants.EMPTY_STRING,
|
|
50
|
-
clientAssertion: undefined,
|
|
51
|
-
};
|
|
52
|
-
const DEFAULT_AZURE_CLOUD_OPTIONS = {
|
|
53
|
-
azureCloudInstance: AzureCloudInstance.None,
|
|
54
|
-
tenant: `${Constants.DEFAULT_COMMON_TENANT}`,
|
|
55
|
-
};
|
|
56
|
-
const DEFAULT_TELEMETRY_OPTIONS = {
|
|
57
|
-
application: {
|
|
58
|
-
appName: "",
|
|
59
|
-
appVersion: "",
|
|
60
|
-
},
|
|
61
|
-
};
|
|
62
|
-
/**
|
|
63
|
-
* Function that sets the default options when not explicitly configured from app developer
|
|
64
|
-
*
|
|
65
|
-
* @param Configuration
|
|
66
|
-
*
|
|
67
|
-
* @returns Configuration
|
|
68
|
-
*/
|
|
69
|
-
function buildClientConfiguration({ authOptions: userAuthOptions, systemOptions: userSystemOptions, loggerOptions: userLoggerOption, cacheOptions: userCacheOptions, storageInterface: storageImplementation, networkInterface: networkImplementation, cryptoInterface: cryptoImplementation, clientCredentials: clientCredentials, libraryInfo: libraryInfo, telemetry: telemetry, serverTelemetryManager: serverTelemetryManager, persistencePlugin: persistencePlugin, serializableCache: serializableCache, }) {
|
|
70
|
-
const loggerOptions = {
|
|
71
|
-
...DEFAULT_LOGGER_IMPLEMENTATION,
|
|
72
|
-
...userLoggerOption,
|
|
73
|
-
};
|
|
74
|
-
return {
|
|
75
|
-
authOptions: buildAuthOptions(userAuthOptions),
|
|
76
|
-
systemOptions: { ...DEFAULT_SYSTEM_OPTIONS, ...userSystemOptions },
|
|
77
|
-
loggerOptions: loggerOptions,
|
|
78
|
-
cacheOptions: { ...DEFAULT_CACHE_OPTIONS, ...userCacheOptions },
|
|
79
|
-
storageInterface: storageImplementation ||
|
|
80
|
-
new DefaultStorageClass(userAuthOptions.clientId, DEFAULT_CRYPTO_IMPLEMENTATION, new Logger(loggerOptions)),
|
|
81
|
-
networkInterface: networkImplementation || DEFAULT_NETWORK_IMPLEMENTATION,
|
|
82
|
-
cryptoInterface: cryptoImplementation || DEFAULT_CRYPTO_IMPLEMENTATION,
|
|
83
|
-
clientCredentials: clientCredentials || DEFAULT_CLIENT_CREDENTIALS,
|
|
84
|
-
libraryInfo: { ...DEFAULT_LIBRARY_INFO, ...libraryInfo },
|
|
85
|
-
telemetry: { ...DEFAULT_TELEMETRY_OPTIONS, ...telemetry },
|
|
86
|
-
serverTelemetryManager: serverTelemetryManager || null,
|
|
87
|
-
persistencePlugin: persistencePlugin || null,
|
|
88
|
-
serializableCache: serializableCache || null,
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Construct authoptions from the client and platform passed values
|
|
93
|
-
* @param authOptions
|
|
94
|
-
*/
|
|
95
|
-
function buildAuthOptions(authOptions) {
|
|
96
|
-
return {
|
|
97
|
-
clientCapabilities: [],
|
|
98
|
-
azureCloudOptions: DEFAULT_AZURE_CLOUD_OPTIONS,
|
|
99
|
-
skipAuthorityMetadataCache: false,
|
|
100
|
-
...authOptions,
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Returns true if config has protocolMode set to ProtocolMode.OIDC, false otherwise
|
|
105
|
-
* @param ClientConfiguration
|
|
106
|
-
*/
|
|
107
|
-
function isOidcProtocolMode(config) {
|
|
108
|
-
return (config.authOptions.authority.options.protocolMode === ProtocolMode.OIDC);
|
|
13
|
+
/*
|
|
14
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
15
|
+
* Licensed under the MIT License.
|
|
16
|
+
*/
|
|
17
|
+
// Token renewal offset default in seconds
|
|
18
|
+
const DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;
|
|
19
|
+
const DEFAULT_SYSTEM_OPTIONS = {
|
|
20
|
+
tokenRenewalOffsetSeconds: DEFAULT_TOKEN_RENEWAL_OFFSET_SEC,
|
|
21
|
+
preventCorsPreflight: false,
|
|
22
|
+
};
|
|
23
|
+
const DEFAULT_LOGGER_IMPLEMENTATION = {
|
|
24
|
+
loggerCallback: () => {
|
|
25
|
+
// allow users to not set loggerCallback
|
|
26
|
+
},
|
|
27
|
+
piiLoggingEnabled: false,
|
|
28
|
+
logLevel: LogLevel.Info,
|
|
29
|
+
correlationId: Constants.EMPTY_STRING,
|
|
30
|
+
};
|
|
31
|
+
const DEFAULT_CACHE_OPTIONS = {
|
|
32
|
+
claimsBasedCachingEnabled: false,
|
|
33
|
+
};
|
|
34
|
+
const DEFAULT_NETWORK_IMPLEMENTATION = {
|
|
35
|
+
async sendGetRequestAsync() {
|
|
36
|
+
throw createClientAuthError(methodNotImplemented);
|
|
37
|
+
},
|
|
38
|
+
async sendPostRequestAsync() {
|
|
39
|
+
throw createClientAuthError(methodNotImplemented);
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
const DEFAULT_LIBRARY_INFO = {
|
|
43
|
+
sku: Constants.SKU,
|
|
44
|
+
version: version,
|
|
45
|
+
cpu: Constants.EMPTY_STRING,
|
|
46
|
+
os: Constants.EMPTY_STRING,
|
|
47
|
+
};
|
|
48
|
+
const DEFAULT_CLIENT_CREDENTIALS = {
|
|
49
|
+
clientSecret: Constants.EMPTY_STRING,
|
|
50
|
+
clientAssertion: undefined,
|
|
51
|
+
};
|
|
52
|
+
const DEFAULT_AZURE_CLOUD_OPTIONS = {
|
|
53
|
+
azureCloudInstance: AzureCloudInstance.None,
|
|
54
|
+
tenant: `${Constants.DEFAULT_COMMON_TENANT}`,
|
|
55
|
+
};
|
|
56
|
+
const DEFAULT_TELEMETRY_OPTIONS = {
|
|
57
|
+
application: {
|
|
58
|
+
appName: "",
|
|
59
|
+
appVersion: "",
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Function that sets the default options when not explicitly configured from app developer
|
|
64
|
+
*
|
|
65
|
+
* @param Configuration
|
|
66
|
+
*
|
|
67
|
+
* @returns Configuration
|
|
68
|
+
*/
|
|
69
|
+
function buildClientConfiguration({ authOptions: userAuthOptions, systemOptions: userSystemOptions, loggerOptions: userLoggerOption, cacheOptions: userCacheOptions, storageInterface: storageImplementation, networkInterface: networkImplementation, cryptoInterface: cryptoImplementation, clientCredentials: clientCredentials, libraryInfo: libraryInfo, telemetry: telemetry, serverTelemetryManager: serverTelemetryManager, persistencePlugin: persistencePlugin, serializableCache: serializableCache, }) {
|
|
70
|
+
const loggerOptions = {
|
|
71
|
+
...DEFAULT_LOGGER_IMPLEMENTATION,
|
|
72
|
+
...userLoggerOption,
|
|
73
|
+
};
|
|
74
|
+
return {
|
|
75
|
+
authOptions: buildAuthOptions(userAuthOptions),
|
|
76
|
+
systemOptions: { ...DEFAULT_SYSTEM_OPTIONS, ...userSystemOptions },
|
|
77
|
+
loggerOptions: loggerOptions,
|
|
78
|
+
cacheOptions: { ...DEFAULT_CACHE_OPTIONS, ...userCacheOptions },
|
|
79
|
+
storageInterface: storageImplementation ||
|
|
80
|
+
new DefaultStorageClass(userAuthOptions.clientId, DEFAULT_CRYPTO_IMPLEMENTATION, new Logger(loggerOptions)),
|
|
81
|
+
networkInterface: networkImplementation || DEFAULT_NETWORK_IMPLEMENTATION,
|
|
82
|
+
cryptoInterface: cryptoImplementation || DEFAULT_CRYPTO_IMPLEMENTATION,
|
|
83
|
+
clientCredentials: clientCredentials || DEFAULT_CLIENT_CREDENTIALS,
|
|
84
|
+
libraryInfo: { ...DEFAULT_LIBRARY_INFO, ...libraryInfo },
|
|
85
|
+
telemetry: { ...DEFAULT_TELEMETRY_OPTIONS, ...telemetry },
|
|
86
|
+
serverTelemetryManager: serverTelemetryManager || null,
|
|
87
|
+
persistencePlugin: persistencePlugin || null,
|
|
88
|
+
serializableCache: serializableCache || null,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Construct authoptions from the client and platform passed values
|
|
93
|
+
* @param authOptions
|
|
94
|
+
*/
|
|
95
|
+
function buildAuthOptions(authOptions) {
|
|
96
|
+
return {
|
|
97
|
+
clientCapabilities: [],
|
|
98
|
+
azureCloudOptions: DEFAULT_AZURE_CLOUD_OPTIONS,
|
|
99
|
+
skipAuthorityMetadataCache: false,
|
|
100
|
+
...authOptions,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Returns true if config has protocolMode set to ProtocolMode.OIDC, false otherwise
|
|
105
|
+
* @param ClientConfiguration
|
|
106
|
+
*/
|
|
107
|
+
function isOidcProtocolMode(config) {
|
|
108
|
+
return (config.authOptions.authority.options.protocolMode === ProtocolMode.OIDC);
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
export { DEFAULT_SYSTEM_OPTIONS, buildClientConfiguration, isOidcProtocolMode };
|
package/dist/crypto/ICrypto.d.ts
CHANGED
|
@@ -1,63 +1,59 @@
|
|
|
1
|
-
import { BaseAuthRequest } from "../request/BaseAuthRequest";
|
|
2
|
-
import { SignedHttpRequest } from "./SignedHttpRequest";
|
|
3
|
-
/**
|
|
4
|
-
* The PkceCodes type describes the structure
|
|
5
|
-
* of objects that contain PKCE code
|
|
6
|
-
* challenge and verifier pairs
|
|
7
|
-
*/
|
|
8
|
-
export type PkceCodes = {
|
|
9
|
-
verifier: string;
|
|
10
|
-
challenge: string;
|
|
11
|
-
};
|
|
12
|
-
export type SignedHttpRequestParameters = Pick<BaseAuthRequest, "resourceRequestMethod" | "resourceRequestUri" | "shrClaims" | "shrNonce"> & {
|
|
13
|
-
correlationId?: string;
|
|
14
|
-
};
|
|
15
|
-
/**
|
|
16
|
-
* Interface for crypto functions used by library
|
|
17
|
-
*/
|
|
18
|
-
export interface ICrypto {
|
|
19
|
-
/**
|
|
20
|
-
* Creates a guid randomly.
|
|
21
|
-
*/
|
|
22
|
-
createNewGuid(): string;
|
|
23
|
-
/**
|
|
24
|
-
* base64 Encode string
|
|
25
|
-
* @param input
|
|
26
|
-
*/
|
|
27
|
-
base64Encode(input: string): string;
|
|
28
|
-
/**
|
|
29
|
-
* base64 decode string
|
|
30
|
-
* @param input
|
|
31
|
-
*/
|
|
32
|
-
base64Decode(input: string): string;
|
|
33
|
-
/**
|
|
34
|
-
*
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
*
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
*
|
|
45
|
-
*/
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
*
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
*
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
*/
|
|
60
|
-
hashString(plainText: string): Promise<string>;
|
|
61
|
-
}
|
|
62
|
-
export declare const DEFAULT_CRYPTO_IMPLEMENTATION: ICrypto;
|
|
1
|
+
import { BaseAuthRequest } from "../request/BaseAuthRequest";
|
|
2
|
+
import { SignedHttpRequest } from "./SignedHttpRequest";
|
|
3
|
+
/**
|
|
4
|
+
* The PkceCodes type describes the structure
|
|
5
|
+
* of objects that contain PKCE code
|
|
6
|
+
* challenge and verifier pairs
|
|
7
|
+
*/
|
|
8
|
+
export type PkceCodes = {
|
|
9
|
+
verifier: string;
|
|
10
|
+
challenge: string;
|
|
11
|
+
};
|
|
12
|
+
export type SignedHttpRequestParameters = Pick<BaseAuthRequest, "resourceRequestMethod" | "resourceRequestUri" | "shrClaims" | "shrNonce"> & {
|
|
13
|
+
correlationId?: string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Interface for crypto functions used by library
|
|
17
|
+
*/
|
|
18
|
+
export interface ICrypto {
|
|
19
|
+
/**
|
|
20
|
+
* Creates a guid randomly.
|
|
21
|
+
*/
|
|
22
|
+
createNewGuid(): string;
|
|
23
|
+
/**
|
|
24
|
+
* base64 Encode string
|
|
25
|
+
* @param input
|
|
26
|
+
*/
|
|
27
|
+
base64Encode(input: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* base64 decode string
|
|
30
|
+
* @param input
|
|
31
|
+
*/
|
|
32
|
+
base64Decode(input: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Generates an JWK RSA S256 Thumbprint
|
|
35
|
+
* @param request
|
|
36
|
+
*/
|
|
37
|
+
getPublicKeyThumbprint(request: SignedHttpRequestParameters): Promise<string>;
|
|
38
|
+
/**
|
|
39
|
+
* Removes cryptographic keypair from key store matching the keyId passed in
|
|
40
|
+
* @param kid
|
|
41
|
+
*/
|
|
42
|
+
removeTokenBindingKey(kid: string): Promise<boolean>;
|
|
43
|
+
/**
|
|
44
|
+
* Removes all cryptographic keys from IndexedDB storage
|
|
45
|
+
*/
|
|
46
|
+
clearKeystore(): Promise<boolean>;
|
|
47
|
+
/**
|
|
48
|
+
* Returns a signed proof-of-possession token with a given acces token that contains a cnf claim with the required kid.
|
|
49
|
+
* @param accessToken
|
|
50
|
+
*/
|
|
51
|
+
signJwt(payload: SignedHttpRequest, kid: string, correlationId?: string): Promise<string>;
|
|
52
|
+
/**
|
|
53
|
+
* Returns the SHA-256 hash of an input string
|
|
54
|
+
* @param plainText
|
|
55
|
+
*/
|
|
56
|
+
hashString(plainText: string): Promise<string>;
|
|
57
|
+
}
|
|
58
|
+
export declare const DEFAULT_CRYPTO_IMPLEMENTATION: ICrypto;
|
|
63
59
|
//# sourceMappingURL=ICrypto.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ICrypto.d.ts","sourceRoot":"","sources":["../../src/crypto/ICrypto.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAC1C,eAAe,EACf,uBAAuB,GAAG,oBAAoB,GAAG,WAAW,GAAG,UAAU,CAC5E,GAAG;IACA,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,OAAO;IACpB;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC
|
|
1
|
+
{"version":3,"file":"ICrypto.d.ts","sourceRoot":"","sources":["../../src/crypto/ICrypto.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAC1C,eAAe,EACf,uBAAuB,GAAG,oBAAoB,GAAG,WAAW,GAAG,UAAU,CAC5E,GAAG;IACA,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,OAAO;IACpB;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC;;;OAGG;IACH,sBAAsB,CAClB,OAAO,EAAE,2BAA2B,GACrC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB;;;OAGG;IACH,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC;;;OAGG;IACH,OAAO,CACH,OAAO,EAAE,iBAAiB,EAC1B,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAClD;AAED,eAAO,MAAM,6BAA6B,EAAE,OAyB3C,CAAC"}
|
package/dist/crypto/ICrypto.mjs
CHANGED
|
@@ -1,40 +1,37 @@
|
|
|
1
|
-
/*! @azure/msal-common v14.1.0
|
|
1
|
+
/*! @azure/msal-common v14.1.0 2023-10-05 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { createClientAuthError } from '../error/ClientAuthError.mjs';
|
|
4
4
|
import { methodNotImplemented } from '../error/ClientAuthErrorCodes.mjs';
|
|
5
5
|
|
|
6
|
-
/*
|
|
7
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
8
|
-
* Licensed under the MIT License.
|
|
9
|
-
*/
|
|
10
|
-
const DEFAULT_CRYPTO_IMPLEMENTATION = {
|
|
11
|
-
createNewGuid: () => {
|
|
12
|
-
throw createClientAuthError(methodNotImplemented);
|
|
13
|
-
},
|
|
14
|
-
base64Decode: () => {
|
|
15
|
-
throw createClientAuthError(methodNotImplemented);
|
|
16
|
-
},
|
|
17
|
-
base64Encode: () => {
|
|
18
|
-
throw createClientAuthError(methodNotImplemented);
|
|
19
|
-
},
|
|
20
|
-
async
|
|
21
|
-
throw createClientAuthError(methodNotImplemented);
|
|
22
|
-
},
|
|
23
|
-
async
|
|
24
|
-
throw createClientAuthError(methodNotImplemented);
|
|
25
|
-
},
|
|
26
|
-
async
|
|
27
|
-
throw createClientAuthError(methodNotImplemented);
|
|
28
|
-
},
|
|
29
|
-
async
|
|
30
|
-
throw createClientAuthError(methodNotImplemented);
|
|
31
|
-
},
|
|
32
|
-
async
|
|
33
|
-
throw createClientAuthError(methodNotImplemented);
|
|
34
|
-
},
|
|
35
|
-
async hashString() {
|
|
36
|
-
throw createClientAuthError(methodNotImplemented);
|
|
37
|
-
},
|
|
6
|
+
/*
|
|
7
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
8
|
+
* Licensed under the MIT License.
|
|
9
|
+
*/
|
|
10
|
+
const DEFAULT_CRYPTO_IMPLEMENTATION = {
|
|
11
|
+
createNewGuid: () => {
|
|
12
|
+
throw createClientAuthError(methodNotImplemented);
|
|
13
|
+
},
|
|
14
|
+
base64Decode: () => {
|
|
15
|
+
throw createClientAuthError(methodNotImplemented);
|
|
16
|
+
},
|
|
17
|
+
base64Encode: () => {
|
|
18
|
+
throw createClientAuthError(methodNotImplemented);
|
|
19
|
+
},
|
|
20
|
+
async getPublicKeyThumbprint() {
|
|
21
|
+
throw createClientAuthError(methodNotImplemented);
|
|
22
|
+
},
|
|
23
|
+
async removeTokenBindingKey() {
|
|
24
|
+
throw createClientAuthError(methodNotImplemented);
|
|
25
|
+
},
|
|
26
|
+
async clearKeystore() {
|
|
27
|
+
throw createClientAuthError(methodNotImplemented);
|
|
28
|
+
},
|
|
29
|
+
async signJwt() {
|
|
30
|
+
throw createClientAuthError(methodNotImplemented);
|
|
31
|
+
},
|
|
32
|
+
async hashString() {
|
|
33
|
+
throw createClientAuthError(methodNotImplemented);
|
|
34
|
+
},
|
|
38
35
|
};
|
|
39
36
|
|
|
40
37
|
export { DEFAULT_CRYPTO_IMPLEMENTATION };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ICrypto.mjs","sources":["../../src/crypto/ICrypto.ts"],"sourcesContent":[null],"names":["ClientAuthErrorCodes.methodNotImplemented"],"mappings":";;;;;AASA;AACA;AAEA;;;AAIG,IAAA,aAAA,EAAA,MAAA;AACH,QAAM,2BAAkB,CAAAA,oBAAA,CAAA,CAAA;KACZ;IACR,oBAAkB;QACpB,MAAA,qBAAA,CAAAA,oBAAA,CAAA,CAAA;AAEF,KAAA;IAII,YAAa,EAAC,MAAE;QAClB,MAAA,qBAAA,CAAAA,oBAAA,CAAA,CAAA;AAEF,KAAA;;AAEG,QAAA,MAAA,qBAAA,CAAAA,oBAAA,CAAA,CAAA;AACH,KAAA;AACI,IAAA,MAAA,
|
|
1
|
+
{"version":3,"file":"ICrypto.mjs","sources":["../../src/crypto/ICrypto.ts"],"sourcesContent":[null],"names":["ClientAuthErrorCodes.methodNotImplemented"],"mappings":";;;;;AASA;AACA;AAEA;;;AAIG,IAAA,aAAA,EAAA,MAAA;AACH,QAAM,2BAAkB,CAAAA,oBAAA,CAAA,CAAA;KACZ;IACR,oBAAkB;QACpB,MAAA,qBAAA,CAAAA,oBAAA,CAAA,CAAA;AAEF,KAAA;IAII,YAAa,EAAC,MAAE;QAClB,MAAA,qBAAA,CAAAA,oBAAA,CAAA,CAAA;AAEF,KAAA;;AAEG,QAAA,MAAA,qBAAA,CAAAA,oBAAA,CAAA,CAAA;AACH,KAAA;AACI,IAAA,MAAA,qBAAA,GAAA;;AAEG,KAAA;IACH,MAAa;AACb,QAAA,MAAA,qBAAA,CAAAA,oBAAA,CAAA,CAAA;;;AAGG,QAAA,MAAA,qBAAA,CAAAA,oBAAA,CAAA,CAAA;AACH,KAAA;AACA,IAAA,MAAA,UAAA,GAAA;;;AAGG;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export interface IGuidGenerator {
|
|
2
|
-
generateGuid(): string;
|
|
3
|
-
isGuid(guid: string): boolean;
|
|
4
|
-
}
|
|
1
|
+
export interface IGuidGenerator {
|
|
2
|
+
generateGuid(): string;
|
|
3
|
+
isGuid(guid: string): boolean;
|
|
4
|
+
}
|
|
5
5
|
//# sourceMappingURL=IGuidGenerator.d.ts.map
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { JsonTypes } from "../utils/Constants";
|
|
2
|
-
export type JoseHeaderOptions = {
|
|
3
|
-
typ?: JsonTypes;
|
|
4
|
-
alg?: string;
|
|
5
|
-
kid?: string;
|
|
6
|
-
};
|
|
7
|
-
/** @internal */
|
|
8
|
-
export declare class JoseHeader {
|
|
9
|
-
typ?: JsonTypes;
|
|
10
|
-
alg?: string;
|
|
11
|
-
kid?: string;
|
|
12
|
-
constructor(options: JoseHeaderOptions);
|
|
13
|
-
/**
|
|
14
|
-
* Builds SignedHttpRequest formatted JOSE Header from the
|
|
15
|
-
* JOSE Header options provided or previously set on the object and returns
|
|
16
|
-
* the stringified header object.
|
|
17
|
-
* Throws if keyId or algorithm aren't provided since they are required for Access Token Binding.
|
|
18
|
-
* @param shrHeaderOptions
|
|
19
|
-
* @returns
|
|
20
|
-
*/
|
|
21
|
-
static getShrHeaderString(shrHeaderOptions: JoseHeaderOptions): string;
|
|
22
|
-
}
|
|
1
|
+
import { JsonTypes } from "../utils/Constants";
|
|
2
|
+
export type JoseHeaderOptions = {
|
|
3
|
+
typ?: JsonTypes;
|
|
4
|
+
alg?: string;
|
|
5
|
+
kid?: string;
|
|
6
|
+
};
|
|
7
|
+
/** @internal */
|
|
8
|
+
export declare class JoseHeader {
|
|
9
|
+
typ?: JsonTypes;
|
|
10
|
+
alg?: string;
|
|
11
|
+
kid?: string;
|
|
12
|
+
constructor(options: JoseHeaderOptions);
|
|
13
|
+
/**
|
|
14
|
+
* Builds SignedHttpRequest formatted JOSE Header from the
|
|
15
|
+
* JOSE Header options provided or previously set on the object and returns
|
|
16
|
+
* the stringified header object.
|
|
17
|
+
* Throws if keyId or algorithm aren't provided since they are required for Access Token Binding.
|
|
18
|
+
* @param shrHeaderOptions
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
static getShrHeaderString(shrHeaderOptions: JoseHeaderOptions): string;
|
|
22
|
+
}
|
|
23
23
|
//# sourceMappingURL=JoseHeader.d.ts.map
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
/*! @azure/msal-common v14.1.0
|
|
1
|
+
/*! @azure/msal-common v14.1.0 2023-10-05 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { createJoseHeaderError } from '../error/JoseHeaderError.mjs';
|
|
4
4
|
import { JsonTypes } from '../utils/Constants.mjs';
|
|
5
5
|
import { missingKidError, missingAlgError } from '../error/JoseHeaderErrorCodes.mjs';
|
|
6
6
|
|
|
7
|
-
/*
|
|
8
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
9
|
-
* Licensed under the MIT License.
|
|
10
|
-
*/
|
|
11
|
-
/** @internal */
|
|
12
|
-
class JoseHeader {
|
|
13
|
-
constructor(options) {
|
|
14
|
-
this.typ = options.typ;
|
|
15
|
-
this.alg = options.alg;
|
|
16
|
-
this.kid = options.kid;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Builds SignedHttpRequest formatted JOSE Header from the
|
|
20
|
-
* JOSE Header options provided or previously set on the object and returns
|
|
21
|
-
* the stringified header object.
|
|
22
|
-
* Throws if keyId or algorithm aren't provided since they are required for Access Token Binding.
|
|
23
|
-
* @param shrHeaderOptions
|
|
24
|
-
* @returns
|
|
25
|
-
*/
|
|
26
|
-
static getShrHeaderString(shrHeaderOptions) {
|
|
27
|
-
// KeyID is required on the SHR header
|
|
28
|
-
if (!shrHeaderOptions.kid) {
|
|
29
|
-
throw createJoseHeaderError(missingKidError);
|
|
30
|
-
}
|
|
31
|
-
// Alg is required on the SHR header
|
|
32
|
-
if (!shrHeaderOptions.alg) {
|
|
33
|
-
throw createJoseHeaderError(missingAlgError);
|
|
34
|
-
}
|
|
35
|
-
const shrHeader = new JoseHeader({
|
|
36
|
-
// Access Token PoP headers must have type pop, but the type header can be overriden for special cases
|
|
37
|
-
typ: shrHeaderOptions.typ || JsonTypes.Pop,
|
|
38
|
-
kid: shrHeaderOptions.kid,
|
|
39
|
-
alg: shrHeaderOptions.alg,
|
|
40
|
-
});
|
|
41
|
-
return JSON.stringify(shrHeader);
|
|
42
|
-
}
|
|
7
|
+
/*
|
|
8
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
9
|
+
* Licensed under the MIT License.
|
|
10
|
+
*/
|
|
11
|
+
/** @internal */
|
|
12
|
+
class JoseHeader {
|
|
13
|
+
constructor(options) {
|
|
14
|
+
this.typ = options.typ;
|
|
15
|
+
this.alg = options.alg;
|
|
16
|
+
this.kid = options.kid;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Builds SignedHttpRequest formatted JOSE Header from the
|
|
20
|
+
* JOSE Header options provided or previously set on the object and returns
|
|
21
|
+
* the stringified header object.
|
|
22
|
+
* Throws if keyId or algorithm aren't provided since they are required for Access Token Binding.
|
|
23
|
+
* @param shrHeaderOptions
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
static getShrHeaderString(shrHeaderOptions) {
|
|
27
|
+
// KeyID is required on the SHR header
|
|
28
|
+
if (!shrHeaderOptions.kid) {
|
|
29
|
+
throw createJoseHeaderError(missingKidError);
|
|
30
|
+
}
|
|
31
|
+
// Alg is required on the SHR header
|
|
32
|
+
if (!shrHeaderOptions.alg) {
|
|
33
|
+
throw createJoseHeaderError(missingAlgError);
|
|
34
|
+
}
|
|
35
|
+
const shrHeader = new JoseHeader({
|
|
36
|
+
// Access Token PoP headers must have type pop, but the type header can be overriden for special cases
|
|
37
|
+
typ: shrHeaderOptions.typ || JsonTypes.Pop,
|
|
38
|
+
kid: shrHeaderOptions.kid,
|
|
39
|
+
alg: shrHeaderOptions.alg,
|
|
40
|
+
});
|
|
41
|
+
return JSON.stringify(shrHeader);
|
|
42
|
+
}
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
export { JoseHeader };
|