@azure/msal-common 16.12.0 → 16.14.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.mjs +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 +2 -4
- package/dist/authority/Authority.mjs.map +1 -1
- package/dist/authority/AuthorityFactory.mjs +1 -1
- package/dist/authority/AuthorityMetadata.mjs +2 -14
- package/dist/authority/AuthorityMetadata.mjs.map +1 -1
- package/dist/authority/AuthorityOptions.mjs +1 -3
- package/dist/authority/AuthorityOptions.mjs.map +1 -1
- package/dist/authority/AuthorityType.mjs +1 -2
- package/dist/authority/AuthorityType.mjs.map +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.mjs +45 -23
- package/dist/cache/CacheManager.mjs.map +1 -1
- package/dist/cache/persistence/TokenCacheContext.mjs +1 -1
- package/dist/cache/utils/AccountEntityUtils.mjs +3 -3
- package/dist/cache/utils/AccountEntityUtils.mjs.map +1 -1
- package/dist/cache/utils/CacheHelpers.mjs +10 -3
- package/dist/cache/utils/CacheHelpers.mjs.map +1 -1
- package/dist/client/AuthorizationCodeClient.mjs +5 -4
- package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
- package/dist/client/RefreshTokenClient.mjs +12 -4
- package/dist/client/RefreshTokenClient.mjs.map +1 -1
- package/dist/client/SilentFlowClient.mjs +22 -3
- package/dist/client/SilentFlowClient.mjs.map +1 -1
- package/dist/config/ClientConfiguration.mjs +6 -3
- package/dist/config/ClientConfiguration.mjs.map +1 -1
- package/dist/constants/AADServerParamKeys.mjs +3 -2
- package/dist/constants/AADServerParamKeys.mjs.map +1 -1
- package/dist/crypto/DpopProofGenerator.mjs +153 -0
- package/dist/crypto/DpopProofGenerator.mjs.map +1 -0
- package/dist/crypto/ICrypto.mjs +16 -11
- package/dist/crypto/ICrypto.mjs.map +1 -1
- package/dist/crypto/ITokenBindingKeyManager.mjs +28 -0
- package/dist/crypto/ITokenBindingKeyManager.mjs.map +1 -0
- package/dist/crypto/JoseHeader.mjs +38 -11
- package/dist/crypto/JoseHeader.mjs.map +1 -1
- package/dist/crypto/PopTokenGenerator.mjs +28 -5
- package/dist/crypto/PopTokenGenerator.mjs.map +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 +3 -2
- package/dist/error/ClientAuthErrorCodes.mjs.map +1 -1
- package/dist/error/ClientConfigurationError.mjs +1 -1
- package/dist/error/ClientConfigurationErrorCodes.mjs +6 -3
- package/dist/error/ClientConfigurationErrorCodes.mjs.map +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 +5 -3
- package/dist/error/JoseHeaderErrorCodes.mjs.map +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 +3 -2
- package/dist/index-node.mjs.map +1 -1
- package/dist/index.mjs +3 -2
- package/dist/index.mjs.map +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.mjs +2 -2
- package/dist/protocol/Authorize.mjs +1 -1
- package/dist/protocol/Token.mjs +22 -4
- package/dist/protocol/Token.mjs.map +1 -1
- package/dist/request/AuthenticationHeaderParser.mjs +1 -1
- package/dist/request/BaseAuthRequest.mjs +1 -1
- package/dist/request/BaseAuthRequest.mjs.map +1 -1
- package/dist/request/RequestParameterBuilder.mjs +8 -4
- package/dist/request/RequestParameterBuilder.mjs.map +1 -1
- package/dist/request/ScopeSet.mjs +1 -1
- package/dist/response/ResponseHandler.mjs +65 -9
- package/dist/response/ResponseHandler.mjs.map +1 -1
- package/dist/telemetry/performance/PerformanceClient.mjs +1 -1
- package/dist/telemetry/performance/PerformanceEvent.mjs +1 -1
- package/dist/telemetry/performance/PerformanceEvent.mjs.map +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 +6 -3
- package/dist/utils/Constants.mjs.map +1 -1
- package/dist/utils/FunctionWrappers.mjs +1 -1
- package/dist/utils/ObjectUtils.mjs +28 -0
- package/dist/utils/ObjectUtils.mjs.map +1 -0
- 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.mjs +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 +2 -4
- package/dist-browser/authority/Authority.mjs.map +1 -1
- package/dist-browser/authority/AuthorityFactory.mjs +1 -1
- package/dist-browser/authority/AuthorityMetadata.mjs +2 -14
- package/dist-browser/authority/AuthorityMetadata.mjs.map +1 -1
- package/dist-browser/authority/AuthorityOptions.mjs +1 -3
- package/dist-browser/authority/AuthorityOptions.mjs.map +1 -1
- package/dist-browser/authority/AuthorityType.mjs +1 -2
- package/dist-browser/authority/AuthorityType.mjs.map +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.mjs +45 -23
- 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 +3 -3
- package/dist-browser/cache/utils/AccountEntityUtils.mjs.map +1 -1
- package/dist-browser/cache/utils/CacheHelpers.mjs +10 -3
- package/dist-browser/cache/utils/CacheHelpers.mjs.map +1 -1
- package/dist-browser/client/AuthorizationCodeClient.mjs +5 -4
- package/dist-browser/client/AuthorizationCodeClient.mjs.map +1 -1
- package/dist-browser/client/RefreshTokenClient.mjs +12 -4
- package/dist-browser/client/RefreshTokenClient.mjs.map +1 -1
- package/dist-browser/client/SilentFlowClient.mjs +22 -3
- package/dist-browser/client/SilentFlowClient.mjs.map +1 -1
- package/dist-browser/config/ClientConfiguration.mjs +6 -3
- package/dist-browser/config/ClientConfiguration.mjs.map +1 -1
- package/dist-browser/constants/AADServerParamKeys.mjs +3 -2
- package/dist-browser/constants/AADServerParamKeys.mjs.map +1 -1
- package/dist-browser/crypto/DpopProofGenerator.mjs +153 -0
- package/dist-browser/crypto/DpopProofGenerator.mjs.map +1 -0
- package/dist-browser/crypto/ICrypto.mjs +16 -11
- package/dist-browser/crypto/ICrypto.mjs.map +1 -1
- package/dist-browser/crypto/ITokenBindingKeyManager.mjs +28 -0
- package/dist-browser/crypto/ITokenBindingKeyManager.mjs.map +1 -0
- package/dist-browser/crypto/JoseHeader.mjs +38 -11
- package/dist-browser/crypto/JoseHeader.mjs.map +1 -1
- package/dist-browser/crypto/PopTokenGenerator.mjs +28 -5
- package/dist-browser/crypto/PopTokenGenerator.mjs.map +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 +3 -2
- package/dist-browser/error/ClientAuthErrorCodes.mjs.map +1 -1
- package/dist-browser/error/ClientConfigurationError.mjs +1 -1
- package/dist-browser/error/ClientConfigurationErrorCodes.mjs +6 -3
- package/dist-browser/error/ClientConfigurationErrorCodes.mjs.map +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 +5 -3
- package/dist-browser/error/JoseHeaderErrorCodes.mjs.map +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 +3 -2
- package/dist-browser/index-browser.mjs.map +1 -1
- package/dist-browser/index.mjs +3 -2
- package/dist-browser/index.mjs.map +1 -1
- package/dist-browser/log-strings-mapping.json +13 -5
- 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.mjs +2 -2
- package/dist-browser/protocol/Authorize.mjs +1 -1
- package/dist-browser/protocol/Token.mjs +22 -4
- package/dist-browser/protocol/Token.mjs.map +1 -1
- package/dist-browser/request/AuthenticationHeaderParser.mjs +1 -1
- package/dist-browser/request/BaseAuthRequest.mjs +1 -1
- package/dist-browser/request/BaseAuthRequest.mjs.map +1 -1
- package/dist-browser/request/RequestParameterBuilder.mjs +8 -4
- package/dist-browser/request/RequestParameterBuilder.mjs.map +1 -1
- package/dist-browser/request/ScopeSet.mjs +1 -1
- package/dist-browser/response/ResponseHandler.mjs +65 -9
- package/dist-browser/response/ResponseHandler.mjs.map +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/PerformanceEvent.mjs.map +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 +6 -3
- package/dist-browser/utils/Constants.mjs.map +1 -1
- package/dist-browser/utils/FunctionWrappers.mjs +1 -1
- package/dist-browser/utils/ObjectUtils.mjs +28 -0
- package/dist-browser/utils/ObjectUtils.mjs.map +1 -0
- 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 +5 -67
- package/lib/index-browser.cjs.map +1 -1
- package/lib/{index-node-3p7V__ym.js → index-node-l_NIe8t5.js} +520 -83
- package/lib/index-node-l_NIe8t5.js.map +1 -0
- package/lib/index-node.cjs +4 -2
- package/lib/index-node.cjs.map +1 -1
- package/lib/index.cjs +5 -3
- package/lib/index.cjs.map +1 -1
- package/package.json +1 -1
- package/src/authority/Authority.ts +0 -2
- package/src/authority/AuthorityMetadata.ts +1 -13
- package/src/authority/AuthorityOptions.ts +0 -3
- package/src/authority/AuthorityType.ts +0 -1
- package/src/cache/CacheManager.ts +73 -35
- package/src/cache/utils/AccountEntityUtils.ts +2 -2
- package/src/cache/utils/CacheHelpers.ts +11 -1
- package/src/client/AuthorizationCodeClient.ts +11 -1
- package/src/client/RefreshTokenClient.ts +25 -1
- package/src/client/SilentFlowClient.ts +44 -2
- package/src/config/ClientConfiguration.ts +14 -1
- package/src/constants/AADServerParamKeys.ts +1 -0
- package/src/crypto/DpopProofGenerator.ts +92 -60
- package/src/crypto/ICrypto.ts +31 -26
- package/src/crypto/ITokenBindingKeyManager.ts +85 -0
- package/src/crypto/JoseHeader.ts +75 -14
- package/src/crypto/PopTokenGenerator.ts +62 -18
- package/src/crypto/PublicJsonWebKey.ts +24 -0
- package/src/error/ClientAuthErrorCodes.ts +1 -0
- package/src/error/ClientConfigurationErrorCodes.ts +4 -0
- package/src/error/JoseHeaderErrorCodes.ts +2 -0
- package/src/exports-common.ts +8 -0
- package/src/packageMetadata.ts +1 -1
- package/src/protocol/Token.ts +44 -1
- package/src/request/BaseAuthRequest.ts +5 -0
- package/src/request/CommonAuthorizationUrlRequest.ts +5 -0
- package/src/request/RequestParameterBuilder.ts +7 -3
- package/src/response/AuthenticationResult.ts +2 -0
- package/src/response/ResponseHandler.ts +115 -16
- package/src/telemetry/performance/PerformanceEvent.ts +22 -0
- package/src/utils/Constants.ts +4 -1
- package/src/utils/ObjectUtils.ts +31 -0
- package/types/authority/Authority.d.ts.map +1 -1
- package/types/authority/AuthorityMetadata.d.ts.map +1 -1
- package/types/authority/AuthorityOptions.d.ts +0 -1
- package/types/authority/AuthorityOptions.d.ts.map +1 -1
- package/types/authority/AuthorityType.d.ts +0 -1
- package/types/authority/AuthorityType.d.ts.map +1 -1
- package/types/cache/CacheManager.d.ts +5 -1
- package/types/cache/CacheManager.d.ts.map +1 -1
- package/types/cache/utils/CacheHelpers.d.ts.map +1 -1
- package/types/client/AuthorizationCodeClient.d.ts.map +1 -1
- package/types/client/RefreshTokenClient.d.ts.map +1 -1
- package/types/client/SilentFlowClient.d.ts.map +1 -1
- package/types/config/ClientConfiguration.d.ts +5 -1
- package/types/config/ClientConfiguration.d.ts.map +1 -1
- package/types/constants/AADServerParamKeys.d.ts +1 -0
- package/types/constants/AADServerParamKeys.d.ts.map +1 -1
- package/types/crypto/DpopProofGenerator.d.ts +16 -36
- package/types/crypto/DpopProofGenerator.d.ts.map +1 -1
- package/types/crypto/ICrypto.d.ts +10 -9
- package/types/crypto/ICrypto.d.ts.map +1 -1
- package/types/crypto/ITokenBindingKeyManager.d.ts +42 -0
- package/types/crypto/ITokenBindingKeyManager.d.ts.map +1 -0
- package/types/crypto/JoseHeader.d.ts +18 -5
- package/types/crypto/JoseHeader.d.ts.map +1 -1
- package/types/crypto/PopTokenGenerator.d.ts +3 -1
- package/types/crypto/PopTokenGenerator.d.ts.map +1 -1
- package/types/crypto/PublicJsonWebKey.d.ts +20 -0
- package/types/crypto/PublicJsonWebKey.d.ts.map +1 -0
- package/types/error/ClientAuthErrorCodes.d.ts +1 -0
- package/types/error/ClientAuthErrorCodes.d.ts.map +1 -1
- package/types/error/ClientConfigurationErrorCodes.d.ts +3 -0
- package/types/error/ClientConfigurationErrorCodes.d.ts.map +1 -1
- package/types/error/JoseHeaderErrorCodes.d.ts +2 -0
- package/types/error/JoseHeaderErrorCodes.d.ts.map +1 -1
- package/types/exports-common.d.ts +4 -2
- package/types/exports-common.d.ts.map +1 -1
- package/types/packageMetadata.d.ts +1 -1
- package/types/protocol/Token.d.ts +7 -0
- package/types/protocol/Token.d.ts.map +1 -1
- package/types/request/BaseAuthRequest.d.ts +5 -0
- package/types/request/BaseAuthRequest.d.ts.map +1 -1
- package/types/request/CommonAuthorizationUrlRequest.d.ts +5 -0
- package/types/request/CommonAuthorizationUrlRequest.d.ts.map +1 -1
- package/types/request/RequestParameterBuilder.d.ts +2 -2
- package/types/request/RequestParameterBuilder.d.ts.map +1 -1
- package/types/response/AuthenticationResult.d.ts +2 -0
- package/types/response/AuthenticationResult.d.ts.map +1 -1
- package/types/response/ResponseHandler.d.ts +12 -2
- package/types/response/ResponseHandler.d.ts.map +1 -1
- package/types/telemetry/performance/PerformanceEvent.d.ts +18 -0
- package/types/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
- package/types/utils/Constants.d.ts +4 -1
- package/types/utils/Constants.d.ts.map +1 -1
- package/types/utils/ObjectUtils.d.ts +6 -0
- package/types/utils/ObjectUtils.d.ts.map +1 -0
- package/lib/index-node-3p7V__ym.js.map +0 -1
package/lib/index.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/*! @azure/msal-common v16.
|
|
1
|
+
/*! @azure/msal-common v16.14.0 2026-08-28 */
|
|
2
2
|
'use strict';
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
5
|
-
var indexNode = require('./index-node-
|
|
5
|
+
var indexNode = require('./index-node-l_NIe8t5.js');
|
|
6
6
|
var indexBrowser = require('./index-browser.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
@@ -32,10 +32,13 @@ exports.ClientConfigurationErrorCodes = indexNode.ClientConfigurationErrorCodes;
|
|
|
32
32
|
exports.Constants = indexNode.Constants;
|
|
33
33
|
exports.DEFAULT_CRYPTO_IMPLEMENTATION = indexNode.DEFAULT_CRYPTO_IMPLEMENTATION;
|
|
34
34
|
exports.DEFAULT_SYSTEM_OPTIONS = indexNode.DEFAULT_SYSTEM_OPTIONS;
|
|
35
|
+
exports.DEFAULT_TOKEN_BINDING_KEY_MANAGER = indexNode.DEFAULT_TOKEN_BINDING_KEY_MANAGER;
|
|
35
36
|
exports.DefaultStorageClass = indexNode.DefaultStorageClass;
|
|
36
37
|
exports.IntFields = indexNode.IntFields;
|
|
37
38
|
exports.InteractionRequiredAuthError = indexNode.InteractionRequiredAuthError;
|
|
38
39
|
exports.InteractionRequiredAuthErrorCodes = indexNode.InteractionRequiredAuthErrorCodes;
|
|
40
|
+
exports.JoseHeader = indexNode.JoseHeader;
|
|
41
|
+
exports.JsonWebTokenAlgorithms = indexNode.JsonWebTokenAlgorithms;
|
|
39
42
|
Object.defineProperty(exports, "LogLevel", {
|
|
40
43
|
enumerable: true,
|
|
41
44
|
get: function () { return indexNode.LogLevel; }
|
|
@@ -87,6 +90,5 @@ exports.invokeAsync = indexNode.invokeAsync;
|
|
|
87
90
|
exports.tenantIdMatchesHomeTenant = indexNode.tenantIdMatchesHomeTenant;
|
|
88
91
|
exports.updateAccountTenantProfileData = indexNode.updateAccountTenantProfileData;
|
|
89
92
|
exports.version = indexNode.version;
|
|
90
|
-
exports.JoseHeader = indexBrowser.JoseHeader;
|
|
91
93
|
exports.PerformanceClient = indexBrowser.PerformanceClient;
|
|
92
94
|
//# sourceMappingURL=index.cjs.map
|
package/lib/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -19,10 +19,7 @@ type RawMetadata = {
|
|
|
19
19
|
// Build endpoint metadata dynamically to avoid string duplication
|
|
20
20
|
const endpointHosts: Array<{ host: string; issuerHost?: string }> = [
|
|
21
21
|
{ host: "login.microsoftonline.com" },
|
|
22
|
-
{
|
|
23
|
-
host: "login.chinacloudapi.cn",
|
|
24
|
-
issuerHost: "login.partner.microsoftonline.cn", // Issuer differs
|
|
25
|
-
},
|
|
22
|
+
{ host: "login.partner.microsoftonline.cn" },
|
|
26
23
|
{ host: "login.microsoftonline.us" },
|
|
27
24
|
{ host: "login.sovcloud-identity.fr" },
|
|
28
25
|
{ host: "login.sovcloud-identity.de" },
|
|
@@ -105,15 +102,6 @@ export const rawMetdataJSON: RawMetadata = {
|
|
|
105
102
|
preferred_cache: "login.sovcloud-identity.sg",
|
|
106
103
|
aliases: ["login.sovcloud-identity.sg"],
|
|
107
104
|
},
|
|
108
|
-
{
|
|
109
|
-
preferred_network: "login.windows-ppe.net",
|
|
110
|
-
preferred_cache: "login.windows-ppe.net",
|
|
111
|
-
aliases: [
|
|
112
|
-
"login.windows-ppe.net",
|
|
113
|
-
"sts.windows-ppe.net",
|
|
114
|
-
"login.microsoft-ppe.com",
|
|
115
|
-
],
|
|
116
|
-
},
|
|
117
105
|
],
|
|
118
106
|
},
|
|
119
107
|
};
|
|
@@ -32,9 +32,6 @@ export const AzureCloudInstance = {
|
|
|
32
32
|
// Microsoft Azure public cloud
|
|
33
33
|
AzurePublic: "https://login.microsoftonline.com",
|
|
34
34
|
|
|
35
|
-
// Microsoft PPE
|
|
36
|
-
AzurePpe: "https://login.windows-ppe.net",
|
|
37
|
-
|
|
38
35
|
// Microsoft Chinese national/regional cloud
|
|
39
36
|
AzureChina: "https://login.chinacloudapi.cn",
|
|
40
37
|
|
|
@@ -13,6 +13,7 @@ import { TokenClaims } from "../account/TokenClaims.js";
|
|
|
13
13
|
import { getAliasesFromStaticSources } from "../authority/AuthorityMetadata.js";
|
|
14
14
|
import { StaticAuthorityOptions } from "../authority/AuthorityOptions.js";
|
|
15
15
|
import { ICrypto } from "../crypto/ICrypto.js";
|
|
16
|
+
import { ITokenBindingKeyManager } from "../crypto/ITokenBindingKeyManager.js";
|
|
16
17
|
import { AuthError } from "../error/AuthError.js";
|
|
17
18
|
import { createCacheError } from "../error/CacheError.js";
|
|
18
19
|
import {
|
|
@@ -56,6 +57,7 @@ import {
|
|
|
56
57
|
export abstract class CacheManager implements ICacheManager {
|
|
57
58
|
protected clientId: string;
|
|
58
59
|
protected cryptoImpl: ICrypto;
|
|
60
|
+
protected tokenBindingKeyManager: ITokenBindingKeyManager;
|
|
59
61
|
// Instance of logger for functions defined in the msal-common layer
|
|
60
62
|
private commonLogger: Logger;
|
|
61
63
|
private staticAuthorityOptions?: StaticAuthorityOptions;
|
|
@@ -66,10 +68,12 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
66
68
|
cryptoImpl: ICrypto,
|
|
67
69
|
logger: Logger,
|
|
68
70
|
performanceClient: IPerformanceClient,
|
|
69
|
-
staticAuthorityOptions
|
|
71
|
+
staticAuthorityOptions: StaticAuthorityOptions | undefined,
|
|
72
|
+
tokenBindingKeyManager: ITokenBindingKeyManager
|
|
70
73
|
) {
|
|
71
74
|
this.clientId = clientId;
|
|
72
75
|
this.cryptoImpl = cryptoImpl;
|
|
76
|
+
this.tokenBindingKeyManager = tokenBindingKeyManager;
|
|
73
77
|
this.commonLogger = logger.clone(name, version);
|
|
74
78
|
this.staticAuthorityOptions = staticAuthorityOptions;
|
|
75
79
|
this.performanceClient = performanceClient;
|
|
@@ -909,19 +913,9 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
909
913
|
entity.credentialType ===
|
|
910
914
|
Constants.CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME
|
|
911
915
|
) {
|
|
912
|
-
if (
|
|
913
|
-
!!filter.tokenType &&
|
|
914
|
-
!this.matchTokenType(entity, filter.tokenType)
|
|
915
|
-
) {
|
|
916
|
+
if (!this.matchAccessTokenWithAuthScheme(entity, filter)) {
|
|
916
917
|
return false;
|
|
917
918
|
}
|
|
918
|
-
|
|
919
|
-
// KeyId (sshKid) in request must match cached SSH certificate keyId because SSH cert is bound to a specific key
|
|
920
|
-
if (filter.tokenType === Constants.AuthenticationScheme.SSH) {
|
|
921
|
-
if (filter.keyId && !this.matchKeyId(entity, filter.keyId)) {
|
|
922
|
-
return false;
|
|
923
|
-
}
|
|
924
|
-
}
|
|
925
919
|
}
|
|
926
920
|
|
|
927
921
|
// Additional cache key components matching (bidirectional isolation)
|
|
@@ -1117,29 +1111,34 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1117
1111
|
correlationId
|
|
1118
1112
|
);
|
|
1119
1113
|
|
|
1120
|
-
// Remove Token Binding Key from key store for
|
|
1114
|
+
// Remove Token Binding Key from key store for token-bound access token credentials
|
|
1121
1115
|
if (
|
|
1122
1116
|
credential.credentialType.toLowerCase() ===
|
|
1123
1117
|
Constants.CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()
|
|
1124
1118
|
) {
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1119
|
+
const tokenType = credential.tokenType?.toLowerCase();
|
|
1120
|
+
switch (tokenType) {
|
|
1121
|
+
case Constants.AuthenticationScheme.POP:
|
|
1122
|
+
case Constants.AuthenticationScheme.DPOP.toLowerCase(): {
|
|
1123
|
+
const accessTokenWithAuthSchemeEntity =
|
|
1124
|
+
credential as AccessTokenEntity;
|
|
1125
|
+
const kid = accessTokenWithAuthSchemeEntity.keyId;
|
|
1126
|
+
|
|
1127
|
+
if (kid) {
|
|
1128
|
+
void this.tokenBindingKeyManager
|
|
1129
|
+
.removeTokenBindingKey(kid, correlationId)
|
|
1130
|
+
.catch(() => {
|
|
1131
|
+
this.commonLogger.error(
|
|
1132
|
+
"Failed to remove token binding key",
|
|
1133
|
+
correlationId
|
|
1134
|
+
);
|
|
1135
|
+
this.performanceClient?.incrementFields(
|
|
1136
|
+
{ removeTokenBindingKeyFailure: 1 },
|
|
1137
|
+
correlationId
|
|
1138
|
+
);
|
|
1139
|
+
});
|
|
1140
|
+
}
|
|
1141
|
+
break;
|
|
1143
1142
|
}
|
|
1144
1143
|
}
|
|
1145
1144
|
}
|
|
@@ -1378,7 +1377,6 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1378
1377
|
attribute_tokens: attributeTokenPartition,
|
|
1379
1378
|
}
|
|
1380
1379
|
: undefined;
|
|
1381
|
-
|
|
1382
1380
|
const accessTokenFilter: CredentialFilter = {
|
|
1383
1381
|
homeAccountId: account.homeAccountId,
|
|
1384
1382
|
environment: account.environment,
|
|
@@ -1387,10 +1385,12 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1387
1385
|
realm: targetRealm || account.tenantId,
|
|
1388
1386
|
target: scopes,
|
|
1389
1387
|
tokenType: authScheme,
|
|
1390
|
-
keyId:
|
|
1388
|
+
keyId:
|
|
1389
|
+
authScheme === Constants.AuthenticationScheme.SSH
|
|
1390
|
+
? request.sshKid
|
|
1391
|
+
: undefined,
|
|
1391
1392
|
additionalCacheKeyComponents: additionalCacheKeyComponents,
|
|
1392
1393
|
};
|
|
1393
|
-
|
|
1394
1394
|
const accessTokenKeys =
|
|
1395
1395
|
(tokenKeys && tokenKeys.accessToken) ||
|
|
1396
1396
|
this.getTokenKeys().accessToken;
|
|
@@ -1970,7 +1970,45 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1970
1970
|
entity: CredentialEntity,
|
|
1971
1971
|
tokenType: Constants.AuthenticationScheme
|
|
1972
1972
|
): boolean {
|
|
1973
|
-
return !!(
|
|
1973
|
+
return !!(
|
|
1974
|
+
entity.tokenType &&
|
|
1975
|
+
entity.tokenType.toLowerCase() === tokenType.toLowerCase()
|
|
1976
|
+
);
|
|
1977
|
+
}
|
|
1978
|
+
|
|
1979
|
+
private matchAccessTokenWithAuthScheme(
|
|
1980
|
+
entity: CredentialEntity,
|
|
1981
|
+
filter: CredentialFilter
|
|
1982
|
+
): boolean {
|
|
1983
|
+
const normalizedFilterTokenType = (
|
|
1984
|
+
filter.tokenType as string | undefined
|
|
1985
|
+
)?.toLowerCase();
|
|
1986
|
+
|
|
1987
|
+
if (
|
|
1988
|
+
!!filter.tokenType &&
|
|
1989
|
+
!this.matchTokenType(entity, filter.tokenType)
|
|
1990
|
+
) {
|
|
1991
|
+
return false;
|
|
1992
|
+
}
|
|
1993
|
+
|
|
1994
|
+
switch (normalizedFilterTokenType) {
|
|
1995
|
+
case "dpop":
|
|
1996
|
+
case Constants.AuthenticationScheme.SSH:
|
|
1997
|
+
return this.matchKeyBoundAccessToken(entity, filter);
|
|
1998
|
+
default:
|
|
1999
|
+
return true;
|
|
2000
|
+
}
|
|
2001
|
+
}
|
|
2002
|
+
|
|
2003
|
+
private matchKeyBoundAccessToken(
|
|
2004
|
+
entity: CredentialEntity,
|
|
2005
|
+
filter: CredentialFilter
|
|
2006
|
+
): boolean {
|
|
2007
|
+
if (!filter.keyId) {
|
|
2008
|
+
return true;
|
|
2009
|
+
}
|
|
2010
|
+
|
|
2011
|
+
return this.matchKeyId(entity, filter.keyId);
|
|
1974
2012
|
}
|
|
1975
2013
|
|
|
1976
2014
|
/**
|
|
@@ -276,8 +276,8 @@ export function generateHomeAccountId(
|
|
|
276
276
|
correlationId: string,
|
|
277
277
|
idTokenClaims?: TokenClaims
|
|
278
278
|
): string {
|
|
279
|
-
//
|
|
280
|
-
if (
|
|
279
|
+
// ADFS does not have tid and does not set client_info
|
|
280
|
+
if (authType !== AuthorityType.Adfs) {
|
|
281
281
|
// for cases where there is clientInfo
|
|
282
282
|
if (serverClientInfo) {
|
|
283
283
|
try {
|
|
@@ -98,6 +98,7 @@ export function createAccessTokenEntity(
|
|
|
98
98
|
atEntity.refreshOn = refreshOn.toString();
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
+
const normalizedTokenType = atEntity.tokenType?.toLowerCase();
|
|
101
102
|
/*
|
|
102
103
|
* Create Access Token With Auth Scheme instead of regular access token
|
|
103
104
|
* Cast to lower to handle "bearer" from ADFS
|
|
@@ -108,7 +109,7 @@ export function createAccessTokenEntity(
|
|
|
108
109
|
) {
|
|
109
110
|
atEntity.credentialType =
|
|
110
111
|
Constants.CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME;
|
|
111
|
-
switch (
|
|
112
|
+
switch (normalizedTokenType) {
|
|
112
113
|
case Constants.AuthenticationScheme.POP:
|
|
113
114
|
// Make sure keyId is present and add it to credential
|
|
114
115
|
const tokenClaims: TokenClaims | null = extractTokenClaims(
|
|
@@ -124,6 +125,15 @@ export function createAccessTokenEntity(
|
|
|
124
125
|
}
|
|
125
126
|
atEntity.keyId = tokenClaims.cnf.kid;
|
|
126
127
|
break;
|
|
128
|
+
case "dpop":
|
|
129
|
+
if (!keyId) {
|
|
130
|
+
throw createClientAuthError(
|
|
131
|
+
ClientAuthErrorCodes.keyIdMissing,
|
|
132
|
+
correlationId
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
atEntity.keyId = keyId;
|
|
136
|
+
break;
|
|
127
137
|
case Constants.AuthenticationScheme.SSH:
|
|
128
138
|
atEntity.keyId = keyId;
|
|
129
139
|
}
|
|
@@ -44,6 +44,7 @@ import { ClientAssertion } from "../account/ClientCredentials.js";
|
|
|
44
44
|
import { getClientAssertion } from "../utils/ClientAssertionUtils.js";
|
|
45
45
|
import { getRequestThumbprint } from "../network/RequestThumbprint.js";
|
|
46
46
|
import {
|
|
47
|
+
addDpopTokenProofHeader,
|
|
47
48
|
createTokenQueryParameters,
|
|
48
49
|
createTokenRequestHeaders,
|
|
49
50
|
executePostToTokenEndpoint,
|
|
@@ -168,7 +169,8 @@ export class AuthorizationCodeClient {
|
|
|
168
169
|
this.logger,
|
|
169
170
|
this.performanceClient,
|
|
170
171
|
this.config.serializableCache,
|
|
171
|
-
this.config.persistencePlugin
|
|
172
|
+
this.config.persistencePlugin,
|
|
173
|
+
this.config.tokenBindingKeyManager
|
|
172
174
|
);
|
|
173
175
|
|
|
174
176
|
// Validate response. This function throws a server error if an error is returned by the server.
|
|
@@ -271,6 +273,13 @@ export class AuthorizationCodeClient {
|
|
|
271
273
|
this.config.systemOptions.preventCorsPreflight,
|
|
272
274
|
ccsCredential || request.ccsCredential
|
|
273
275
|
);
|
|
276
|
+
await addDpopTokenProofHeader(
|
|
277
|
+
headers,
|
|
278
|
+
request,
|
|
279
|
+
endpoint,
|
|
280
|
+
this.cryptoUtils,
|
|
281
|
+
this.config.tokenBindingKeyManager
|
|
282
|
+
);
|
|
274
283
|
|
|
275
284
|
const thumbprint = getRequestThumbprint(
|
|
276
285
|
this.config.authOptions.clientId,
|
|
@@ -422,6 +431,7 @@ export class AuthorizationCodeClient {
|
|
|
422
431
|
) {
|
|
423
432
|
const popTokenGenerator = new PopTokenGenerator(
|
|
424
433
|
this.cryptoUtils,
|
|
434
|
+
this.config.tokenBindingKeyManager,
|
|
425
435
|
this.performanceClient
|
|
426
436
|
);
|
|
427
437
|
|
|
@@ -19,6 +19,7 @@ import * as AADServerParamKeys from "../constants/AADServerParamKeys.js";
|
|
|
19
19
|
import { ResponseHandler } from "../response/ResponseHandler.js";
|
|
20
20
|
import { AuthenticationResult } from "../response/AuthenticationResult.js";
|
|
21
21
|
import { PopTokenGenerator } from "../crypto/PopTokenGenerator.js";
|
|
22
|
+
import { DpopProofGenerator } from "../crypto/DpopProofGenerator.js";
|
|
22
23
|
import { NetworkResponse } from "../network/NetworkResponse.js";
|
|
23
24
|
import { CommonSilentFlowRequest } from "../request/CommonSilentFlowRequest.js";
|
|
24
25
|
import {
|
|
@@ -46,6 +47,7 @@ import { ClientAssertion } from "../account/ClientCredentials.js";
|
|
|
46
47
|
import { getClientAssertion } from "../utils/ClientAssertionUtils.js";
|
|
47
48
|
import { getRequestThumbprint } from "../network/RequestThumbprint.js";
|
|
48
49
|
import {
|
|
50
|
+
addDpopTokenProofHeader,
|
|
49
51
|
createTokenQueryParameters,
|
|
50
52
|
createTokenRequestHeaders,
|
|
51
53
|
executePostToTokenEndpoint,
|
|
@@ -139,7 +141,8 @@ export class RefreshTokenClient {
|
|
|
139
141
|
this.logger,
|
|
140
142
|
this.performanceClient,
|
|
141
143
|
this.config.serializableCache,
|
|
142
|
-
this.config.persistencePlugin
|
|
144
|
+
this.config.persistencePlugin,
|
|
145
|
+
this.config.tokenBindingKeyManager
|
|
143
146
|
);
|
|
144
147
|
responseHandler.validateTokenResponse(
|
|
145
148
|
response.body,
|
|
@@ -297,6 +300,19 @@ export class RefreshTokenClient {
|
|
|
297
300
|
type: CcsCredentialType.HOME_ACCOUNT_ID,
|
|
298
301
|
},
|
|
299
302
|
};
|
|
303
|
+
if (
|
|
304
|
+
refreshTokenRequest.authenticationScheme ===
|
|
305
|
+
Constants.AuthenticationScheme.DPOP &&
|
|
306
|
+
!refreshTokenRequest.dpopJkt
|
|
307
|
+
) {
|
|
308
|
+
const dpopProofGenerator = new DpopProofGenerator(
|
|
309
|
+
this.cryptoUtils,
|
|
310
|
+
this.config.tokenBindingKeyManager
|
|
311
|
+
);
|
|
312
|
+
refreshTokenRequest.dpopJkt = await dpopProofGenerator.generateJkt(
|
|
313
|
+
request.correlationId
|
|
314
|
+
);
|
|
315
|
+
}
|
|
300
316
|
|
|
301
317
|
try {
|
|
302
318
|
return await invokeAsync(
|
|
@@ -359,6 +375,13 @@ export class RefreshTokenClient {
|
|
|
359
375
|
this.config.systemOptions.preventCorsPreflight,
|
|
360
376
|
request.ccsCredential
|
|
361
377
|
);
|
|
378
|
+
await addDpopTokenProofHeader(
|
|
379
|
+
headers,
|
|
380
|
+
request,
|
|
381
|
+
endpoint,
|
|
382
|
+
this.cryptoUtils,
|
|
383
|
+
this.config.tokenBindingKeyManager
|
|
384
|
+
);
|
|
362
385
|
|
|
363
386
|
const thumbprint = getRequestThumbprint(
|
|
364
387
|
this.config.authOptions.clientId,
|
|
@@ -488,6 +511,7 @@ export class RefreshTokenClient {
|
|
|
488
511
|
) {
|
|
489
512
|
const popTokenGenerator = new PopTokenGenerator(
|
|
490
513
|
this.cryptoUtils,
|
|
514
|
+
this.config.tokenBindingKeyManager,
|
|
491
515
|
this.performanceClient
|
|
492
516
|
);
|
|
493
517
|
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
} from "../error/ClientAuthError.js";
|
|
18
18
|
import { ResponseHandler } from "../response/ResponseHandler.js";
|
|
19
19
|
import { CacheRecord } from "../cache/entities/CacheRecord.js";
|
|
20
|
-
import { CacheOutcome } from "../utils/Constants.js";
|
|
20
|
+
import { AuthenticationScheme, CacheOutcome } from "../utils/Constants.js";
|
|
21
21
|
import { IPerformanceClient } from "../telemetry/performance/IPerformanceClient.js";
|
|
22
22
|
import { StringUtils } from "../utils/StringUtils.js";
|
|
23
23
|
import { extractTokenClaims } from "../account/AuthToken.js";
|
|
@@ -181,6 +181,45 @@ export class SilentFlowClient {
|
|
|
181
181
|
// don't throw ClientAuthError.createRefreshRequiredError(), return cached token instead
|
|
182
182
|
}
|
|
183
183
|
|
|
184
|
+
const cachedAccessTokenType =
|
|
185
|
+
cachedAccessToken.tokenType?.toLowerCase();
|
|
186
|
+
if (cachedAccessTokenType === AuthenticationScheme.DPOP.toLowerCase()) {
|
|
187
|
+
if (!cachedAccessToken.keyId) {
|
|
188
|
+
this.logger.info(
|
|
189
|
+
"SilentFlowClient:acquireCachedToken - Cached DPoP access token is missing keyId; refresh required",
|
|
190
|
+
request.correlationId
|
|
191
|
+
);
|
|
192
|
+
this.setCacheOutcome(
|
|
193
|
+
CacheOutcome.NO_CACHED_ACCESS_TOKEN,
|
|
194
|
+
request.correlationId
|
|
195
|
+
);
|
|
196
|
+
throw createClientAuthError(
|
|
197
|
+
ClientAuthErrorCodes.tokenRefreshRequired,
|
|
198
|
+
request.correlationId
|
|
199
|
+
);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
try {
|
|
203
|
+
await this.config.tokenBindingKeyManager.getTokenBindingPublicKeyJwk(
|
|
204
|
+
cachedAccessToken.keyId,
|
|
205
|
+
request.correlationId
|
|
206
|
+
);
|
|
207
|
+
} catch {
|
|
208
|
+
this.logger.info(
|
|
209
|
+
"SilentFlowClient:acquireCachedToken - Local DPoP key was not found for cached access token; refresh required",
|
|
210
|
+
request.correlationId
|
|
211
|
+
);
|
|
212
|
+
this.setCacheOutcome(
|
|
213
|
+
CacheOutcome.NO_CACHED_ACCESS_TOKEN,
|
|
214
|
+
request.correlationId
|
|
215
|
+
);
|
|
216
|
+
throw createClientAuthError(
|
|
217
|
+
ClientAuthErrorCodes.tokenRefreshRequired,
|
|
218
|
+
request.correlationId
|
|
219
|
+
);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
184
223
|
const environment =
|
|
185
224
|
request.authority || this.authority.getPreferredCache();
|
|
186
225
|
const cacheRecord: CacheRecord = {
|
|
@@ -263,7 +302,10 @@ export class SilentFlowClient {
|
|
|
263
302
|
true,
|
|
264
303
|
request,
|
|
265
304
|
this.performanceClient,
|
|
266
|
-
|
|
305
|
+
{
|
|
306
|
+
idTokenClaims,
|
|
307
|
+
tokenBindingKeyManager: this.config.tokenBindingKeyManager,
|
|
308
|
+
}
|
|
267
309
|
);
|
|
268
310
|
}
|
|
269
311
|
}
|
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
import { INetworkModule } from "../network/INetworkModule.js";
|
|
7
7
|
import { DEFAULT_CRYPTO_IMPLEMENTATION, ICrypto } from "../crypto/ICrypto.js";
|
|
8
|
+
import {
|
|
9
|
+
DEFAULT_TOKEN_BINDING_KEY_MANAGER,
|
|
10
|
+
ITokenBindingKeyManager,
|
|
11
|
+
} from "../crypto/ITokenBindingKeyManager.js";
|
|
8
12
|
import { ILoggerCallback, Logger, LogLevel } from "../logger/Logger.js";
|
|
9
13
|
import {
|
|
10
14
|
DEFAULT_COMMON_TENANT,
|
|
@@ -32,6 +36,7 @@ import { StubPerformanceClient } from "../telemetry/performance/StubPerformanceC
|
|
|
32
36
|
* This object allows you to configure important elements of MSAL functionality:
|
|
33
37
|
* - authOptions - Authentication for application
|
|
34
38
|
* - cryptoInterface - Implementation of crypto functions
|
|
39
|
+
* - tokenBindingKeyManager - Implementation of token-binding key lifecycle functions
|
|
35
40
|
* - libraryInfo - Library metadata
|
|
36
41
|
* - telemetry - Telemetry options and data
|
|
37
42
|
* - loggerOptions - Logging for application
|
|
@@ -48,6 +53,7 @@ export type ClientConfiguration = {
|
|
|
48
53
|
storageInterface?: CacheManager;
|
|
49
54
|
networkInterface?: INetworkModule;
|
|
50
55
|
cryptoInterface?: ICrypto;
|
|
56
|
+
tokenBindingKeyManager?: ITokenBindingKeyManager;
|
|
51
57
|
clientCredentials?: ClientCredentials;
|
|
52
58
|
libraryInfo?: LibraryInfo;
|
|
53
59
|
telemetry?: TelemetryOptions;
|
|
@@ -66,6 +72,7 @@ export type CommonClientConfiguration = {
|
|
|
66
72
|
storageInterface: CacheManager;
|
|
67
73
|
networkInterface: INetworkModule;
|
|
68
74
|
cryptoInterface: Required<ICrypto>;
|
|
75
|
+
tokenBindingKeyManager: ITokenBindingKeyManager;
|
|
69
76
|
libraryInfo: LibraryInfo;
|
|
70
77
|
telemetry: Required<TelemetryOptions>;
|
|
71
78
|
serverTelemetryManager: ServerTelemetryManager | null;
|
|
@@ -226,6 +233,7 @@ export function buildClientConfiguration({
|
|
|
226
233
|
storageInterface: storageImplementation,
|
|
227
234
|
networkInterface: networkImplementation,
|
|
228
235
|
cryptoInterface: cryptoImplementation,
|
|
236
|
+
tokenBindingKeyManager: tokenBindingKeyManager,
|
|
229
237
|
clientCredentials: clientCredentials,
|
|
230
238
|
libraryInfo: libraryInfo,
|
|
231
239
|
telemetry: telemetry,
|
|
@@ -237,6 +245,8 @@ export function buildClientConfiguration({
|
|
|
237
245
|
...DEFAULT_LOGGER_IMPLEMENTATION,
|
|
238
246
|
...userLoggerOption,
|
|
239
247
|
};
|
|
248
|
+
const resolvedTokenBindingKeyManager =
|
|
249
|
+
tokenBindingKeyManager || DEFAULT_TOKEN_BINDING_KEY_MANAGER;
|
|
240
250
|
|
|
241
251
|
return {
|
|
242
252
|
authOptions: buildAuthOptions(userAuthOptions),
|
|
@@ -248,11 +258,14 @@ export function buildClientConfiguration({
|
|
|
248
258
|
userAuthOptions.clientId,
|
|
249
259
|
DEFAULT_CRYPTO_IMPLEMENTATION,
|
|
250
260
|
new Logger(loggerOptions, name, version),
|
|
251
|
-
new StubPerformanceClient()
|
|
261
|
+
new StubPerformanceClient(),
|
|
262
|
+
undefined,
|
|
263
|
+
resolvedTokenBindingKeyManager
|
|
252
264
|
),
|
|
253
265
|
networkInterface:
|
|
254
266
|
networkImplementation || DEFAULT_NETWORK_IMPLEMENTATION,
|
|
255
267
|
cryptoInterface: cryptoImplementation || DEFAULT_CRYPTO_IMPLEMENTATION,
|
|
268
|
+
tokenBindingKeyManager: resolvedTokenBindingKeyManager,
|
|
256
269
|
clientCredentials: clientCredentials || DEFAULT_CLIENT_CREDENTIALS,
|
|
257
270
|
libraryInfo: { ...DEFAULT_LIBRARY_INFO, ...libraryInfo },
|
|
258
271
|
telemetry: { ...DEFAULT_TELEMETRY_OPTIONS, ...telemetry },
|
|
@@ -44,6 +44,7 @@ export const CLIENT_ASSERTION = "client_assertion";
|
|
|
44
44
|
export const CLIENT_ASSERTION_TYPE = "client_assertion_type";
|
|
45
45
|
export const TOKEN_TYPE = "token_type";
|
|
46
46
|
export const REQ_CNF = "req_cnf";
|
|
47
|
+
export const DPOP_JKT = "dpop_jkt";
|
|
47
48
|
export const OBO_ASSERTION = "assertion";
|
|
48
49
|
export const REQUESTED_TOKEN_USE = "requested_token_use";
|
|
49
50
|
export const ON_BEHALF_OF = "on_behalf_of";
|