@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
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/*! @azure/msal-common v16.14.0 2026-08-28 */
|
|
2
|
+
'use strict';
|
|
3
|
+
import { JsonWebTokenAlgorithms } from './ICrypto.mjs';
|
|
4
|
+
import { nowSeconds } from '../utils/TimeUtils.mjs';
|
|
5
|
+
import { createClientConfigurationError } from '../error/ClientConfigurationError.mjs';
|
|
6
|
+
import { JoseHeader } from './JoseHeader.mjs';
|
|
7
|
+
import { dpopMissingResourceContext, invalidDpopNonce, urlParseError, invalidDpopHtu, invalidDpopHtm } from '../error/ClientConfigurationErrorCodes.mjs';
|
|
8
|
+
|
|
9
|
+
/*
|
|
10
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
11
|
+
* Licensed under the MIT License.
|
|
12
|
+
*/
|
|
13
|
+
const DPOP_HTM_REGEX = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;
|
|
14
|
+
const DPOP_TOKEN_BINDING_KEY_TYPE = "dpop";
|
|
15
|
+
const DPOP_JWT_HEADER_ALGORITHM = JsonWebTokenAlgorithms.ES256;
|
|
16
|
+
function buildProofHeader(publicJwk, correlationId) {
|
|
17
|
+
return JoseHeader.getDpopHeader({
|
|
18
|
+
alg: DPOP_JWT_HEADER_ALGORITHM,
|
|
19
|
+
jwk: publicJwk,
|
|
20
|
+
}, correlationId);
|
|
21
|
+
}
|
|
22
|
+
function normalizeHtm(htm, correlationId) {
|
|
23
|
+
if (typeof htm !== "string" || !DPOP_HTM_REGEX.test(htm)) {
|
|
24
|
+
throw createClientConfigurationError(invalidDpopHtm, correlationId);
|
|
25
|
+
}
|
|
26
|
+
return htm.toUpperCase();
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Normalizes a URL for use as the DPoP htu claim.
|
|
30
|
+
* Per RFC 9449 §4.2, htu is the target URI without query and fragment components.
|
|
31
|
+
* WHATWG URL serialization handles RFC 3986 syntax- and scheme-based normalization
|
|
32
|
+
* such as lowercasing scheme/host and eliding default ports.
|
|
33
|
+
*/
|
|
34
|
+
function normalizeHtu(url, correlationId) {
|
|
35
|
+
let parsedUrl;
|
|
36
|
+
try {
|
|
37
|
+
parsedUrl = new URL(url);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
throw createClientConfigurationError(urlParseError, correlationId);
|
|
41
|
+
}
|
|
42
|
+
if (!/^https:\/\//i.test(url) ||
|
|
43
|
+
parsedUrl.protocol !== "https:" ||
|
|
44
|
+
parsedUrl.username ||
|
|
45
|
+
parsedUrl.password) {
|
|
46
|
+
throw createClientConfigurationError(invalidDpopHtu, correlationId);
|
|
47
|
+
}
|
|
48
|
+
parsedUrl.search = "";
|
|
49
|
+
parsedUrl.hash = "";
|
|
50
|
+
return parsedUrl.href;
|
|
51
|
+
}
|
|
52
|
+
function validateDpopNonce(nonce, correlationId) {
|
|
53
|
+
if (nonce !== undefined && nonce.trim().length === 0) {
|
|
54
|
+
throw createClientConfigurationError(invalidDpopNonce, correlationId);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Builds RFC 9449 DPoP proof JWT payloads for token-endpoint and
|
|
59
|
+
* resource-endpoint proof bindings.
|
|
60
|
+
*
|
|
61
|
+
* Not exported from any public package entry point.
|
|
62
|
+
* This helper is internal-only until DPoP is wired into acquisition flows
|
|
63
|
+
* in a subsequent work item.
|
|
64
|
+
*
|
|
65
|
+
* DPoP proofs do not contain SHR fields (at, ts, m, u, p, q).
|
|
66
|
+
* @internal
|
|
67
|
+
*/
|
|
68
|
+
class DpopProofGenerator {
|
|
69
|
+
constructor(cryptoUtils, tokenBindingKeyManager) {
|
|
70
|
+
this.cryptoUtils = cryptoUtils;
|
|
71
|
+
this.tokenBindingKeyManager = tokenBindingKeyManager;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Provisions a fresh DPoP key and returns the RFC 7638 JWK thumbprint used
|
|
75
|
+
* as `dpop_jkt`.
|
|
76
|
+
*/
|
|
77
|
+
async generateJkt(correlationId = "") {
|
|
78
|
+
return this.tokenBindingKeyManager.provisionTokenBindingKey({
|
|
79
|
+
tokenBindingKeyType: DPOP_TOKEN_BINDING_KEY_TYPE,
|
|
80
|
+
tokenBindingKeyAlgorithm: DPOP_JWT_HEADER_ALGORITHM,
|
|
81
|
+
correlationId,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Builds RFC 9449 claims for a token-endpoint DPoP proof.
|
|
86
|
+
* - htm is always "POST" because token endpoint requests use HTTP POST (RFC 9449 §5).
|
|
87
|
+
* - htu is the normalized token endpoint URI (query and fragment stripped).
|
|
88
|
+
* - jti is a fresh CSPRNG-backed unique identifier for every proof.
|
|
89
|
+
*/
|
|
90
|
+
buildTokenProofClaims(params, correlationId = "") {
|
|
91
|
+
validateDpopNonce(params.nonce, correlationId);
|
|
92
|
+
const claims = {
|
|
93
|
+
jti: this.cryptoUtils.createNewGuid(),
|
|
94
|
+
htm: "POST",
|
|
95
|
+
htu: normalizeHtu(params.tokenEndpoint, correlationId),
|
|
96
|
+
iat: nowSeconds(),
|
|
97
|
+
};
|
|
98
|
+
if (params.nonce !== undefined) {
|
|
99
|
+
claims.nonce = params.nonce;
|
|
100
|
+
}
|
|
101
|
+
return claims;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Builds and signs a compact DPoP proof JWT for a token-endpoint request.
|
|
105
|
+
*/
|
|
106
|
+
async generateTokenProof(params, keyId, correlationId = "") {
|
|
107
|
+
return this.generateProof(this.buildTokenProofClaims(params, correlationId), keyId, correlationId);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Builds RFC 9449 claims for a resource-endpoint DPoP proof.
|
|
111
|
+
* - htm is uppercased per RFC 9449 §4.2.
|
|
112
|
+
* - htu is the normalized resource URI (query and fragment stripped).
|
|
113
|
+
* - ath is the base64url-encoded SHA-256 hash of the ASCII access token.
|
|
114
|
+
* - jti is a fresh CSPRNG-backed unique identifier for every proof.
|
|
115
|
+
*/
|
|
116
|
+
buildResourceProofClaims(params, correlationId = "") {
|
|
117
|
+
validateDpopNonce(params.nonce, correlationId);
|
|
118
|
+
const claims = {
|
|
119
|
+
jti: this.cryptoUtils.createNewGuid(),
|
|
120
|
+
htm: normalizeHtm(params.htm, correlationId),
|
|
121
|
+
htu: normalizeHtu(params.htu, correlationId),
|
|
122
|
+
ath: params.ath,
|
|
123
|
+
iat: nowSeconds(),
|
|
124
|
+
};
|
|
125
|
+
if (params.nonce !== undefined) {
|
|
126
|
+
claims.nonce = params.nonce;
|
|
127
|
+
}
|
|
128
|
+
return claims;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Builds and signs a compact DPoP proof JWT for a resource request.
|
|
132
|
+
*/
|
|
133
|
+
async generateResourceProof(params, keyId, correlationId = "") {
|
|
134
|
+
const { htu, htm, nonce } = params;
|
|
135
|
+
if (!htu || !htm) {
|
|
136
|
+
throw createClientConfigurationError(dpopMissingResourceContext, correlationId);
|
|
137
|
+
}
|
|
138
|
+
const ath = await this.cryptoUtils.hashString(params.accessToken);
|
|
139
|
+
return this.generateProof(this.buildResourceProofClaims({
|
|
140
|
+
htu,
|
|
141
|
+
htm,
|
|
142
|
+
ath,
|
|
143
|
+
nonce,
|
|
144
|
+
}, correlationId), keyId, correlationId);
|
|
145
|
+
}
|
|
146
|
+
async generateProof(claims, keyId, correlationId) {
|
|
147
|
+
const publicJwk = await this.tokenBindingKeyManager.getTokenBindingPublicKeyJwk(keyId, correlationId);
|
|
148
|
+
return this.cryptoUtils.signTokenBindingJwt(buildProofHeader(publicJwk, correlationId), claims, keyId, correlationId);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
export { DpopProofGenerator };
|
|
153
|
+
//# sourceMappingURL=DpopProofGenerator.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DpopProofGenerator.mjs","sources":["../../src/crypto/DpopProofGenerator.ts"],"sourcesContent":[null],"names":["ClientConfigurationErrorCodes.invalidDpopHtm","ClientConfigurationErrorCodes.urlParseError","ClientConfigurationErrorCodes.invalidDpopHtu","ClientConfigurationErrorCodes.invalidDpopNonce","TimeUtils.nowSeconds","ClientConfigurationErrorCodes.dpopMissingResourceContext"],"mappings":"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"}
|
package/dist/crypto/ICrypto.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @azure/msal-common v16.
|
|
1
|
+
/*! @azure/msal-common v16.14.0 2026-08-28 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { createClientAuthError } from '../error/ClientAuthError.mjs';
|
|
4
4
|
import { methodNotImplemented } from '../error/ClientAuthErrorCodes.mjs';
|
|
@@ -7,6 +7,14 @@ import { methodNotImplemented } from '../error/ClientAuthErrorCodes.mjs';
|
|
|
7
7
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
8
8
|
* Licensed under the MIT License.
|
|
9
9
|
*/
|
|
10
|
+
/**
|
|
11
|
+
* Shared JOSE algorithm literals used by MSAL package internals.
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
const JsonWebTokenAlgorithms = {
|
|
15
|
+
ES256: "ES256",
|
|
16
|
+
RS256: "RS256",
|
|
17
|
+
};
|
|
10
18
|
/**
|
|
11
19
|
* Default crypto implementation used when a platform-specific implementation has
|
|
12
20
|
* not been provided.
|
|
@@ -27,22 +35,19 @@ const DEFAULT_CRYPTO_IMPLEMENTATION = {
|
|
|
27
35
|
encodeKid: () => {
|
|
28
36
|
throw createClientAuthError(methodNotImplemented, "");
|
|
29
37
|
},
|
|
30
|
-
async
|
|
31
|
-
throw createClientAuthError(methodNotImplemented,
|
|
38
|
+
async removeTokenBindingKey(kid, correlationId) {
|
|
39
|
+
throw createClientAuthError(methodNotImplemented, correlationId);
|
|
32
40
|
},
|
|
33
|
-
async
|
|
34
|
-
throw createClientAuthError(methodNotImplemented,
|
|
41
|
+
async clearKeystore(correlationId) {
|
|
42
|
+
throw createClientAuthError(methodNotImplemented, correlationId);
|
|
35
43
|
},
|
|
36
|
-
async
|
|
37
|
-
throw createClientAuthError(methodNotImplemented,
|
|
38
|
-
},
|
|
39
|
-
async signJwt() {
|
|
40
|
-
throw createClientAuthError(methodNotImplemented, "");
|
|
44
|
+
async signTokenBindingJwt(header, payload, kid, correlationId) {
|
|
45
|
+
throw createClientAuthError(methodNotImplemented, correlationId);
|
|
41
46
|
},
|
|
42
47
|
async hashString() {
|
|
43
48
|
throw createClientAuthError(methodNotImplemented, "");
|
|
44
49
|
},
|
|
45
50
|
};
|
|
46
51
|
|
|
47
|
-
export { DEFAULT_CRYPTO_IMPLEMENTATION };
|
|
52
|
+
export { DEFAULT_CRYPTO_IMPLEMENTATION, JsonWebTokenAlgorithms };
|
|
48
53
|
//# sourceMappingURL=ICrypto.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ICrypto.mjs","sources":["../../src/crypto/ICrypto.ts"],"sourcesContent":[null],"names":["ClientAuthErrorCodes.methodNotImplemented"],"mappings":";;;;;AAAA;;;AAGG;
|
|
1
|
+
{"version":3,"file":"ICrypto.mjs","sources":["../../src/crypto/ICrypto.ts"],"sourcesContent":[null],"names":["ClientAuthErrorCodes.methodNotImplemented"],"mappings":";;;;;AAAA;;;AAGG;AAgCH;;;AAGG;AACI,MAAM,sBAAsB,GAAG;AAClC,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,KAAK,EAAE,OAAO;EACP;AA6DX;;;AAGG;AACI,MAAM,6BAA6B,GAAY;IAClD,aAAa,EAAE,MAAa;QACxB,MAAM,qBAAqB,CACvBA,oBAAyC,EACzC,EAAE,CACL,CAAC;IACN,CAAC;IACD,YAAY,EAAE,MAAa;QACvB,MAAM,qBAAqB,CACvBA,oBAAyC,EACzC,EAAE,CACL,CAAC;IACN,CAAC;IACD,YAAY,EAAE,MAAa;QACvB,MAAM,qBAAqB,CACvBA,oBAAyC,EACzC,EAAE,CACL,CAAC;IACN,CAAC;IACD,eAAe,EAAE,MAAa;QAC1B,MAAM,qBAAqB,CACvBA,oBAAyC,EACzC,EAAE,CACL,CAAC;IACN,CAAC;IACD,SAAS,EAAE,MAAa;QACpB,MAAM,qBAAqB,CACvBA,oBAAyC,EACzC,EAAE,CACL,CAAC;IACN,CAAC;AACD,IAAA,MAAM,qBAAqB,CACvB,GAAW,EACX,aAAqB,EAAA;QAGrB,MAAM,qBAAqB,CACvBA,oBAAyC,EACzC,aAAa,CAChB,CAAC;IACN,CAAC;IACD,MAAM,aAAa,CAAC,aAAqB,EAAA;QACrC,MAAM,qBAAqB,CACvBA,oBAAyC,EACzC,aAAa,CAChB,CAAC;IACN,CAAC;IACD,MAAM,mBAAmB,CACrB,MAAkB,EAClB,OAAe,EACf,GAAW,EACX,aAAqB,EAAA;QAKrB,MAAM,qBAAqB,CACvBA,oBAAyC,EACzC,aAAa,CAChB,CAAC;IACN,CAAC;AACD,IAAA,MAAM,UAAU,GAAA;QACZ,MAAM,qBAAqB,CACvBA,oBAAyC,EACzC,EAAE,CACL,CAAC;IACN,CAAC;;;;;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*! @azure/msal-common v16.14.0 2026-08-28 */
|
|
2
|
+
'use strict';
|
|
3
|
+
import { createClientAuthError } from '../error/ClientAuthError.mjs';
|
|
4
|
+
import { methodNotImplemented } from '../error/ClientAuthErrorCodes.mjs';
|
|
5
|
+
|
|
6
|
+
/*
|
|
7
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
8
|
+
* Licensed under the MIT License.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Default token-binding key manager used when a platform-specific implementation
|
|
12
|
+
* has not been provided.
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
const DEFAULT_TOKEN_BINDING_KEY_MANAGER = {
|
|
16
|
+
async provisionTokenBindingKey(request) {
|
|
17
|
+
throw createClientAuthError(methodNotImplemented, request.correlationId);
|
|
18
|
+
},
|
|
19
|
+
async removeTokenBindingKey(_kid, correlationId) {
|
|
20
|
+
throw createClientAuthError(methodNotImplemented, correlationId);
|
|
21
|
+
},
|
|
22
|
+
async getTokenBindingPublicKeyJwk(_kid, correlationId) {
|
|
23
|
+
throw createClientAuthError(methodNotImplemented, correlationId);
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export { DEFAULT_TOKEN_BINDING_KEY_MANAGER };
|
|
28
|
+
//# sourceMappingURL=ITokenBindingKeyManager.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ITokenBindingKeyManager.mjs","sources":["../../src/crypto/ITokenBindingKeyManager.ts"],"sourcesContent":[null],"names":["ClientAuthErrorCodes.methodNotImplemented"],"mappings":";;;;;AAAA;;;AAGG;AAiDH;;;;AAIG;AACI,MAAM,iCAAiC,GAA4B;IACtE,MAAM,wBAAwB,CAC1B,OAA8C,EAAA;QAE9C,MAAM,qBAAqB,CACvBA,oBAAyC,EACzC,OAAO,CAAC,aAAa,CACxB,CAAC;IACN,CAAC;AACD,IAAA,MAAM,qBAAqB,CACvB,IAAY,EACZ,aAAqB,EAAA;QAErB,MAAM,qBAAqB,CACvBA,oBAAyC,EACzC,aAAa,CAChB,CAAC;IACN,CAAC;AACD,IAAA,MAAM,2BAA2B,CAC7B,IAAY,EACZ,aAAqB,EAAA;QAErB,MAAM,qBAAqB,CACvBA,oBAAyC,EACzC,aAAa,CAChB,CAAC;IACN,CAAC;;;;;"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
/*! @azure/msal-common v16.
|
|
1
|
+
/*! @azure/msal-common v16.14.0 2026-08-28 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { createJoseHeaderError } from '../error/JoseHeaderError.mjs';
|
|
4
|
+
import { isPlainObject } from '../utils/ObjectUtils.mjs';
|
|
4
5
|
import { JsonWebTokenTypes } from '../utils/Constants.mjs';
|
|
5
|
-
import { missingKidError,
|
|
6
|
+
import { missingAlgError, missingKidError, missingJwkError, invalidJwkError } from '../error/JoseHeaderErrorCodes.mjs';
|
|
6
7
|
|
|
7
8
|
/*
|
|
8
9
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -10,35 +11,61 @@ import { missingKidError, missingAlgError } from '../error/JoseHeaderErrorCodes.
|
|
|
10
11
|
*/
|
|
11
12
|
/** @internal */
|
|
12
13
|
class JoseHeader {
|
|
13
|
-
constructor(options) {
|
|
14
|
+
constructor(options, correlationId) {
|
|
15
|
+
if (typeof options.alg !== "string" || !options.alg) {
|
|
16
|
+
throw createJoseHeaderError(missingAlgError, correlationId);
|
|
17
|
+
}
|
|
14
18
|
this.typ = options.typ;
|
|
15
19
|
this.alg = options.alg;
|
|
16
20
|
this.kid = options.kid;
|
|
21
|
+
this.jwk = options.jwk;
|
|
17
22
|
}
|
|
18
23
|
/**
|
|
19
24
|
* Builds SignedHttpRequest formatted JOSE Header from the
|
|
20
|
-
* JOSE Header options provided or previously set on the object
|
|
21
|
-
* the stringified header object.
|
|
25
|
+
* JOSE Header options provided or previously set on the object.
|
|
22
26
|
* Throws if keyId or algorithm aren't provided since they are required for Access Token Binding.
|
|
23
27
|
* @param shrHeaderOptions
|
|
28
|
+
* @param correlationId
|
|
24
29
|
* @returns
|
|
25
30
|
*/
|
|
26
|
-
static
|
|
31
|
+
static getShrHeader(shrHeaderOptions, correlationId) {
|
|
27
32
|
// KeyID is required on the SHR header
|
|
28
33
|
if (!shrHeaderOptions.kid) {
|
|
29
|
-
throw createJoseHeaderError(missingKidError,
|
|
34
|
+
throw createJoseHeaderError(missingKidError, correlationId);
|
|
30
35
|
}
|
|
31
36
|
// Alg is required on the SHR header
|
|
32
37
|
if (!shrHeaderOptions.alg) {
|
|
33
|
-
throw createJoseHeaderError(missingAlgError,
|
|
38
|
+
throw createJoseHeaderError(missingAlgError, correlationId);
|
|
34
39
|
}
|
|
35
|
-
|
|
40
|
+
return new JoseHeader({
|
|
36
41
|
// Access Token PoP headers must have type pop, but the type header can be overriden for special cases
|
|
37
42
|
typ: shrHeaderOptions.typ || JsonWebTokenTypes.Pop,
|
|
38
43
|
kid: shrHeaderOptions.kid,
|
|
39
44
|
alg: shrHeaderOptions.alg,
|
|
40
|
-
});
|
|
41
|
-
|
|
45
|
+
}, correlationId);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Builds a DPoP formatted JOSE Header from the JOSE Header options provided.
|
|
49
|
+
* Throws if public JWK or algorithm aren't provided since they are required for DPoP.
|
|
50
|
+
* @param dpopHeaderOptions
|
|
51
|
+
* @param correlationId
|
|
52
|
+
* @returns
|
|
53
|
+
*/
|
|
54
|
+
static getDpopHeader(dpopHeaderOptions, correlationId) {
|
|
55
|
+
if (!isPlainObject(dpopHeaderOptions.jwk)) {
|
|
56
|
+
throw createJoseHeaderError(missingJwkError, correlationId);
|
|
57
|
+
}
|
|
58
|
+
if (!dpopHeaderOptions.alg) {
|
|
59
|
+
throw createJoseHeaderError(missingAlgError, correlationId);
|
|
60
|
+
}
|
|
61
|
+
if (Object.keys(dpopHeaderOptions.jwk).length === 0) {
|
|
62
|
+
throw createJoseHeaderError(invalidJwkError, correlationId);
|
|
63
|
+
}
|
|
64
|
+
return new JoseHeader({
|
|
65
|
+
typ: JsonWebTokenTypes.Dpop,
|
|
66
|
+
alg: dpopHeaderOptions.alg,
|
|
67
|
+
jwk: dpopHeaderOptions.jwk,
|
|
68
|
+
}, correlationId);
|
|
42
69
|
}
|
|
43
70
|
}
|
|
44
71
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JoseHeader.mjs","sources":["../../src/crypto/JoseHeader.ts"],"sourcesContent":[null],"names":["JoseHeaderErrorCodes.missingKidError","JoseHeaderErrorCodes.
|
|
1
|
+
{"version":3,"file":"JoseHeader.mjs","sources":["../../src/crypto/JoseHeader.ts"],"sourcesContent":[null],"names":["JoseHeaderErrorCodes.missingAlgError","JoseHeaderErrorCodes.missingKidError","JoseHeaderErrorCodes.missingJwkError","JoseHeaderErrorCodes.invalidJwkError"],"mappings":";;;;;;;AAAA;;;AAGG;AAiBH;MACa,UAAU,CAAA;IAMnB,WAAA,CACI,OAA4C,EAC5C,aAAqB,EAAA;QAErB,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YACjD,MAAM,qBAAqB,CACvBA,eAAoC,EACpC,aAAa,CAChB,CAAC;AACL,QAAA,CAAA;AAED,QAAA,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;AACvB,QAAA,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;AACvB,QAAA,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;AACvB,QAAA,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAC3B,CAAC;AAED;;;;;;;AAOG;AACH,IAAA,OAAO,YAAY,CACf,gBAAmC,EACnC,aAAqB,EAAA;;AAGrB,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE;YACvB,MAAM,qBAAqB,CACvBC,eAAoC,EACpC,aAAa,CAChB,CAAC;AACL,QAAA,CAAA;;AAGD,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE;YACvB,MAAM,qBAAqB,CACvBD,eAAoC,EACpC,aAAa,CAChB,CAAC;AACL,QAAA,CAAA;QAED,OAAO,IAAI,UAAU,CACjB;;AAEI,YAAA,GAAG,EAAE,gBAAgB,CAAC,GAAG,IAAI,iBAAiB,CAAC,GAAG;YAClD,GAAG,EAAE,gBAAgB,CAAC,GAAG;YACzB,GAAG,EAAE,gBAAgB,CAAC,GAAG;SAC5B,EACD,aAAa,CAChB,CAAC;IACN,CAAC;AAED;;;;;;AAMG;AACH,IAAA,OAAO,aAAa,CAChB,iBAAoC,EACpC,aAAqB,EAAA;AAErB,QAAA,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE;YACvC,MAAM,qBAAqB,CACvBE,eAAoC,EACpC,aAAa,CAChB,CAAC;AACL,QAAA,CAAA;AAED,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE;YACxB,MAAM,qBAAqB,CACvBF,eAAoC,EACpC,aAAa,CAChB,CAAC;AACL,QAAA,CAAA;AAED,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YACjD,MAAM,qBAAqB,CACvBG,eAAoC,EACpC,aAAa,CAChB,CAAC;AACL,QAAA,CAAA;QAED,OAAO,IAAI,UAAU,CACjB;YACI,GAAG,EAAE,iBAAiB,CAAC,IAAI;YAC3B,GAAG,EAAE,iBAAiB,CAAC,GAAG;YAC1B,GAAG,EAAE,iBAAiB,CAAC,GAAG;SAC7B,EACD,aAAa,CAChB,CAAC;IACN,CAAC;AACJ;;;;"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
/*! @azure/msal-common v16.
|
|
1
|
+
/*! @azure/msal-common v16.14.0 2026-08-28 */
|
|
2
2
|
'use strict';
|
|
3
|
+
import { JsonWebTokenAlgorithms } from './ICrypto.mjs';
|
|
3
4
|
import { nowSeconds } from '../utils/TimeUtils.mjs';
|
|
4
5
|
import { UrlString } from '../url/UrlString.mjs';
|
|
5
6
|
import { PopTokenGenerateCnf } from '../telemetry/performance/PerformanceEvents.mjs';
|
|
6
7
|
import { invokeAsync } from '../utils/FunctionWrappers.mjs';
|
|
8
|
+
import { JoseHeader } from './JoseHeader.mjs';
|
|
7
9
|
|
|
8
10
|
/*
|
|
9
11
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -11,10 +13,13 @@ import { invokeAsync } from '../utils/FunctionWrappers.mjs';
|
|
|
11
13
|
*/
|
|
12
14
|
const KeyLocation = {
|
|
13
15
|
SW: "sw"};
|
|
16
|
+
const SHR_TOKEN_BINDING_KEY_TYPE = "shr";
|
|
17
|
+
const SHR_TOKEN_BINDING_KEY_ALGORITHM = JsonWebTokenAlgorithms.RS256;
|
|
14
18
|
/** @internal */
|
|
15
19
|
class PopTokenGenerator {
|
|
16
|
-
constructor(cryptoUtils, performanceClient) {
|
|
20
|
+
constructor(cryptoUtils, tokenBindingKeyManager, performanceClient) {
|
|
17
21
|
this.cryptoUtils = cryptoUtils;
|
|
22
|
+
this.tokenBindingKeyManager = tokenBindingKeyManager;
|
|
18
23
|
this.performanceClient = performanceClient;
|
|
19
24
|
}
|
|
20
25
|
/**
|
|
@@ -37,7 +42,11 @@ class PopTokenGenerator {
|
|
|
37
42
|
* @returns
|
|
38
43
|
*/
|
|
39
44
|
async generateKid(request) {
|
|
40
|
-
const kidThumbprint = await this.
|
|
45
|
+
const kidThumbprint = await this.tokenBindingKeyManager.provisionTokenBindingKey({
|
|
46
|
+
correlationId: request.correlationId,
|
|
47
|
+
tokenBindingKeyType: SHR_TOKEN_BINDING_KEY_TYPE,
|
|
48
|
+
tokenBindingKeyAlgorithm: SHR_TOKEN_BINDING_KEY_ALGORITHM,
|
|
49
|
+
});
|
|
41
50
|
return {
|
|
42
51
|
kid: kidThumbprint,
|
|
43
52
|
xms_ksl: KeyLocation.SW,
|
|
@@ -67,7 +76,17 @@ class PopTokenGenerator {
|
|
|
67
76
|
? new UrlString(resourceRequestUri, request.correlationId)
|
|
68
77
|
: undefined;
|
|
69
78
|
const resourceUrlComponents = resourceUrlString?.getUrlComponents();
|
|
70
|
-
|
|
79
|
+
const publicKeyJwk = await this.tokenBindingKeyManager.getTokenBindingPublicKeyJwk(keyId, request.correlationId);
|
|
80
|
+
const encodedKeyIdThumbprint = this.cryptoUtils.base64UrlEncode(JSON.stringify({ kid: keyId }));
|
|
81
|
+
const shrAlgorithm = shrOptions?.header?.alg ||
|
|
82
|
+
publicKeyJwk.alg ||
|
|
83
|
+
SHR_TOKEN_BINDING_KEY_ALGORITHM;
|
|
84
|
+
const shrHeader = JoseHeader.getShrHeader({
|
|
85
|
+
...shrOptions?.header,
|
|
86
|
+
alg: shrAlgorithm,
|
|
87
|
+
kid: encodedKeyIdThumbprint,
|
|
88
|
+
}, request.correlationId);
|
|
89
|
+
const shrPayload = {
|
|
71
90
|
at: payload,
|
|
72
91
|
ts: nowSeconds(),
|
|
73
92
|
m: resourceRequestMethod?.toUpperCase(),
|
|
@@ -79,7 +98,11 @@ class PopTokenGenerator {
|
|
|
79
98
|
: undefined,
|
|
80
99
|
client_claims: shrClaims || undefined,
|
|
81
100
|
...claims,
|
|
82
|
-
|
|
101
|
+
cnf: {
|
|
102
|
+
jwk: publicKeyJwk,
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
return this.cryptoUtils.signTokenBindingJwt(shrHeader, shrPayload, keyId, request.correlationId);
|
|
83
106
|
}
|
|
84
107
|
}
|
|
85
108
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopTokenGenerator.mjs","sources":["../../src/crypto/PopTokenGenerator.ts"],"sourcesContent":[null],"names":["PerformanceEvents.PopTokenGenerateCnf","TimeUtils.nowSeconds"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PopTokenGenerator.mjs","sources":["../../src/crypto/PopTokenGenerator.ts"],"sourcesContent":[null],"names":["PerformanceEvents.PopTokenGenerateCnf","TimeUtils.nowSeconds"],"mappings":";;;;;;;;;AAAA;;;AAGG;AAkCH,MAAM,WAAW,GAAG;AAChB,IAAA,EAAE,EAAE,KAEE,CAAC;AAGX,MAAM,0BAA0B,GAAG,KAAK,CAAC;AACzC,MAAM,+BAA+B,GAAG,sBAAsB,CAAC,KAAK,CAAC;AAErE;MACa,iBAAiB,CAAA;AAK1B,IAAA,WAAA,CACI,WAAoB,EACpB,sBAA+C,EAC/C,iBAAqC,EAAA;AAErC,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAC/B,QAAA,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;AACrD,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC/C,CAAC;AAED;;;;;AAKG;AACH,IAAA,MAAM,WAAW,CACb,OAAoC,EACpC,MAAc,EAAA;AAEd,QAAA,MAAM,MAAM,GAAG,MAAM,WAAW,CAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAC3BA,mBAAqC,EACrC,MAAM,EACN,IAAI,CAAC,iBAAiB,EACtB,OAAO,CAAC,aAAa,CACxB,CAAC,OAAO,CAAC,CAAC;AACX,QAAA,MAAM,YAAY,GAAW,IAAI,CAAC,WAAW,CAAC,eAAe,CACzD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACzB,CAAC;QAEF,OAAO;YACH,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,YAAY;SACf,CAAC;IACN,CAAC;AAED;;;;AAIG;IACH,MAAM,WAAW,CAAC,OAAoC,EAAA;QAClD,MAAM,aAAa,GACf,MAAM,IAAI,CAAC,sBAAsB,CAAC,wBAAwB,CAAC;YACvD,aAAa,EAAE,OAAO,CAAC,aAAa;AACpC,YAAA,mBAAmB,EAAE,0BAA0B;AAC/C,YAAA,wBAAwB,EAAE,+BAA+B;AAC5D,SAAA,CAAC,CAAC;QAEP,OAAO;AACH,YAAA,GAAG,EAAE,aAAa;YAClB,OAAO,EAAE,WAAW,CAAC,EAAE;SAC1B,CAAC;IACN,CAAC;AAED;;;;;AAKG;AACH,IAAA,MAAM,YAAY,CACd,WAAmB,EACnB,KAAa,EACb,OAAoC,EAAA;QAEpC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;AAED;;;;;;;AAOG;IACH,MAAM,WAAW,CACb,OAAe,EACf,KAAa,EACb,OAAoC,EACpC,MAAe,EAAA;;AAGf,QAAA,MAAM,EACF,qBAAqB,EACrB,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACR,UAAU,GACb,GAAG,OAAO,CAAC;QAEZ,MAAM,iBAAiB,GAAG,kBAAkB;cACtC,IAAI,SAAS,CAAC,kBAAkB,EAAE,OAAO,CAAC,aAAa,CAAC;cACxD,SAAS,CAAC;AAChB,QAAA,MAAM,qBAAqB,GAAG,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;AACpE,QAAA,MAAM,YAAY,GACd,MAAM,IAAI,CAAC,sBAAsB,CAAC,2BAA2B,CACzD,KAAK,EACL,OAAO,CAAC,aAAa,CACxB,CAAC;AACN,QAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAC3D,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CACjC,CAAC;AACF,QAAA,MAAM,YAAY,GACd,UAAU,EAAE,MAAM,EAAE,GAAG;AACvB,YAAA,YAAY,CAAC,GAAG;AAChB,YAAA,+BAA+B,CAAC;AACpC,QAAA,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CACrC;YACI,GAAG,UAAU,EAAE,MAAM;AACrB,YAAA,GAAG,EAAE,YAAY;AACjB,YAAA,GAAG,EAAE,sBAAsB;AAC9B,SAAA,EACD,OAAO,CAAC,aAAa,CACxB,CAAC;AACF,QAAA,MAAM,UAAU,GAAsB;AAClC,YAAA,EAAE,EAAE,OAAO;AACX,YAAA,EAAE,EAAEC,UAAoB,EAAE;AAC1B,YAAA,CAAC,EAAE,qBAAqB,EAAE,WAAW,EAAE;YACvC,CAAC,EAAE,qBAAqB,EAAE,eAAe;YACzC,KAAK,EAAE,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;YACnD,CAAC,EAAE,qBAAqB,EAAE,YAAY;YACtC,CAAC,EAAE,qBAAqB,EAAE,WAAW;AACjC,kBAAE,CAAC,EAAE,EAAE,qBAAqB,CAAC,WAAW,CAAC;AACzC,kBAAE,SAAS;YACf,aAAa,EAAE,SAAS,IAAI,SAAS;AACrC,YAAA,GAAG,MAAM;AACT,YAAA,GAAG,EAAE;AACD,gBAAA,GAAG,EAAE,YAAY;AACpB,aAAA;SACJ,CAAC;AAEF,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,mBAAmB,CACvC,SAAS,EACT,UAAU,EACV,KAAK,EACL,OAAO,CAAC,aAAa,CACxB,CAAC;IACN,CAAC;AACJ;;;;"}
|
package/dist/error/AuthError.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @azure/msal-common v16.
|
|
1
|
+
/*! @azure/msal-common v16.14.0 2026-08-28 */
|
|
2
2
|
'use strict';
|
|
3
3
|
/*
|
|
4
4
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -28,6 +28,7 @@ const invalidCacheEnvironment = "invalid_cache_environment";
|
|
|
28
28
|
const noAccountFound = "no_account_found";
|
|
29
29
|
const noCryptoObject = "no_crypto_object";
|
|
30
30
|
const unexpectedCredentialType = "unexpected_credential_type";
|
|
31
|
+
const dpopTokenTypeMismatch = "dpop_token_type_mismatch";
|
|
31
32
|
const tokenRefreshRequired = "token_refresh_required";
|
|
32
33
|
const tokenClaimsCnfRequiredForSignedJwt = "token_claims_cnf_required_for_signedjwt";
|
|
33
34
|
const authorizationCodeMissingFromServerResponse = "authorization_code_missing_from_server_response";
|
|
@@ -42,5 +43,5 @@ const platformBrokerError = "platform_broker_error";
|
|
|
42
43
|
const resourceParameterRequired = "resource_parameter_required";
|
|
43
44
|
const misplacedResourceParam = "misplaced_resource_parameter";
|
|
44
45
|
|
|
45
|
-
export { authorizationCodeMissingFromServerResponse, bindingKeyNotRemoved, cannotAppendScopeSet, cannotRemoveEmptyScope, clientInfoDecodingError, clientInfoEmptyError, emptyInputScopeSet, endSessionEndpointNotSupported, endpointResolutionError, hashNotDeserialized, invalidCacheEnvironment, invalidCacheRecord, invalidState, keyIdMissing, methodNotImplemented, misplacedResourceParam, multipleMatchingAppMetadata, multipleMatchingTokens, nestedAppAuthBridgeDisabled, networkError, noAccountFound, noAccountInSilentRequest, noCryptoObject, noNetworkConnectivity, nonceMismatch, nullOrEmptyToken, openIdConfigError, platformBrokerError, requestCannotBeMade, resourceParameterRequired, stateMismatch, stateNotFound, tokenClaimsCnfRequiredForSignedJwt, tokenParsingError, tokenRefreshRequired, unexpectedCredentialType, userCanceled };
|
|
46
|
+
export { authorizationCodeMissingFromServerResponse, bindingKeyNotRemoved, cannotAppendScopeSet, cannotRemoveEmptyScope, clientInfoDecodingError, clientInfoEmptyError, dpopTokenTypeMismatch, emptyInputScopeSet, endSessionEndpointNotSupported, endpointResolutionError, hashNotDeserialized, invalidCacheEnvironment, invalidCacheRecord, invalidState, keyIdMissing, methodNotImplemented, misplacedResourceParam, multipleMatchingAppMetadata, multipleMatchingTokens, nestedAppAuthBridgeDisabled, networkError, noAccountFound, noAccountInSilentRequest, noCryptoObject, noNetworkConnectivity, nonceMismatch, nullOrEmptyToken, openIdConfigError, platformBrokerError, requestCannotBeMade, resourceParameterRequired, stateMismatch, stateNotFound, tokenClaimsCnfRequiredForSignedJwt, tokenParsingError, tokenRefreshRequired, unexpectedCredentialType, userCanceled };
|
|
46
47
|
//# sourceMappingURL=ClientAuthErrorCodes.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientAuthErrorCodes.mjs","sources":["../../src/error/ClientAuthErrorCodes.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;AAGG;AAEI,MAAM,uBAAuB,GAAG,6BAA6B;AAC7D,MAAM,oBAAoB,GAAG,0BAA0B;AACvD,MAAM,iBAAiB,GAAG,sBAAsB;AAChD,MAAM,gBAAgB,GAAG,sBAAsB;AAC/C,MAAM,uBAAuB,GAAG,6BAA6B;AAC7D,MAAM,YAAY,GAAG,gBAAgB;AACrC,MAAM,iBAAiB,GAAG,sBAAsB;AAChD,MAAM,mBAAmB,GAAG,wBAAwB;AACpD,MAAM,YAAY,GAAG,gBAAgB;AACrC,MAAM,aAAa,GAAG,iBAAiB;AACvC,MAAM,aAAa,GAAG,kBAAkB;AACxC,MAAM,aAAa,GAAG,iBAAiB;AACvC,MAAM,sBAAsB,GAAG,2BAA2B;AAC1D,MAAM,2BAA2B,GAAG,gCAAgC;AACpE,MAAM,mBAAmB,GAAG,yBAAyB;AACrD,MAAM,sBAAsB,GAAG,4BAA4B;AAC3D,MAAM,oBAAoB,GAAG,yBAAyB;AACtD,MAAM,kBAAkB,GAAG,uBAAuB;AAClD,MAAM,wBAAwB,GAAG,+BAA+B;AAChE,MAAM,kBAAkB,GAAG,uBAAuB;AAClD,MAAM,uBAAuB,GAAG,4BAA4B;AAC5D,MAAM,cAAc,GAAG,mBAAmB;AAC1C,MAAM,cAAc,GAAG,mBAAmB;AAC1C,MAAM,wBAAwB,GAAG,6BAA6B;AAC9D,MAAM,oBAAoB,GAAG,yBAAyB;AACtD,MAAM,kCAAkC,GAC3C,0CAA0C;AACvC,MAAM,0CAA0C,GACnD,kDAAkD;AAC/C,MAAM,oBAAoB,GAAG,0BAA0B;AACvD,MAAM,8BAA8B,GACvC,qCAAqC;AAClC,MAAM,YAAY,GAAG,iBAAiB;AACtC,MAAM,qBAAqB,GAAG,0BAA0B;AACxD,MAAM,YAAY,GAAG,gBAAgB;AACrC,MAAM,oBAAoB,GAAG,yBAAyB;AACtD,MAAM,2BAA2B,GAAG,kCAAkC;AACtE,MAAM,mBAAmB,GAAG,wBAAwB;AACpD,MAAM,yBAAyB,GAAG,8BAA8B;AAChE,MAAM,sBAAsB,GAAG;;;;"}
|
|
1
|
+
{"version":3,"file":"ClientAuthErrorCodes.mjs","sources":["../../src/error/ClientAuthErrorCodes.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;AAGG;AAEI,MAAM,uBAAuB,GAAG,6BAA6B;AAC7D,MAAM,oBAAoB,GAAG,0BAA0B;AACvD,MAAM,iBAAiB,GAAG,sBAAsB;AAChD,MAAM,gBAAgB,GAAG,sBAAsB;AAC/C,MAAM,uBAAuB,GAAG,6BAA6B;AAC7D,MAAM,YAAY,GAAG,gBAAgB;AACrC,MAAM,iBAAiB,GAAG,sBAAsB;AAChD,MAAM,mBAAmB,GAAG,wBAAwB;AACpD,MAAM,YAAY,GAAG,gBAAgB;AACrC,MAAM,aAAa,GAAG,iBAAiB;AACvC,MAAM,aAAa,GAAG,kBAAkB;AACxC,MAAM,aAAa,GAAG,iBAAiB;AACvC,MAAM,sBAAsB,GAAG,2BAA2B;AAC1D,MAAM,2BAA2B,GAAG,gCAAgC;AACpE,MAAM,mBAAmB,GAAG,yBAAyB;AACrD,MAAM,sBAAsB,GAAG,4BAA4B;AAC3D,MAAM,oBAAoB,GAAG,yBAAyB;AACtD,MAAM,kBAAkB,GAAG,uBAAuB;AAClD,MAAM,wBAAwB,GAAG,+BAA+B;AAChE,MAAM,kBAAkB,GAAG,uBAAuB;AAClD,MAAM,uBAAuB,GAAG,4BAA4B;AAC5D,MAAM,cAAc,GAAG,mBAAmB;AAC1C,MAAM,cAAc,GAAG,mBAAmB;AAC1C,MAAM,wBAAwB,GAAG,6BAA6B;AAC9D,MAAM,qBAAqB,GAAG,2BAA2B;AACzD,MAAM,oBAAoB,GAAG,yBAAyB;AACtD,MAAM,kCAAkC,GAC3C,0CAA0C;AACvC,MAAM,0CAA0C,GACnD,kDAAkD;AAC/C,MAAM,oBAAoB,GAAG,0BAA0B;AACvD,MAAM,8BAA8B,GACvC,qCAAqC;AAClC,MAAM,YAAY,GAAG,iBAAiB;AACtC,MAAM,qBAAqB,GAAG,0BAA0B;AACxD,MAAM,YAAY,GAAG,gBAAgB;AACrC,MAAM,oBAAoB,GAAG,yBAAyB;AACtD,MAAM,2BAA2B,GAAG,kCAAkC;AACtE,MAAM,mBAAmB,GAAG,wBAAwB;AACpD,MAAM,yBAAyB,GAAG,8BAA8B;AAChE,MAAM,sBAAsB,GAAG;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @azure/msal-common v16.
|
|
1
|
+
/*! @azure/msal-common v16.14.0 2026-08-28 */
|
|
2
2
|
'use strict';
|
|
3
3
|
/*
|
|
4
4
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -20,6 +20,7 @@ const invalidAuthorityMetadata = "invalid_authority_metadata";
|
|
|
20
20
|
const untrustedAuthority = "untrusted_authority";
|
|
21
21
|
const missingSshJwk = "missing_ssh_jwk";
|
|
22
22
|
const missingSshKid = "missing_ssh_kid";
|
|
23
|
+
const unsupportedAuthenticationScheme = "unsupported_authentication_scheme";
|
|
23
24
|
const missingNonceAuthenticationHeader = "missing_nonce_authentication_header";
|
|
24
25
|
const invalidAuthenticationHeader = "invalid_authentication_header";
|
|
25
26
|
const cannotSetOIDCOptions = "cannot_set_OIDCOptions";
|
|
@@ -30,7 +31,9 @@ const invalidPlatformBrokerConfiguration = "invalid_platform_broker_configuratio
|
|
|
30
31
|
const issuerValidationFailed = "issuer_validation_failed";
|
|
31
32
|
const invalidResponseMode = "invalid_response_mode";
|
|
32
33
|
const invalidDpopHtm = "invalid_dpop_htm";
|
|
33
|
-
const invalidDpopHtu = "invalid_dpop_htu";
|
|
34
|
+
const invalidDpopHtu = "invalid_dpop_htu";
|
|
35
|
+
const invalidDpopNonce = "invalid_dpop_nonce";
|
|
36
|
+
const dpopMissingResourceContext = "dpop_missing_resource_context";
|
|
34
37
|
|
|
35
|
-
export { authorityMismatch, authorityUriInsecure, cannotAllowPlatformBroker, cannotSetOIDCOptions, claimsRequestParsingError, emptyInputScopesError, invalidAuthenticationHeader, invalidAuthorityMetadata, invalidClaims, invalidCloudDiscoveryMetadata, invalidCodeChallengeMethod, invalidDpopHtm, invalidDpopHtu, invalidPlatformBrokerConfiguration, invalidRequestMethodForEAR, invalidResponseMode, issuerValidationFailed, logoutRequestEmpty, missingNonceAuthenticationHeader, missingSshJwk, missingSshKid, pkceParamsMissing, redirectUriEmpty, tokenRequestEmpty, untrustedAuthority, urlEmptyError, urlParseError };
|
|
38
|
+
export { authorityMismatch, authorityUriInsecure, cannotAllowPlatformBroker, cannotSetOIDCOptions, claimsRequestParsingError, dpopMissingResourceContext, emptyInputScopesError, invalidAuthenticationHeader, invalidAuthorityMetadata, invalidClaims, invalidCloudDiscoveryMetadata, invalidCodeChallengeMethod, invalidDpopHtm, invalidDpopHtu, invalidDpopNonce, invalidPlatformBrokerConfiguration, invalidRequestMethodForEAR, invalidResponseMode, issuerValidationFailed, logoutRequestEmpty, missingNonceAuthenticationHeader, missingSshJwk, missingSshKid, pkceParamsMissing, redirectUriEmpty, tokenRequestEmpty, unsupportedAuthenticationScheme, untrustedAuthority, urlEmptyError, urlParseError };
|
|
36
39
|
//# sourceMappingURL=ClientConfigurationErrorCodes.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientConfigurationErrorCodes.mjs","sources":["../../src/error/ClientConfigurationErrorCodes.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;AAGG;AAEI,MAAM,gBAAgB,GAAG,qBAAqB;AAC9C,MAAM,yBAAyB,GAAG,+BAA+B;AACjE,MAAM,oBAAoB,GAAG,yBAAyB;AACtD,MAAM,aAAa,GAAG,kBAAkB;AACxC,MAAM,aAAa,GAAG,kBAAkB;AACxC,MAAM,qBAAqB,GAAG,2BAA2B;AACzD,MAAM,aAAa,GAAG,iBAAiB;AACvC,MAAM,iBAAiB,GAAG,sBAAsB;AAChD,MAAM,kBAAkB,GAAG,uBAAuB;AAClD,MAAM,0BAA0B,GAAG,gCAAgC;AACnE,MAAM,iBAAiB,GAAG,sBAAsB;AAChD,MAAM,6BAA6B,GAAG,mCAAmC;AACzE,MAAM,wBAAwB,GAAG,6BAA6B;AAC9D,MAAM,kBAAkB,GAAG,sBAAsB;AACjD,MAAM,aAAa,GAAG,kBAAkB;AACxC,MAAM,aAAa,GAAG,kBAAkB;AACxC,MAAM,gCAAgC,GACzC,sCAAsC;AACnC,MAAM,2BAA2B,GAAG,gCAAgC;AACpE,MAAM,oBAAoB,GAAG,yBAAyB;AACtD,MAAM,yBAAyB,GAAG,+BAA+B;AACjE,MAAM,iBAAiB,GAAG,qBAAqB;AAC/C,MAAM,0BAA0B,GAAG,iCAAiC;AACpE,MAAM,kCAAkC,GAC3C,wCAAwC;AACrC,MAAM,sBAAsB,GAAG,2BAA2B;AAC1D,MAAM,mBAAmB,GAAG,wBAAwB;AACpD,MAAM,cAAc,GAAG,mBAAmB;AAC1C,MAAM,cAAc,GAAG;;;;"}
|
|
1
|
+
{"version":3,"file":"ClientConfigurationErrorCodes.mjs","sources":["../../src/error/ClientConfigurationErrorCodes.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;AAGG;AAEI,MAAM,gBAAgB,GAAG,qBAAqB;AAC9C,MAAM,yBAAyB,GAAG,+BAA+B;AACjE,MAAM,oBAAoB,GAAG,yBAAyB;AACtD,MAAM,aAAa,GAAG,kBAAkB;AACxC,MAAM,aAAa,GAAG,kBAAkB;AACxC,MAAM,qBAAqB,GAAG,2BAA2B;AACzD,MAAM,aAAa,GAAG,iBAAiB;AACvC,MAAM,iBAAiB,GAAG,sBAAsB;AAChD,MAAM,kBAAkB,GAAG,uBAAuB;AAClD,MAAM,0BAA0B,GAAG,gCAAgC;AACnE,MAAM,iBAAiB,GAAG,sBAAsB;AAChD,MAAM,6BAA6B,GAAG,mCAAmC;AACzE,MAAM,wBAAwB,GAAG,6BAA6B;AAC9D,MAAM,kBAAkB,GAAG,sBAAsB;AACjD,MAAM,aAAa,GAAG,kBAAkB;AACxC,MAAM,aAAa,GAAG,kBAAkB;AACxC,MAAM,+BAA+B,GACxC,oCAAoC;AACjC,MAAM,gCAAgC,GACzC,sCAAsC;AACnC,MAAM,2BAA2B,GAAG,gCAAgC;AACpE,MAAM,oBAAoB,GAAG,yBAAyB;AACtD,MAAM,yBAAyB,GAAG,+BAA+B;AACjE,MAAM,iBAAiB,GAAG,qBAAqB;AAC/C,MAAM,0BAA0B,GAAG,iCAAiC;AACpE,MAAM,kCAAkC,GAC3C,wCAAwC;AACrC,MAAM,sBAAsB,GAAG,2BAA2B;AAC1D,MAAM,mBAAmB,GAAG,wBAAwB;AACpD,MAAM,cAAc,GAAG,mBAAmB;AAC1C,MAAM,cAAc,GAAG,mBAAmB;AAC1C,MAAM,gBAAgB,GAAG,qBAAqB;AAC9C,MAAM,0BAA0B,GAAG;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @azure/msal-common v16.
|
|
1
|
+
/*! @azure/msal-common v16.14.0 2026-08-28 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { AuthError } from './AuthError.mjs';
|
|
4
4
|
import { interactionRequired, consentRequired, loginRequired, badToken, uiNotAllowed, interruptedUser } from './InteractionRequiredAuthErrorCodes.mjs';
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
/*! @azure/msal-common v16.
|
|
1
|
+
/*! @azure/msal-common v16.14.0 2026-08-28 */
|
|
2
2
|
'use strict';
|
|
3
3
|
/*
|
|
4
4
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
5
5
|
* Licensed under the MIT License.
|
|
6
6
|
*/
|
|
7
7
|
const missingKidError = "missing_kid_error";
|
|
8
|
-
const missingAlgError = "missing_alg_error";
|
|
8
|
+
const missingAlgError = "missing_alg_error";
|
|
9
|
+
const missingJwkError = "missing_jwk_error";
|
|
10
|
+
const invalidJwkError = "invalid_jwk_error";
|
|
9
11
|
|
|
10
|
-
export { missingAlgError, missingKidError };
|
|
12
|
+
export { invalidJwkError, missingAlgError, missingJwkError, missingKidError };
|
|
11
13
|
//# sourceMappingURL=JoseHeaderErrorCodes.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JoseHeaderErrorCodes.mjs","sources":["../../src/error/JoseHeaderErrorCodes.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;AAGG;AAEI,MAAM,eAAe,GAAG,oBAAoB;AAC5C,MAAM,eAAe,GAAG;;;;"}
|
|
1
|
+
{"version":3,"file":"JoseHeaderErrorCodes.mjs","sources":["../../src/error/JoseHeaderErrorCodes.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;AAGG;AAEI,MAAM,eAAe,GAAG,oBAAoB;AAC5C,MAAM,eAAe,GAAG,oBAAoB;AAC5C,MAAM,eAAe,GAAG,oBAAoB;AAC5C,MAAM,eAAe,GAAG;;;;"}
|
package/dist/index-node.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @azure/msal-common v16.
|
|
1
|
+
/*! @azure/msal-common v16.14.0 2026-08-28 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import * as AADServerParamKeys from './constants/AADServerParamKeys.mjs';
|
|
4
4
|
export { AADServerParamKeys };
|
|
@@ -36,8 +36,9 @@ import * as ClientConfigurationErrorCodes from './error/ClientConfigurationError
|
|
|
36
36
|
export { ClientConfigurationErrorCodes };
|
|
37
37
|
import * as Constants from './utils/Constants.mjs';
|
|
38
38
|
export { Constants };
|
|
39
|
-
export { DEFAULT_CRYPTO_IMPLEMENTATION } from './crypto/ICrypto.mjs';
|
|
39
|
+
export { DEFAULT_CRYPTO_IMPLEMENTATION, JsonWebTokenAlgorithms } from './crypto/ICrypto.mjs';
|
|
40
40
|
export { DEFAULT_SYSTEM_OPTIONS, buildClientConfiguration } from './config/ClientConfiguration.mjs';
|
|
41
|
+
export { DEFAULT_TOKEN_BINDING_KEY_MANAGER } from './crypto/ITokenBindingKeyManager.mjs';
|
|
41
42
|
export { InteractionRequiredAuthError, createInteractionRequiredAuthError } from './error/InteractionRequiredAuthError.mjs';
|
|
42
43
|
import * as InteractionRequiredAuthErrorCodes from './error/InteractionRequiredAuthErrorCodes.mjs';
|
|
43
44
|
export { InteractionRequiredAuthErrorCodes };
|