@azure/msal-common 16.15.0 → 16.16.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 +1 -1
- package/dist/authority/AuthorityFactory.mjs +1 -1
- package/dist/authority/AuthorityMetadata.mjs +1 -1
- package/dist/authority/AuthorityOptions.mjs +1 -1
- package/dist/authority/AuthorityType.mjs +1 -1
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +1 -1
- package/dist/authority/CloudInstanceDiscoveryResponse.mjs +1 -1
- package/dist/authority/OpenIdConfigResponse.mjs +1 -1
- package/dist/authority/ProtocolMode.mjs +1 -1
- package/dist/authority/RegionDiscovery.mjs +1 -1
- package/dist/cache/CacheManager.mjs +46 -9
- package/dist/cache/CacheManager.mjs.map +1 -1
- package/dist/cache/persistence/TokenCacheContext.mjs +1 -1
- package/dist/cache/utils/AccountEntityUtils.mjs +1 -1
- package/dist/cache/utils/CacheHelpers.mjs +1 -1
- package/dist/client/AuthorizationCodeClient.mjs +1 -1
- package/dist/client/RefreshTokenClient.mjs +1 -1
- package/dist/client/SilentFlowClient.mjs +1 -1
- package/dist/config/ClientConfiguration.mjs +1 -1
- package/dist/constants/AADServerParamKeys.mjs +1 -1
- package/dist/crypto/DpopProofGenerator.mjs +17 -7
- package/dist/crypto/DpopProofGenerator.mjs.map +1 -1
- package/dist/crypto/ICrypto.mjs +1 -1
- package/dist/crypto/ITokenBindingKeyManager.mjs +1 -1
- package/dist/crypto/ITokenBindingKeyManager.mjs.map +1 -1
- package/dist/crypto/JoseHeader.mjs +1 -1
- package/dist/crypto/PopTokenGenerator.mjs +1 -1
- package/dist/error/AuthError.mjs +1 -1
- package/dist/error/AuthErrorCodes.mjs +1 -1
- package/dist/error/CacheError.mjs +1 -1
- package/dist/error/CacheErrorCodes.mjs +1 -1
- package/dist/error/ClientAuthError.mjs +1 -1
- package/dist/error/ClientAuthErrorCodes.mjs +1 -1
- package/dist/error/ClientConfigurationError.mjs +1 -1
- package/dist/error/ClientConfigurationErrorCodes.mjs +1 -1
- package/dist/error/InteractionRequiredAuthError.mjs +1 -1
- package/dist/error/InteractionRequiredAuthErrorCodes.mjs +1 -1
- package/dist/error/JoseHeaderError.mjs +1 -1
- package/dist/error/JoseHeaderErrorCodes.mjs +1 -1
- package/dist/error/NetworkError.mjs +1 -1
- package/dist/error/PlatformBrokerError.mjs +1 -1
- package/dist/error/ServerError.mjs +1 -1
- package/dist/index-node.mjs +1 -1
- package/dist/index.mjs +2 -1
- 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/ResponseHeaders.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 +1 -1
- package/dist/request/AuthenticationHeaderParser.mjs +1 -1
- package/dist/request/BaseAuthRequest.mjs +1 -1
- package/dist/request/RequestParameterBuilder.mjs +1 -1
- package/dist/request/ScopeSet.mjs +1 -1
- package/dist/response/ResponseHandler.mjs +1 -1
- package/dist/telemetry/performance/PerformanceClient.mjs +1 -1
- package/dist/telemetry/performance/PerformanceEvent.mjs +1 -1
- package/dist/telemetry/performance/PerformanceEvents.mjs +1 -1
- package/dist/telemetry/performance/StubPerformanceClient.mjs +1 -1
- package/dist/telemetry/server/ServerTelemetryManager.mjs +1 -1
- package/dist/url/UrlString.mjs +1 -1
- package/dist/utils/ClientAssertionUtils.mjs +1 -1
- package/dist/utils/Constants.mjs +1 -1
- package/dist/utils/FunctionWrappers.mjs +1 -1
- package/dist/utils/ObjectUtils.mjs +1 -1
- package/dist/utils/ProtocolUtils.mjs +1 -1
- package/dist/utils/StringUtils.mjs +1 -1
- package/dist/utils/TimeUtils.mjs +1 -1
- package/dist/utils/UrlUtils.mjs +1 -1
- package/dist-browser/account/AccountInfo.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 +1 -1
- package/dist-browser/authority/AuthorityFactory.mjs +1 -1
- package/dist-browser/authority/AuthorityMetadata.mjs +1 -1
- package/dist-browser/authority/AuthorityOptions.mjs +1 -1
- package/dist-browser/authority/AuthorityType.mjs +1 -1
- package/dist-browser/authority/CloudInstanceDiscoveryErrorResponse.mjs +1 -1
- package/dist-browser/authority/CloudInstanceDiscoveryResponse.mjs +1 -1
- package/dist-browser/authority/OpenIdConfigResponse.mjs +1 -1
- package/dist-browser/authority/ProtocolMode.mjs +1 -1
- package/dist-browser/authority/RegionDiscovery.mjs +1 -1
- package/dist-browser/cache/CacheManager.mjs +46 -9
- package/dist-browser/cache/CacheManager.mjs.map +1 -1
- package/dist-browser/cache/persistence/TokenCacheContext.mjs +1 -1
- package/dist-browser/cache/utils/AccountEntityUtils.mjs +1 -1
- package/dist-browser/cache/utils/CacheHelpers.mjs +1 -1
- package/dist-browser/client/AuthorizationCodeClient.mjs +1 -1
- package/dist-browser/client/RefreshTokenClient.mjs +1 -1
- package/dist-browser/client/SilentFlowClient.mjs +1 -1
- package/dist-browser/config/ClientConfiguration.mjs +1 -1
- package/dist-browser/constants/AADServerParamKeys.mjs +1 -1
- package/dist-browser/crypto/DpopProofGenerator.mjs +17 -7
- package/dist-browser/crypto/DpopProofGenerator.mjs.map +1 -1
- package/dist-browser/crypto/ICrypto.mjs +1 -1
- package/dist-browser/crypto/ITokenBindingKeyManager.mjs +1 -1
- package/dist-browser/crypto/ITokenBindingKeyManager.mjs.map +1 -1
- package/dist-browser/crypto/JoseHeader.mjs +1 -1
- package/dist-browser/crypto/PopTokenGenerator.mjs +1 -1
- package/dist-browser/error/AuthError.mjs +1 -1
- package/dist-browser/error/AuthErrorCodes.mjs +1 -1
- package/dist-browser/error/CacheError.mjs +1 -1
- package/dist-browser/error/CacheErrorCodes.mjs +1 -1
- package/dist-browser/error/ClientAuthError.mjs +1 -1
- package/dist-browser/error/ClientAuthErrorCodes.mjs +1 -1
- package/dist-browser/error/ClientConfigurationError.mjs +1 -1
- package/dist-browser/error/ClientConfigurationErrorCodes.mjs +1 -1
- package/dist-browser/error/InteractionRequiredAuthError.mjs +1 -1
- package/dist-browser/error/InteractionRequiredAuthErrorCodes.mjs +1 -1
- package/dist-browser/error/JoseHeaderError.mjs +1 -1
- package/dist-browser/error/JoseHeaderErrorCodes.mjs +1 -1
- package/dist-browser/error/NetworkError.mjs +1 -1
- package/dist-browser/error/PlatformBrokerError.mjs +1 -1
- package/dist-browser/error/ServerError.mjs +1 -1
- package/dist-browser/index-browser.mjs +2 -1
- package/dist-browser/index-browser.mjs.map +1 -1
- package/dist-browser/index.mjs +2 -1
- package/dist-browser/index.mjs.map +1 -1
- package/dist-browser/log-strings-mapping.json +2 -2
- package/dist-browser/logger/Logger.mjs +1 -1
- package/dist-browser/network/INetworkModule.mjs +1 -1
- package/dist-browser/network/RequestThumbprint.mjs +1 -1
- package/dist-browser/network/ResponseHeaders.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 +1 -1
- package/dist-browser/request/AuthenticationHeaderParser.mjs +1 -1
- package/dist-browser/request/BaseAuthRequest.mjs +1 -1
- package/dist-browser/request/RequestParameterBuilder.mjs +1 -1
- package/dist-browser/request/ScopeSet.mjs +1 -1
- package/dist-browser/response/ResponseHandler.mjs +1 -1
- package/dist-browser/telemetry/performance/PerformanceClient.mjs +1 -1
- package/dist-browser/telemetry/performance/PerformanceEvent.mjs +1 -1
- package/dist-browser/telemetry/performance/PerformanceEvents.mjs +1 -1
- package/dist-browser/telemetry/performance/StubPerformanceClient.mjs +1 -1
- package/dist-browser/telemetry/server/ServerTelemetryManager.mjs +1 -1
- package/dist-browser/url/UrlString.mjs +1 -1
- package/dist-browser/utils/ClientAssertionUtils.mjs +1 -1
- package/dist-browser/utils/Constants.mjs +1 -1
- package/dist-browser/utils/FunctionWrappers.mjs +1 -1
- package/dist-browser/utils/ObjectUtils.mjs +1 -1
- package/dist-browser/utils/ProtocolUtils.mjs +1 -1
- package/dist-browser/utils/StringUtils.mjs +1 -1
- package/dist-browser/utils/TimeUtils.mjs +1 -1
- package/dist-browser/utils/UrlUtils.mjs +1 -1
- package/lib/index-browser.cjs +4 -2
- package/lib/index-browser.cjs.map +1 -1
- package/lib/{index-node-DD4RzKVr.js → index-node-C1QI6fAD.js} +65 -16
- package/lib/{index-node-DD4RzKVr.js.map → index-node-C1QI6fAD.js.map} +1 -1
- package/lib/index-node.cjs +2 -2
- package/lib/index.cjs +4 -2
- package/lib/index.cjs.map +1 -1
- package/package.json +1 -1
- package/src/cache/CacheManager.ts +87 -15
- package/src/crypto/DpopProofGenerator.ts +36 -5
- package/src/crypto/ITokenBindingKeyManager.ts +11 -0
- package/src/exports-browser-only.ts +5 -0
- package/src/packageMetadata.ts +1 -1
- package/types/cache/CacheManager.d.ts +9 -0
- package/types/cache/CacheManager.d.ts.map +1 -1
- package/types/crypto/DpopProofGenerator.d.ts +20 -3
- package/types/crypto/DpopProofGenerator.d.ts.map +1 -1
- package/types/crypto/ITokenBindingKeyManager.d.ts +8 -0
- package/types/crypto/ITokenBindingKeyManager.d.ts.map +1 -1
- package/types/exports-browser-only.d.ts +2 -0
- package/types/exports-browser-only.d.ts.map +1 -1
- package/types/packageMetadata.d.ts +1 -1
package/lib/index-node.cjs
CHANGED
package/lib/index.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/*! @azure/msal-common v16.
|
|
1
|
+
/*! @azure/msal-common v16.16.0 2026-11-05 */
|
|
2
2
|
'use strict';
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
5
|
-
var indexNode = require('./index-node-
|
|
5
|
+
var indexNode = require('./index-node-C1QI6fAD.js');
|
|
6
6
|
var indexBrowser = require('./index-browser.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
@@ -34,6 +34,7 @@ exports.DEFAULT_CRYPTO_IMPLEMENTATION = indexNode.DEFAULT_CRYPTO_IMPLEMENTATION;
|
|
|
34
34
|
exports.DEFAULT_SYSTEM_OPTIONS = indexNode.DEFAULT_SYSTEM_OPTIONS;
|
|
35
35
|
exports.DEFAULT_TOKEN_BINDING_KEY_MANAGER = indexNode.DEFAULT_TOKEN_BINDING_KEY_MANAGER;
|
|
36
36
|
exports.DefaultStorageClass = indexNode.DefaultStorageClass;
|
|
37
|
+
exports.DpopProofGenerator = indexNode.DpopProofGenerator;
|
|
37
38
|
exports.IntFields = indexNode.IntFields;
|
|
38
39
|
exports.InteractionRequiredAuthError = indexNode.InteractionRequiredAuthError;
|
|
39
40
|
exports.InteractionRequiredAuthErrorCodes = indexNode.InteractionRequiredAuthErrorCodes;
|
|
@@ -87,6 +88,7 @@ exports.getRequestThumbprint = indexNode.getRequestThumbprint;
|
|
|
87
88
|
exports.getTenantIdFromIdTokenClaims = indexNode.getTenantIdFromIdTokenClaims;
|
|
88
89
|
exports.invoke = indexNode.invoke;
|
|
89
90
|
exports.invokeAsync = indexNode.invokeAsync;
|
|
91
|
+
exports.normalizeDpopResourceRequestContext = indexNode.normalizeDpopResourceRequestContext;
|
|
90
92
|
exports.tenantIdMatchesHomeTenant = indexNode.tenantIdMatchesHomeTenant;
|
|
91
93
|
exports.updateAccountTenantProfileData = indexNode.updateAccountTenantProfileData;
|
|
92
94
|
exports.version = indexNode.version;
|
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
|
@@ -719,6 +719,7 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
719
719
|
correlationId
|
|
720
720
|
);
|
|
721
721
|
|
|
722
|
+
const accessTokenKeysToRemove: string[] = [];
|
|
722
723
|
tokenKeys.accessToken.forEach((key) => {
|
|
723
724
|
if (
|
|
724
725
|
!this.accessTokenKeyMatchesFilter(key, accessTokenFilter, false)
|
|
@@ -744,10 +745,17 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
744
745
|
correlationId
|
|
745
746
|
);
|
|
746
747
|
if (tokenScopeSet.intersectingScopeSets(currentScopes)) {
|
|
747
|
-
|
|
748
|
+
accessTokenKeysToRemove.push(key);
|
|
748
749
|
}
|
|
749
750
|
}
|
|
750
751
|
});
|
|
752
|
+
for (const key of accessTokenKeysToRemove) {
|
|
753
|
+
await this.removeAccessTokenAndTokenBindingKey(
|
|
754
|
+
key,
|
|
755
|
+
correlationId,
|
|
756
|
+
credential.keyId
|
|
757
|
+
);
|
|
758
|
+
}
|
|
751
759
|
await this.setAccessTokenCredential(
|
|
752
760
|
credential,
|
|
753
761
|
correlationId,
|
|
@@ -1100,9 +1108,42 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1100
1108
|
* @param correlationId
|
|
1101
1109
|
*/
|
|
1102
1110
|
removeAccessToken(key: string, correlationId: string): void {
|
|
1111
|
+
const credential = this.removeAccessTokenCredential(key, correlationId);
|
|
1112
|
+
if (credential) {
|
|
1113
|
+
void this.removeTokenBindingKeyForCredential(
|
|
1114
|
+
credential,
|
|
1115
|
+
correlationId
|
|
1116
|
+
);
|
|
1117
|
+
}
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1120
|
+
/**
|
|
1121
|
+
* Removes an access token and waits for any unreferenced token-binding key
|
|
1122
|
+
* cleanup. Internal callers that require deterministic cleanup should use
|
|
1123
|
+
* this method instead of the synchronous public cache contract.
|
|
1124
|
+
*/
|
|
1125
|
+
async removeAccessTokenAndTokenBindingKey(
|
|
1126
|
+
key: string,
|
|
1127
|
+
correlationId: string,
|
|
1128
|
+
preservedKeyId?: string
|
|
1129
|
+
): Promise<void> {
|
|
1130
|
+
const credential = this.removeAccessTokenCredential(key, correlationId);
|
|
1131
|
+
if (credential) {
|
|
1132
|
+
await this.removeTokenBindingKeyForCredential(
|
|
1133
|
+
credential,
|
|
1134
|
+
correlationId,
|
|
1135
|
+
preservedKeyId
|
|
1136
|
+
);
|
|
1137
|
+
}
|
|
1138
|
+
}
|
|
1139
|
+
|
|
1140
|
+
private removeAccessTokenCredential(
|
|
1141
|
+
key: string,
|
|
1142
|
+
correlationId: string
|
|
1143
|
+
): AccessTokenEntity | null {
|
|
1103
1144
|
const credential = this.getAccessTokenCredential(key, correlationId);
|
|
1104
1145
|
if (!credential) {
|
|
1105
|
-
return;
|
|
1146
|
+
return null;
|
|
1106
1147
|
}
|
|
1107
1148
|
|
|
1108
1149
|
this.removeItem(key, correlationId);
|
|
@@ -1110,7 +1151,14 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1110
1151
|
{ accessTokensRemoved: 1 },
|
|
1111
1152
|
correlationId
|
|
1112
1153
|
);
|
|
1154
|
+
return credential;
|
|
1155
|
+
}
|
|
1113
1156
|
|
|
1157
|
+
private async removeTokenBindingKeyForCredential(
|
|
1158
|
+
credential: AccessTokenEntity,
|
|
1159
|
+
correlationId: string,
|
|
1160
|
+
preservedKeyId?: string
|
|
1161
|
+
): Promise<void> {
|
|
1114
1162
|
// Remove Token Binding Key from key store for token-bound access token credentials
|
|
1115
1163
|
if (
|
|
1116
1164
|
credential.credentialType.toLowerCase() ===
|
|
@@ -1124,19 +1172,26 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1124
1172
|
credential as AccessTokenEntity;
|
|
1125
1173
|
const kid = accessTokenWithAuthSchemeEntity.keyId;
|
|
1126
1174
|
|
|
1127
|
-
if (
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1175
|
+
if (
|
|
1176
|
+
kid &&
|
|
1177
|
+
kid !== preservedKeyId &&
|
|
1178
|
+
!this.isTokenBindingKeyReferenced(kid, correlationId)
|
|
1179
|
+
) {
|
|
1180
|
+
try {
|
|
1181
|
+
await this.tokenBindingKeyManager.removeTokenBindingKey(
|
|
1182
|
+
kid,
|
|
1183
|
+
correlationId
|
|
1184
|
+
);
|
|
1185
|
+
} catch {
|
|
1186
|
+
this.commonLogger.error(
|
|
1187
|
+
"Failed to remove token binding key",
|
|
1188
|
+
correlationId
|
|
1189
|
+
);
|
|
1190
|
+
this.performanceClient?.incrementFields(
|
|
1191
|
+
{ removeTokenBindingKeyFailure: 1 },
|
|
1192
|
+
correlationId
|
|
1193
|
+
);
|
|
1194
|
+
}
|
|
1140
1195
|
}
|
|
1141
1196
|
break;
|
|
1142
1197
|
}
|
|
@@ -1144,6 +1199,19 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1144
1199
|
}
|
|
1145
1200
|
}
|
|
1146
1201
|
|
|
1202
|
+
private isTokenBindingKeyReferenced(
|
|
1203
|
+
keyId: string,
|
|
1204
|
+
correlationId: string
|
|
1205
|
+
): boolean {
|
|
1206
|
+
return this.getTokenKeys().accessToken.some((accessTokenKey) => {
|
|
1207
|
+
const accessToken = this.getAccessTokenCredential(
|
|
1208
|
+
accessTokenKey,
|
|
1209
|
+
correlationId
|
|
1210
|
+
);
|
|
1211
|
+
return accessToken?.keyId === keyId;
|
|
1212
|
+
});
|
|
1213
|
+
}
|
|
1214
|
+
|
|
1147
1215
|
/**
|
|
1148
1216
|
* Removes all app metadata objects from cache.
|
|
1149
1217
|
*/
|
|
@@ -1358,6 +1426,7 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1358
1426
|
const authScheme =
|
|
1359
1427
|
request.authenticationScheme ||
|
|
1360
1428
|
Constants.AuthenticationScheme.BEARER;
|
|
1429
|
+
const normalizedAuthScheme = authScheme.toLowerCase();
|
|
1361
1430
|
/*
|
|
1362
1431
|
* Distinguish between Bearer and PoP/SSH token cache types
|
|
1363
1432
|
* Cast to lowercase to handle "bearer" from ADFS
|
|
@@ -1388,6 +1457,9 @@ export abstract class CacheManager implements ICacheManager {
|
|
|
1388
1457
|
keyId:
|
|
1389
1458
|
authScheme === Constants.AuthenticationScheme.SSH
|
|
1390
1459
|
? request.sshKid
|
|
1460
|
+
: normalizedAuthScheme ===
|
|
1461
|
+
Constants.AuthenticationScheme.DPOP.toLowerCase()
|
|
1462
|
+
? request.popKid || request.dpopJkt
|
|
1391
1463
|
: undefined,
|
|
1392
1464
|
additionalCacheKeyComponents: additionalCacheKeyComponents,
|
|
1393
1465
|
};
|
|
@@ -47,6 +47,20 @@ export type DpopResourceProofParams = {
|
|
|
47
47
|
nonce?: string;
|
|
48
48
|
};
|
|
49
49
|
|
|
50
|
+
/**
|
|
51
|
+
* HTTP resource context used by a DPoP-bound request.
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
export type DpopResourceRequestContext = {
|
|
55
|
+
htu: string;
|
|
56
|
+
htm: string;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Resource request context and access token used to generate a DPoP proof.
|
|
61
|
+
* Exported for use by MSAL Browser and unsupported for direct consumers.
|
|
62
|
+
* @internal
|
|
63
|
+
*/
|
|
50
64
|
export type GenerateDpopResourceProofParams = {
|
|
51
65
|
htu?: string;
|
|
52
66
|
htm?: string;
|
|
@@ -128,13 +142,26 @@ function validateDpopNonce(
|
|
|
128
142
|
}
|
|
129
143
|
}
|
|
130
144
|
|
|
145
|
+
/**
|
|
146
|
+
* Validates and normalizes the HTTP resource context for a DPoP-bound request.
|
|
147
|
+
* @internal
|
|
148
|
+
*/
|
|
149
|
+
export function normalizeDpopResourceRequestContext(
|
|
150
|
+
context: DpopResourceRequestContext,
|
|
151
|
+
correlationId: string = ""
|
|
152
|
+
): DpopResourceRequestContext {
|
|
153
|
+
return {
|
|
154
|
+
htm: normalizeHtm(context.htm, correlationId),
|
|
155
|
+
htu: normalizeHtu(context.htu, correlationId),
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
|
|
131
159
|
/**
|
|
132
160
|
* Builds RFC 9449 DPoP proof JWT payloads for token-endpoint and
|
|
133
161
|
* resource-endpoint proof bindings.
|
|
134
162
|
*
|
|
135
|
-
*
|
|
136
|
-
* This helper
|
|
137
|
-
* in a subsequent work item.
|
|
163
|
+
* Exported from package entry points for use by MSAL Browser.
|
|
164
|
+
* This helper remains an unsupported internal API for direct consumers.
|
|
138
165
|
*
|
|
139
166
|
* DPoP proofs do not contain SHR fields (at, ts, m, u, p, q).
|
|
140
167
|
* @internal
|
|
@@ -213,10 +240,14 @@ export class DpopProofGenerator {
|
|
|
213
240
|
correlationId: string = ""
|
|
214
241
|
): DpopProofClaims {
|
|
215
242
|
validateDpopNonce(params.nonce, correlationId);
|
|
243
|
+
const resourceContext = normalizeDpopResourceRequestContext(
|
|
244
|
+
params,
|
|
245
|
+
correlationId
|
|
246
|
+
);
|
|
216
247
|
const claims: DpopProofClaims = {
|
|
217
248
|
jti: this.cryptoUtils.createNewGuid(),
|
|
218
|
-
htm:
|
|
219
|
-
htu:
|
|
249
|
+
htm: resourceContext.htm,
|
|
250
|
+
htu: resourceContext.htu,
|
|
220
251
|
ath: params.ath,
|
|
221
252
|
iat: TimeUtils.nowSeconds(),
|
|
222
253
|
};
|
|
@@ -39,6 +39,17 @@ export interface ITokenBindingKeyManager {
|
|
|
39
39
|
* @param correlationId - Request correlation identifier.
|
|
40
40
|
*/
|
|
41
41
|
removeTokenBindingKey(kid: string, correlationId: string): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Returns whether a token-binding key is available to the current context.
|
|
44
|
+
*/
|
|
45
|
+
hasTokenBindingKey?(kid: string, correlationId: string): Promise<boolean>;
|
|
46
|
+
/**
|
|
47
|
+
* Returns whether a token-binding key is available in persistent storage.
|
|
48
|
+
*/
|
|
49
|
+
isTokenBindingKeyPersisted?(
|
|
50
|
+
kid: string,
|
|
51
|
+
correlationId: string
|
|
52
|
+
): Promise<boolean>;
|
|
42
53
|
/**
|
|
43
54
|
* Gets a token-binding public key as a JWK by identifier.
|
|
44
55
|
* @param kid - Token-binding key identifier.
|
|
@@ -23,3 +23,8 @@ export { PerformanceClient } from "./telemetry/performance/PerformanceClient.js"
|
|
|
23
23
|
export { StubPerformanceClient } from "./telemetry/performance/StubPerformanceClient.js";
|
|
24
24
|
|
|
25
25
|
export { PopTokenGenerator } from "./crypto/PopTokenGenerator.js";
|
|
26
|
+
export {
|
|
27
|
+
DpopProofGenerator,
|
|
28
|
+
normalizeDpopResourceRequestContext,
|
|
29
|
+
} from "./crypto/DpopProofGenerator.js";
|
|
30
|
+
export type { DpopResourceRequestContext } from "./crypto/DpopProofGenerator.js";
|
package/src/packageMetadata.ts
CHANGED
|
@@ -245,6 +245,15 @@ export declare abstract class CacheManager implements ICacheManager {
|
|
|
245
245
|
* @param correlationId
|
|
246
246
|
*/
|
|
247
247
|
removeAccessToken(key: string, correlationId: string): void;
|
|
248
|
+
/**
|
|
249
|
+
* Removes an access token and waits for any unreferenced token-binding key
|
|
250
|
+
* cleanup. Internal callers that require deterministic cleanup should use
|
|
251
|
+
* this method instead of the synchronous public cache contract.
|
|
252
|
+
*/
|
|
253
|
+
removeAccessTokenAndTokenBindingKey(key: string, correlationId: string, preservedKeyId?: string): Promise<void>;
|
|
254
|
+
private removeAccessTokenCredential;
|
|
255
|
+
private removeTokenBindingKeyForCredential;
|
|
256
|
+
private isTokenBindingKeyReferenced;
|
|
248
257
|
/**
|
|
249
258
|
* Removes all app metadata objects from cache.
|
|
250
259
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../src/cache/CacheManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../src/cache/CacheManager.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,WAAW,EAGd,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAO/E,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAEpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,EACH,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAEhB,SAAS,EACT,mBAAmB,EACtB,MAAM,uBAAuB,CAAC;AAE/B;;;GAGG;AACH,8BAAsB,YAAa,YAAW,aAAa;IACvD,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC;IAC9B,SAAS,CAAC,sBAAsB,EAAE,uBAAuB,CAAC;IAE1D,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,sBAAsB,CAAC,CAAyB;IACxD,SAAS,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;gBAG5C,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,kBAAkB,EACrC,sBAAsB,EAAE,sBAAsB,GAAG,SAAS,EAC1D,sBAAsB,EAAE,uBAAuB;IAUnD;;;OAGG;IACH,QAAQ,CAAC,UAAU,CACf,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACtB,aAAa,GAAG,IAAI;IAEvB;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CACf,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,CACzB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GACtB,aAAa,GAAG,IAAI;IAEvB;;;;OAIG;IACH,QAAQ,CAAC,oBAAoB,CACzB,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,wBAAwB,CAC7B,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,GACtB,iBAAiB,GAAG,IAAI;IAE3B;;;;;;OAMG;IACH,QAAQ,CAAC,wBAAwB,CAC7B,WAAW,EAAE,iBAAiB,EAC9B,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,OAAO,EACb,sBAAsB,CAAC,EAAE,MAAM,GAChC,OAAO,CAAC,IAAI,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,yBAAyB,CAC9B,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,GACtB,kBAAkB,GAAG,IAAI;IAE5B;;;;OAIG;IACH,QAAQ,CAAC,yBAAyB,CAC9B,YAAY,EAAE,kBAAkB,EAChC,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,OAAO,GACd,OAAO,CAAC,IAAI,CAAC;IAEhB;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CACnB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,GACtB,iBAAiB,GAAG,IAAI;IAE3B;;;OAGG;IACH,QAAQ,CAAC,cAAc,CACnB,WAAW,EAAE,iBAAiB,EAC9B,aAAa,EAAE,MAAM,GACtB,IAAI;IAEP;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,CACvB,kBAAkB,EAAE,MAAM,EAC1B,aAAa,EAAE,MAAM,GACtB,qBAAqB,GAAG,IAAI;IAE/B;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,CACvB,kBAAkB,EAAE,MAAM,EAC1B,eAAe,EAAE,qBAAqB,EACtC,aAAa,EAAE,MAAM,GACtB,IAAI;IAEP;;;;OAIG;IACH,QAAQ,CAAC,oBAAoB,CACzB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,GACtB,uBAAuB,GAAG,IAAI;IAEjC;;OAEG;IACH,QAAQ,CAAC,wBAAwB,IAAI,KAAK,CAAC,MAAM,CAAC;IAElD;;;;;OAKG;IACH,QAAQ,CAAC,oBAAoB,CACzB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,uBAAuB,EAC9B,aAAa,EAAE,MAAM,GACtB,IAAI;IAEP;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,CACvB,kBAAkB,EAAE,MAAM,EAC1B,aAAa,EAAE,MAAM,GACtB,gBAAgB,GAAG,IAAI;IAE1B;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,CACvB,kBAAkB,EAAE,MAAM,EAC1B,eAAe,EAAE,gBAAgB,EACjC,aAAa,EAAE,MAAM,GACtB,IAAI;IAEP;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAE7D;;OAEG;IACH,QAAQ,CAAC,OAAO,IAAI,MAAM,EAAE;IAE5B;;OAEG;IACH,QAAQ,CAAC,cAAc,IAAI,MAAM,EAAE;IAEnC;;OAEG;IACH,QAAQ,CAAC,YAAY,IAAI,SAAS;IAElC;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,CAC1B,UAAU,EAAE,gBAAgB,EAC5B,sBAAsB,CAAC,EAAE,MAAM,GAChC,MAAM;IAET;;;OAGG;IACH,QAAQ,CAAC,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM;IAEzD;;;;OAIG;IACH,cAAc,CACV,aAAa,2BAAoB,EACjC,aAAa,EAAE,MAAM,GACtB,WAAW,EAAE;IAQhB;;OAEG;IACH,wBAAwB,CACpB,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,GACtB,WAAW,GAAG,IAAI;IA8BrB;;;;OAIG;IACH,kBAAkB,CACd,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,GACtB,WAAW,GAAG,IAAI;IAYrB;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,8BAA8B;IAyDtC,OAAO,CAAC,kCAAkC;IA0C1C,OAAO,CAAC,0BAA0B;IAmElC,OAAO,CAAC,qCAAqC;IA0D7C;;;;;OAKG;IACG,eAAe,CACjB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,YAAY,GAC5B,OAAO,CAAC,IAAI,CAAC;IAgEhB;;;;;OAKG;YACW,eAAe;IA2E7B;;;;OAIG;IACH,qBAAqB,CACjB,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,GACtB,aAAa,EAAE;IA6ElB;;;;;;OAMG;IACH,uBAAuB,CACnB,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,gBAAgB,EACxB,aAAa,EAAE,MAAM,GACtB,OAAO;IAiGV;;;;OAIG;IACH,wBAAwB,CACpB,MAAM,EAAE,iBAAiB,EACzB,aAAa,EAAE,MAAM,GACtB,gBAAgB;IAyCnB;;;;OAIG;IACH,2BAA2B,CACvB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GACtB,uBAAuB,GAAG,IAAI;IA8BjC;;OAEG;IACH,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;IAO9C;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAkBhE;;;OAGG;IACH,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAsBvE;;;;OAIG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAU3D;;;;OAIG;IACG,mCAAmC,CACrC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,cAAc,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,IAAI,CAAC;IAWhB,OAAO,CAAC,2BAA2B;YAiBrB,kCAAkC;IA6ChD,OAAO,CAAC,2BAA2B;IAanC;;OAEG;IACH,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAWjD;;;;;;;OAOG;IACH,UAAU,CACN,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,SAAS,EACrB,WAAW,CAAC,EAAE,MAAM,GACrB,aAAa,GAAG,IAAI;IAgFvB;;;;OAIG;IACH,mBAAmB,CACf,MAAM,EAAE,gBAAgB,EACxB,aAAa,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,SAAS,GACtB,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC;IA6B7B;;;;;OAKG;IACH,uBAAuB,CACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,gBAAgB,GACzB,OAAO;IAmBV;;;OAGG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAIvD;;;OAGG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAI5D;;;;;;OAMG;IACH,cAAc,CACV,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,eAAe,EACxB,SAAS,CAAC,EAAE,SAAS,EACrB,WAAW,CAAC,EAAE,MAAM,GACrB,iBAAiB,GAAG,IAAI;IA6G3B;;;;;;OAMG;IACH,2BAA2B,CACvB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,gBAAgB,EACxB,uBAAuB,EAAE,OAAO,GACjC,OAAO;IA0CV;;;;OAIG;IACH,uBAAuB,CACnB,MAAM,EAAE,gBAAgB,EACxB,aAAa,EAAE,MAAM,GACtB,iBAAiB,EAAE;IAwBtB;;;;;;;OAOG;IACH,eAAe,CACX,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,OAAO,EACjB,aAAa,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,SAAS,GACtB,kBAAkB,GAAG,IAAI;IAgE5B;;;;OAIG;IACH,4BAA4B,CACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,gBAAgB,GACzB,OAAO;IA4BV;;OAEG;IACH,wBAAwB,CACpB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACtB,iBAAiB,GAAG,IAAI;IA2B3B;;;;OAIG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO;IAUtE;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;;;;OAKG;IACH,OAAO,CAAC,kCAAkC;IAQ1C,OAAO,CAAC,oCAAoC;IAO5C;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAIjB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAWrB;;;;;OAKG;IACH,OAAO,CAAC,+BAA+B;IAWvC;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAkCxB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAOrB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAOrB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAOlB;;;;;;;;OAQG;IACH,OAAO,CAAC,6BAA6B;IAwBrC;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,kBAAkB;IAU1B;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAsBnB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,8BAA8B;IAwBtC,OAAO,CAAC,wBAAwB;IAWhC;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAIlB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAIrB;;;OAGG;IACH,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAInD;;OAEG;IACH,iCAAiC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAI5D;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;CAM9C;AAED,gBAAgB;AAChB,qBAAa,mBAAoB,SAAQ,YAAY;IAC3C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMjC,UAAU,IAAI,aAAa;IAMrB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3C,oBAAoB,IAAI,aAAa;IAM/B,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/C,wBAAwB,IAAI,iBAAiB;IAMvC,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAMhD,yBAAyB,IAAI,kBAAkB;IAM/C,cAAc,IAAI,IAAI;IAMtB,cAAc,IAAI,iBAAiB;IAMnC,kBAAkB,IAAI,IAAI;IAM1B,kBAAkB,IAAI,qBAAqB;IAM3C,oBAAoB,IAAI,IAAI;IAM5B,oBAAoB,IAAI,uBAAuB,GAAG,IAAI;IAMtD,wBAAwB,IAAI,KAAK,CAAC,MAAM,CAAC;IAMzC,kBAAkB,IAAI,IAAI;IAM1B,kBAAkB,IAAI,gBAAgB;IAMtC,UAAU,IAAI,OAAO;IAMrB,OAAO,IAAI,MAAM,EAAE;IAMnB,cAAc,IAAI,MAAM,EAAE;IAM1B,YAAY,IAAI,SAAS;IAOzB,qBAAqB,CACjB,WAAW,EAAE,gBAAgB,EAC7B,KAAK,CAAC,EAAE,MAAM,GACf,MAAM;IAOT,kBAAkB,IAAI,MAAM;CAM/B"}
|
|
@@ -31,19 +31,36 @@ export type DpopResourceProofParams = {
|
|
|
31
31
|
ath: string;
|
|
32
32
|
nonce?: string;
|
|
33
33
|
};
|
|
34
|
+
/**
|
|
35
|
+
* HTTP resource context used by a DPoP-bound request.
|
|
36
|
+
* @internal
|
|
37
|
+
*/
|
|
38
|
+
export type DpopResourceRequestContext = {
|
|
39
|
+
htu: string;
|
|
40
|
+
htm: string;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Resource request context and access token used to generate a DPoP proof.
|
|
44
|
+
* Exported for use by MSAL Browser and unsupported for direct consumers.
|
|
45
|
+
* @internal
|
|
46
|
+
*/
|
|
34
47
|
export type GenerateDpopResourceProofParams = {
|
|
35
48
|
htu?: string;
|
|
36
49
|
htm?: string;
|
|
37
50
|
nonce?: string;
|
|
38
51
|
accessToken: string;
|
|
39
52
|
};
|
|
53
|
+
/**
|
|
54
|
+
* Validates and normalizes the HTTP resource context for a DPoP-bound request.
|
|
55
|
+
* @internal
|
|
56
|
+
*/
|
|
57
|
+
export declare function normalizeDpopResourceRequestContext(context: DpopResourceRequestContext, correlationId?: string): DpopResourceRequestContext;
|
|
40
58
|
/**
|
|
41
59
|
* Builds RFC 9449 DPoP proof JWT payloads for token-endpoint and
|
|
42
60
|
* resource-endpoint proof bindings.
|
|
43
61
|
*
|
|
44
|
-
*
|
|
45
|
-
* This helper
|
|
46
|
-
* in a subsequent work item.
|
|
62
|
+
* Exported from package entry points for use by MSAL Browser.
|
|
63
|
+
* This helper remains an unsupported internal API for direct consumers.
|
|
47
64
|
*
|
|
48
65
|
* DPoP proofs do not contain SHR fields (at, ts, m, u, p, q).
|
|
49
66
|
* @internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DpopProofGenerator.d.ts","sourceRoot":"","sources":["../../src/crypto/DpopProofGenerator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAA0B,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AASvE;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AA4EF
|
|
1
|
+
{"version":3,"file":"DpopProofGenerator.d.ts","sourceRoot":"","sources":["../../src/crypto/DpopProofGenerator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAA0B,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AASvE;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,+BAA+B,GAAG;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AA4EF;;;GAGG;AACH,wBAAgB,mCAAmC,CAC/C,OAAO,EAAE,0BAA0B,EACnC,aAAa,GAAE,MAAW,GAC3B,0BAA0B,CAK5B;AAED;;;;;;;;;GASG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,sBAAsB,CAA0B;gBAGpD,WAAW,EAAE,OAAO,EACpB,sBAAsB,EAAE,uBAAuB;IAMnD;;;OAGG;IACG,WAAW,CAAC,aAAa,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ9D;;;;;OAKG;IACH,qBAAqB,CACjB,MAAM,EAAE,oBAAoB,EAC5B,aAAa,GAAE,MAAW,GAC3B,eAAe;IAclB;;OAEG;IACG,kBAAkB,CACpB,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,MAAM,EACb,aAAa,GAAE,MAAW,GAC3B,OAAO,CAAC,MAAM,CAAC;IAQlB;;;;;;OAMG;IACH,wBAAwB,CACpB,MAAM,EAAE,uBAAuB,EAC/B,aAAa,GAAE,MAAW,GAC3B,eAAe;IAmBlB;;OAEG;IACG,qBAAqB,CACvB,MAAM,EAAE,+BAA+B,EACvC,KAAK,EAAE,MAAM,EACb,aAAa,GAAE,MAAW,GAC3B,OAAO,CAAC,MAAM,CAAC;YAyBJ,aAAa;CAkB9B"}
|
|
@@ -26,6 +26,14 @@ export interface ITokenBindingKeyManager {
|
|
|
26
26
|
* @param correlationId - Request correlation identifier.
|
|
27
27
|
*/
|
|
28
28
|
removeTokenBindingKey(kid: string, correlationId: string): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Returns whether a token-binding key is available to the current context.
|
|
31
|
+
*/
|
|
32
|
+
hasTokenBindingKey?(kid: string, correlationId: string): Promise<boolean>;
|
|
33
|
+
/**
|
|
34
|
+
* Returns whether a token-binding key is available in persistent storage.
|
|
35
|
+
*/
|
|
36
|
+
isTokenBindingKeyPersisted?(kid: string, correlationId: string): Promise<boolean>;
|
|
29
37
|
/**
|
|
30
38
|
* Gets a token-binding public key as a JWK by identifier.
|
|
31
39
|
* @param kid - Token-binding key identifier.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ITokenBindingKeyManager.d.ts","sourceRoot":"","sources":["../../src/crypto/ITokenBindingKeyManager.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,MAAM,qCAAqC,GAAG;IAChD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wBAAwB,EAAE,MAAM,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACpC;;;OAGG;IACH,wBAAwB,CACpB,OAAO,EAAE,qCAAqC,GAC/C,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB;;;;OAIG;IACH,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE;;;;OAIG;IACH,2BAA2B,CACvB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAChC;AAED;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,EAAE,uBA2B/C,CAAC"}
|
|
1
|
+
{"version":3,"file":"ITokenBindingKeyManager.d.ts","sourceRoot":"","sources":["../../src/crypto/ITokenBindingKeyManager.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,MAAM,qCAAqC,GAAG;IAChD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wBAAwB,EAAE,MAAM,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACpC;;;OAGG;IACH,wBAAwB,CACpB,OAAO,EAAE,qCAAqC,GAC/C,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB;;;;OAIG;IACH,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE;;OAEG;IACH,kBAAkB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1E;;OAEG;IACH,0BAA0B,CAAC,CACvB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,GACtB,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB;;;;OAIG;IACH,2BAA2B,CACvB,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAChC;AAED;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,EAAE,uBA2B/C,CAAC"}
|
|
@@ -8,4 +8,6 @@ export { IPerformanceMeasurement } from "./telemetry/performance/IPerformanceMea
|
|
|
8
8
|
export { PerformanceClient } from "./telemetry/performance/PerformanceClient.js";
|
|
9
9
|
export { StubPerformanceClient } from "./telemetry/performance/StubPerformanceClient.js";
|
|
10
10
|
export { PopTokenGenerator } from "./crypto/PopTokenGenerator.js";
|
|
11
|
+
export { DpopProofGenerator, normalizeDpopResourceRequestContext, } from "./crypto/DpopProofGenerator.js";
|
|
12
|
+
export type { DpopResourceRequestContext } from "./crypto/DpopProofGenerator.js";
|
|
11
13
|
//# sourceMappingURL=exports-browser-only.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports-browser-only.d.ts","sourceRoot":"","sources":["../src/exports-browser-only.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EACH,kBAAkB,EAClB,2BAA2B,EAC3B,0BAA0B,GAC7B,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACH,SAAS,EACT,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,GACjB,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,iBAAiB,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oDAAoD,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AAEzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"exports-browser-only.d.ts","sourceRoot":"","sources":["../src/exports-browser-only.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EACH,kBAAkB,EAClB,2BAA2B,EAC3B,0BAA0B,GAC7B,MAAM,+CAA+C,CAAC;AACvD,OAAO,EACH,SAAS,EACT,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,GACjB,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,iBAAiB,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oDAAoD,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AAEzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EACH,kBAAkB,EAClB,mCAAmC,GACtC,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC"}
|