@azure/msal-common 14.4.1-beta.0 → 14.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/account/AccountInfo.d.ts +58 -31
- package/dist/account/AccountInfo.d.ts.map +1 -1
- package/dist/account/AccountInfo.mjs +64 -0
- package/dist/account/AccountInfo.mjs.map +1 -0
- package/dist/account/AuthToken.d.ts +17 -17
- package/dist/account/AuthToken.mjs +58 -58
- package/dist/account/AuthToken.mjs.map +1 -1
- package/dist/account/CcsCredential.d.ts +9 -9
- package/dist/account/CcsCredential.mjs +8 -8
- package/dist/account/CcsCredential.mjs.map +1 -1
- package/dist/account/ClientCredentials.d.ts +14 -14
- package/dist/account/ClientInfo.d.ts +18 -19
- package/dist/account/ClientInfo.d.ts.map +1 -1
- package/dist/account/ClientInfo.mjs +37 -37
- package/dist/account/ClientInfo.mjs.map +1 -1
- package/dist/account/TokenClaims.d.ts +83 -65
- package/dist/account/TokenClaims.d.ts.map +1 -1
- package/dist/account/TokenClaims.mjs +25 -0
- package/dist/account/TokenClaims.mjs.map +1 -0
- package/dist/authority/Authority.d.ts +253 -249
- package/dist/authority/Authority.d.ts.map +1 -1
- package/dist/authority/Authority.mjs +812 -789
- package/dist/authority/Authority.mjs.map +1 -1
- package/dist/authority/AuthorityFactory.d.ts +31 -31
- package/dist/authority/AuthorityFactory.mjs +47 -47
- package/dist/authority/AuthorityFactory.mjs.map +1 -1
- package/dist/authority/AuthorityMetadata.d.ts +503 -503
- package/dist/authority/AuthorityMetadata.mjs +603 -603
- package/dist/authority/AuthorityMetadata.mjs.map +1 -1
- package/dist/authority/AuthorityOptions.d.ts +27 -27
- package/dist/authority/AuthorityOptions.mjs +18 -18
- package/dist/authority/AuthorityOptions.mjs.map +1 -1
- package/dist/authority/AuthorityType.d.ts +10 -10
- package/dist/authority/AuthorityType.mjs +13 -13
- package/dist/authority/AuthorityType.mjs.map +1 -1
- package/dist/authority/AzureRegion.d.ts +1 -1
- package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
- package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +8 -8
- package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs.map +1 -1
- package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
- package/dist/authority/CloudInstanceDiscoveryResponse.mjs +8 -8
- package/dist/authority/CloudInstanceDiscoveryResponse.mjs.map +1 -1
- package/dist/authority/ImdsOptions.d.ts +5 -5
- package/dist/authority/OIDCOptions.d.ts +8 -8
- package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
- package/dist/authority/OpenIdConfigResponse.mjs +10 -10
- package/dist/authority/OpenIdConfigResponse.mjs.map +1 -1
- package/dist/authority/ProtocolMode.d.ts +8 -8
- package/dist/authority/ProtocolMode.mjs +11 -11
- package/dist/authority/ProtocolMode.mjs.map +1 -1
- package/dist/authority/RegionDiscovery.d.ts +32 -32
- package/dist/authority/RegionDiscovery.mjs +106 -106
- package/dist/authority/RegionDiscovery.mjs.map +1 -1
- package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
- package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
- package/dist/cache/CacheManager.d.ts +517 -485
- package/dist/cache/CacheManager.d.ts.map +1 -1
- package/dist/cache/CacheManager.mjs +1264 -1102
- package/dist/cache/CacheManager.mjs.map +1 -1
- package/dist/cache/entities/AccessTokenEntity.d.ts +25 -25
- package/dist/cache/entities/AccountEntity.d.ts +106 -101
- package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
- package/dist/cache/entities/AccountEntity.mjs +247 -219
- package/dist/cache/entities/AccountEntity.mjs.map +1 -1
- package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
- package/dist/cache/entities/AppMetadataEntity.mjs +66 -66
- package/dist/cache/entities/AppMetadataEntity.mjs.map +1 -1
- package/dist/cache/entities/AuthorityMetadataEntity.d.ts +48 -48
- package/dist/cache/entities/AuthorityMetadataEntity.mjs +78 -78
- package/dist/cache/entities/AuthorityMetadataEntity.mjs.map +1 -1
- package/dist/cache/entities/CacheRecord.d.ts +14 -14
- package/dist/cache/entities/CacheRecord.mjs +14 -14
- package/dist/cache/entities/CacheRecord.mjs.map +1 -1
- package/dist/cache/entities/CredentialEntity.d.ts +30 -30
- package/dist/cache/entities/IdTokenEntity.d.ts +8 -8
- package/dist/cache/entities/RefreshTokenEntity.d.ts +5 -7
- package/dist/cache/entities/RefreshTokenEntity.d.ts.map +1 -1
- package/dist/cache/entities/ServerTelemetryEntity.d.ts +5 -5
- package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
- package/dist/cache/entities/ThrottlingEntity.mjs +23 -23
- package/dist/cache/entities/ThrottlingEntity.mjs.map +1 -1
- package/dist/cache/interface/ICacheManager.d.ts +166 -166
- package/dist/cache/interface/ICachePlugin.d.ts +5 -5
- package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
- package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
- package/dist/cache/persistence/TokenCacheContext.mjs +25 -25
- package/dist/cache/persistence/TokenCacheContext.mjs.map +1 -1
- package/dist/cache/utils/CacheHelpers.d.ts +64 -64
- package/dist/cache/utils/CacheHelpers.d.ts.map +1 -1
- package/dist/cache/utils/CacheHelpers.mjs +231 -234
- package/dist/cache/utils/CacheHelpers.mjs.map +1 -1
- package/dist/cache/utils/CacheTypes.d.ts +69 -67
- package/dist/cache/utils/CacheTypes.d.ts.map +1 -1
- package/dist/client/AuthorizationCodeClient.d.ts +74 -74
- package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
- package/dist/client/AuthorizationCodeClient.mjs +404 -403
- package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
- package/dist/client/BaseClient.d.ts +51 -51
- package/dist/client/BaseClient.mjs +100 -100
- package/dist/client/BaseClient.mjs.map +1 -1
- package/dist/client/RefreshTokenClient.d.ts +35 -35
- package/dist/client/RefreshTokenClient.d.ts.map +1 -1
- package/dist/client/RefreshTokenClient.mjs +189 -194
- package/dist/client/RefreshTokenClient.mjs.map +1 -1
- package/dist/client/SilentFlowClient.d.ts +27 -27
- package/dist/client/SilentFlowClient.mjs +118 -118
- package/dist/client/SilentFlowClient.mjs.map +1 -1
- package/dist/config/AppTokenProvider.d.ts +38 -38
- package/dist/config/ClientConfiguration.d.ts +150 -150
- package/dist/config/ClientConfiguration.mjs +97 -97
- package/dist/config/ClientConfiguration.mjs.map +1 -1
- package/dist/constants/AADServerParamKeys.d.ts +52 -0
- package/dist/constants/AADServerParamKeys.d.ts.map +1 -0
- package/dist/constants/AADServerParamKeys.mjs +60 -0
- package/dist/constants/AADServerParamKeys.mjs.map +1 -0
- package/dist/crypto/ICrypto.d.ts +58 -58
- package/dist/crypto/ICrypto.mjs +30 -30
- package/dist/crypto/ICrypto.mjs.map +1 -1
- package/dist/crypto/IGuidGenerator.d.ts +4 -4
- package/dist/crypto/JoseHeader.d.ts +22 -22
- package/dist/crypto/JoseHeader.mjs +37 -37
- package/dist/crypto/JoseHeader.mjs.map +1 -1
- package/dist/crypto/PopTokenGenerator.d.ts +60 -60
- package/dist/crypto/PopTokenGenerator.mjs +82 -82
- package/dist/crypto/PopTokenGenerator.mjs.map +1 -1
- package/dist/crypto/SignedHttpRequest.d.ts +15 -15
- package/dist/error/AuthError.d.ts +44 -44
- package/dist/error/AuthError.mjs +46 -46
- package/dist/error/AuthError.mjs.map +1 -1
- package/dist/error/AuthErrorCodes.d.ts +5 -5
- package/dist/error/AuthErrorCodes.mjs +9 -9
- package/dist/error/AuthErrorCodes.mjs.map +1 -1
- package/dist/error/ClientAuthError.d.ts +237 -237
- package/dist/error/ClientAuthError.mjs +249 -249
- package/dist/error/ClientAuthError.mjs.map +1 -1
- package/dist/error/ClientAuthErrorCodes.d.ts +44 -44
- package/dist/error/ClientAuthErrorCodes.mjs +48 -48
- package/dist/error/ClientAuthErrorCodes.mjs.map +1 -1
- package/dist/error/ClientConfigurationError.d.ts +128 -128
- package/dist/error/ClientConfigurationError.mjs +135 -135
- package/dist/error/ClientConfigurationError.mjs.map +1 -1
- package/dist/error/ClientConfigurationErrorCodes.d.ts +22 -22
- package/dist/error/ClientConfigurationErrorCodes.mjs +26 -26
- package/dist/error/ClientConfigurationErrorCodes.mjs.map +1 -1
- package/dist/error/InteractionRequiredAuthError.d.ts +57 -57
- package/dist/error/InteractionRequiredAuthError.d.ts.map +1 -1
- package/dist/error/InteractionRequiredAuthError.mjs +77 -78
- package/dist/error/InteractionRequiredAuthError.mjs.map +1 -1
- package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +5 -6
- package/dist/error/InteractionRequiredAuthErrorCodes.d.ts.map +1 -1
- package/dist/error/InteractionRequiredAuthErrorCodes.mjs +12 -13
- package/dist/error/InteractionRequiredAuthErrorCodes.mjs.map +1 -1
- package/dist/error/JoseHeaderError.d.ts +15 -15
- package/dist/error/JoseHeaderError.mjs +22 -22
- package/dist/error/JoseHeaderError.mjs.map +1 -1
- package/dist/error/JoseHeaderErrorCodes.d.ts +2 -2
- package/dist/error/JoseHeaderErrorCodes.mjs +6 -6
- package/dist/error/JoseHeaderErrorCodes.mjs.map +1 -1
- package/dist/error/ServerError.d.ts +7 -7
- package/dist/error/ServerError.mjs +14 -14
- package/dist/error/ServerError.mjs.map +1 -1
- package/dist/index.cjs +8645 -8295
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +99 -98
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +7 -3
- package/dist/index.mjs.map +1 -1
- package/dist/logger/Logger.d.ts +95 -95
- package/dist/logger/Logger.mjs +188 -188
- package/dist/logger/Logger.mjs.map +1 -1
- package/dist/network/INetworkModule.d.ts +29 -29
- package/dist/network/INetworkModule.mjs +12 -12
- package/dist/network/INetworkModule.mjs.map +1 -1
- package/dist/network/NetworkManager.d.ts +33 -33
- package/dist/network/NetworkManager.mjs +34 -34
- package/dist/network/NetworkManager.mjs.map +1 -1
- package/dist/network/RequestThumbprint.d.ts +18 -18
- package/dist/network/ThrottlingUtils.d.ts +42 -42
- package/dist/network/ThrottlingUtils.mjs +95 -95
- package/dist/network/ThrottlingUtils.mjs.map +1 -1
- package/dist/packageMetadata.d.ts +2 -2
- package/dist/packageMetadata.mjs +4 -4
- package/dist/packageMetadata.mjs.map +1 -1
- package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
- package/dist/request/AuthenticationHeaderParser.mjs +55 -55
- package/dist/request/AuthenticationHeaderParser.mjs.map +1 -1
- package/dist/request/BaseAuthRequest.d.ts +43 -43
- package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
- package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
- package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
- package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
- package/dist/request/CommonEndSessionRequest.d.ts +21 -21
- package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
- package/dist/request/CommonRefreshTokenRequest.d.ts +22 -23
- package/dist/request/CommonRefreshTokenRequest.d.ts.map +1 -1
- package/dist/request/CommonSilentFlowRequest.d.ts +20 -21
- package/dist/request/CommonSilentFlowRequest.d.ts.map +1 -1
- package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
- package/dist/request/NativeRequest.d.ts +19 -19
- package/dist/request/NativeSignOutRequest.d.ts +5 -5
- package/dist/request/RequestParameterBuilder.d.ts +217 -217
- package/dist/request/RequestParameterBuilder.d.ts.map +1 -1
- package/dist/request/RequestParameterBuilder.mjs +383 -382
- package/dist/request/RequestParameterBuilder.mjs.map +1 -1
- package/dist/request/RequestValidator.d.ts +33 -33
- package/dist/request/RequestValidator.mjs +81 -81
- package/dist/request/RequestValidator.mjs.map +1 -1
- package/dist/request/ScopeSet.d.ts +88 -88
- package/dist/request/ScopeSet.mjs +197 -197
- package/dist/request/ScopeSet.mjs.map +1 -1
- package/dist/request/StoreInCache.d.ts +8 -8
- package/dist/response/AuthenticationResult.d.ts +41 -41
- package/dist/response/AuthorizationCodePayload.d.ts +13 -13
- package/dist/response/DeviceCodeResponse.d.ts +25 -25
- package/dist/response/ExternalTokenResponse.d.ts +15 -15
- package/dist/response/IMDSBadResponse.d.ts +4 -4
- package/dist/response/ResponseHandler.d.ts +69 -67
- package/dist/response/ResponseHandler.d.ts.map +1 -1
- package/dist/response/ResponseHandler.mjs +339 -313
- package/dist/response/ResponseHandler.mjs.map +1 -1
- package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
- package/dist/response/ServerAuthorizationTokenResponse.d.ts +46 -46
- package/dist/telemetry/performance/IPerformanceClient.d.ts +51 -51
- package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
- package/dist/telemetry/performance/PerformanceClient.d.ts +191 -191
- package/dist/telemetry/performance/PerformanceClient.mjs +409 -409
- package/dist/telemetry/performance/PerformanceClient.mjs.map +1 -1
- package/dist/telemetry/performance/PerformanceEvent.d.ts +464 -464
- package/dist/telemetry/performance/PerformanceEvent.mjs +253 -253
- package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
- package/dist/telemetry/performance/StubPerformanceClient.d.ts +24 -24
- package/dist/telemetry/performance/StubPerformanceClient.mjs +76 -76
- package/dist/telemetry/performance/StubPerformanceClient.mjs.map +1 -1
- package/dist/telemetry/server/ServerTelemetryManager.d.ts +66 -66
- package/dist/telemetry/server/ServerTelemetryManager.mjs +201 -201
- package/dist/telemetry/server/ServerTelemetryManager.mjs.map +1 -1
- package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
- package/dist/url/IUri.d.ts +12 -12
- package/dist/url/UrlString.d.ts +48 -48
- package/dist/url/UrlString.mjs +161 -161
- package/dist/url/UrlString.mjs.map +1 -1
- package/dist/utils/Constants.d.ts +296 -365
- package/dist/utils/Constants.d.ts.map +1 -1
- package/dist/utils/Constants.mjs +309 -376
- package/dist/utils/Constants.mjs.map +1 -1
- package/dist/utils/FunctionWrappers.d.ts +27 -27
- package/dist/utils/FunctionWrappers.mjs +84 -84
- package/dist/utils/FunctionWrappers.mjs.map +1 -1
- package/dist/utils/MsalTypes.d.ts +6 -6
- package/dist/utils/ProtocolUtils.d.ts +42 -42
- package/dist/utils/ProtocolUtils.mjs +69 -69
- package/dist/utils/ProtocolUtils.mjs.map +1 -1
- package/dist/utils/StringUtils.d.ts +40 -40
- package/dist/utils/StringUtils.mjs +95 -95
- package/dist/utils/StringUtils.mjs.map +1 -1
- package/dist/utils/TimeUtils.d.ts +27 -27
- package/dist/utils/TimeUtils.mjs +45 -45
- package/dist/utils/TimeUtils.mjs.map +1 -1
- package/dist/utils/UrlUtils.d.ts +10 -10
- package/dist/utils/UrlUtils.mjs +44 -44
- package/dist/utils/UrlUtils.mjs.map +1 -1
- package/package.json +93 -92
- package/src/account/AccountInfo.ts +96 -0
- package/src/account/ClientInfo.ts +2 -3
- package/src/account/TokenClaims.ts +28 -0
- package/src/authority/Authority.ts +29 -2
- package/src/cache/CacheManager.ts +416 -114
- package/src/cache/entities/AccountEntity.ts +84 -33
- package/src/cache/entities/RefreshTokenEntity.ts +1 -3
- package/src/cache/utils/CacheHelpers.ts +1 -6
- package/src/cache/utils/CacheTypes.ts +11 -0
- package/src/client/AuthorizationCodeClient.ts +4 -5
- package/src/client/RefreshTokenClient.ts +3 -15
- package/src/client/SilentFlowClient.ts +1 -1
- package/src/constants/AADServerParamKeys.ts +56 -0
- package/src/crypto/PopTokenGenerator.ts +1 -1
- package/src/error/InteractionRequiredAuthError.ts +0 -2
- package/src/error/InteractionRequiredAuthErrorCodes.ts +0 -1
- package/src/index.ts +17 -5
- package/src/packageMetadata.ts +1 -1
- package/src/request/CommonRefreshTokenRequest.ts +0 -1
- package/src/request/CommonSilentFlowRequest.ts +0 -1
- package/src/request/RequestParameterBuilder.ts +7 -5
- package/src/response/ResponseHandler.ts +95 -27
- package/src/utils/Constants.ts +0 -72
package/package.json
CHANGED
|
@@ -1,95 +1,96 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
"name": "@azure/msal-common",
|
|
3
|
+
"author": {
|
|
4
|
+
"name": "Microsoft",
|
|
5
|
+
"email": "nugetaad@microsoft.com",
|
|
6
|
+
"url": "https://www.microsoft.com"
|
|
7
|
+
},
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "https://github.com/AzureAD/microsoft-authentication-library-for-js.git"
|
|
12
|
+
},
|
|
13
|
+
"version": "14.5.0",
|
|
14
|
+
"description": "Microsoft Authentication Library for js",
|
|
15
|
+
"keywords": [
|
|
16
|
+
"implicit",
|
|
17
|
+
"authorization code",
|
|
18
|
+
"PKCE",
|
|
19
|
+
"js",
|
|
20
|
+
"AAD",
|
|
21
|
+
"msal",
|
|
22
|
+
"oauth"
|
|
23
|
+
],
|
|
24
|
+
"sideEffects": false,
|
|
25
|
+
"module": "./dist/index.mjs",
|
|
26
|
+
"types": "./dist/index.d.ts",
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"types": "./dist/index.d.ts",
|
|
30
|
+
"module": "./dist/index.mjs",
|
|
31
|
+
"import": "./dist/index.mjs",
|
|
32
|
+
"require": "./dist/index.cjs",
|
|
33
|
+
"default": "./dist/index.mjs"
|
|
7
34
|
},
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
"
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
"
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
"devDependencies": {
|
|
70
|
-
"@babel/core": "^7.7.2",
|
|
71
|
-
"@babel/plugin-proposal-class-properties": "^7.7.0",
|
|
72
|
-
"@babel/plugin-proposal-object-rest-spread": "^7.6.2",
|
|
73
|
-
"@babel/preset-env": "^7.7.1",
|
|
74
|
-
"@babel/preset-typescript": "^7.7.2",
|
|
75
|
-
"@rollup/plugin-typescript": "^11.0.0",
|
|
76
|
-
"@types/debug": "^4.1.5",
|
|
77
|
-
"@types/jest": "^29.5.0",
|
|
78
|
-
"@types/lodash": "^4.14.182",
|
|
79
|
-
"@types/node": "^20.3.1",
|
|
80
|
-
"@types/sinon": "^7.5.0",
|
|
81
|
-
"eslint-config-msal": "^0.0.0",
|
|
82
|
-
"jest": "^29.5.0",
|
|
83
|
-
"lodash": "^4.17.21",
|
|
84
|
-
"prettier": "2.8.7",
|
|
85
|
-
"rimraf": "^3.0.2",
|
|
86
|
-
"rollup": "^3.14.0",
|
|
87
|
-
"shx": "^0.3.2",
|
|
88
|
-
"sinon": "^7.5.0",
|
|
89
|
-
"ts-jest": "^29.1.0",
|
|
90
|
-
"ts-node": "^10.9.1",
|
|
91
|
-
"tslib": "^1.10.0",
|
|
92
|
-
"typescript": "^4.9.5",
|
|
93
|
-
"yargs": "^17.5.1"
|
|
94
|
-
}
|
|
35
|
+
"./package.json": "./package.json"
|
|
36
|
+
},
|
|
37
|
+
"engines": {
|
|
38
|
+
"node": ">=0.8.0"
|
|
39
|
+
},
|
|
40
|
+
"directories": {
|
|
41
|
+
"test": "test"
|
|
42
|
+
},
|
|
43
|
+
"files": [
|
|
44
|
+
"dist",
|
|
45
|
+
"src"
|
|
46
|
+
],
|
|
47
|
+
"scripts": {
|
|
48
|
+
"clean": "shx rm -rf dist lib",
|
|
49
|
+
"clean:coverage": "rimraf ../../.nyc_output/*",
|
|
50
|
+
"lint": "eslint src --ext .ts",
|
|
51
|
+
"lint:fix": "npm run lint -- --fix",
|
|
52
|
+
"test": "jest",
|
|
53
|
+
"test:coverage": "jest --coverage",
|
|
54
|
+
"test:coverage:only": "npm run clean:coverage && npm run test:coverage",
|
|
55
|
+
"build:modules": "rollup -c --strictDeprecations --bundleConfigAsCjs",
|
|
56
|
+
"build:modules:watch": "rollup -cw --bundleConfigAsCjs",
|
|
57
|
+
"build": "npm run clean && npm run build:modules",
|
|
58
|
+
"build:all": "npm run build",
|
|
59
|
+
"prepack": "npm run build",
|
|
60
|
+
"metadata:check": "ts-node scripts/metadata.ts",
|
|
61
|
+
"format:check": "npx prettier --ignore-path .gitignore --check src test",
|
|
62
|
+
"format:fix": "npx prettier --ignore-path .gitignore --write src test"
|
|
63
|
+
},
|
|
64
|
+
"beachball": {
|
|
65
|
+
"disallowedChangeTypes": [
|
|
66
|
+
"major"
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
"devDependencies": {
|
|
70
|
+
"@babel/core": "^7.7.2",
|
|
71
|
+
"@babel/plugin-proposal-class-properties": "^7.7.0",
|
|
72
|
+
"@babel/plugin-proposal-object-rest-spread": "^7.6.2",
|
|
73
|
+
"@babel/preset-env": "^7.7.1",
|
|
74
|
+
"@babel/preset-typescript": "^7.7.2",
|
|
75
|
+
"@rollup/plugin-typescript": "^11.0.0",
|
|
76
|
+
"@types/debug": "^4.1.5",
|
|
77
|
+
"@types/jest": "^29.5.0",
|
|
78
|
+
"@types/lodash": "^4.14.182",
|
|
79
|
+
"@types/node": "^20.3.1",
|
|
80
|
+
"@types/sinon": "^7.5.0",
|
|
81
|
+
"eslint-config-msal": "^0.0.0",
|
|
82
|
+
"msal-test-utils": "^0.0.1",
|
|
83
|
+
"jest": "^29.5.0",
|
|
84
|
+
"lodash": "^4.17.21",
|
|
85
|
+
"prettier": "2.8.7",
|
|
86
|
+
"rimraf": "^3.0.2",
|
|
87
|
+
"rollup": "^3.14.0",
|
|
88
|
+
"shx": "^0.3.2",
|
|
89
|
+
"sinon": "^7.5.0",
|
|
90
|
+
"ts-jest": "^29.1.0",
|
|
91
|
+
"ts-node": "^10.9.1",
|
|
92
|
+
"tslib": "^1.10.0",
|
|
93
|
+
"typescript": "^4.9.5",
|
|
94
|
+
"yargs": "^17.5.1"
|
|
95
|
+
}
|
|
95
96
|
}
|
|
@@ -15,6 +15,7 @@ import { TokenClaims } from "./TokenClaims";
|
|
|
15
15
|
* - idToken - raw ID token
|
|
16
16
|
* - idTokenClaims - Object contains claims from ID token
|
|
17
17
|
* - nativeAccountId - The user's native account ID
|
|
18
|
+
* - tenantProfiles - Map of tenant profile objects for each tenant that the account has authenticated with in the browser
|
|
18
19
|
*/
|
|
19
20
|
export type AccountInfo = {
|
|
20
21
|
homeAccountId: string;
|
|
@@ -35,9 +36,104 @@ export type AccountInfo = {
|
|
|
35
36
|
};
|
|
36
37
|
nativeAccountId?: string;
|
|
37
38
|
authorityType?: string;
|
|
39
|
+
tenantProfiles?: Map<string, TenantProfile>;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Account details that vary across tenants for the same user
|
|
44
|
+
*/
|
|
45
|
+
export type TenantProfile = Pick<
|
|
46
|
+
AccountInfo,
|
|
47
|
+
"tenantId" | "localAccountId" | "name"
|
|
48
|
+
> & {
|
|
49
|
+
/**
|
|
50
|
+
* - isHomeTenant - True if this is the home tenant profile of the account, false if it's a guest tenant profile
|
|
51
|
+
*/
|
|
52
|
+
isHomeTenant?: boolean;
|
|
38
53
|
};
|
|
39
54
|
|
|
40
55
|
export type ActiveAccountFilters = {
|
|
41
56
|
homeAccountId: string;
|
|
42
57
|
localAccountId: string;
|
|
58
|
+
tenantId?: string;
|
|
43
59
|
};
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Returns true if tenantId matches the utid portion of homeAccountId
|
|
63
|
+
* @param tenantId
|
|
64
|
+
* @param homeAccountId
|
|
65
|
+
* @returns
|
|
66
|
+
*/
|
|
67
|
+
export function tenantIdMatchesHomeTenant(
|
|
68
|
+
tenantId?: string,
|
|
69
|
+
homeAccountId?: string
|
|
70
|
+
): boolean {
|
|
71
|
+
return (
|
|
72
|
+
!!tenantId &&
|
|
73
|
+
!!homeAccountId &&
|
|
74
|
+
tenantId === homeAccountId.split(".")[1]
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export function buildTenantProfileFromIdTokenClaims(
|
|
79
|
+
homeAccountId: string,
|
|
80
|
+
idTokenClaims: TokenClaims
|
|
81
|
+
): TenantProfile {
|
|
82
|
+
const { oid, sub, tid, name, tfp, acr } = idTokenClaims;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Since there is no way to determine if the authority is AAD or B2C, we exhaust all the possible claims that can serve as tenant ID with the following precedence:
|
|
86
|
+
* tid - TenantID claim that identifies the tenant that issued the token in AAD. Expected in all AAD ID tokens, not present in B2C ID Tokens.
|
|
87
|
+
* tfp - Trust Framework Policy claim that identifies the policy that was used to authenticate the user. Functions as tenant for B2C scenarios.
|
|
88
|
+
* acr - Authentication Context Class Reference claim used only with older B2C policies. Fallback in case tfp is not present, but likely won't be present anyway.
|
|
89
|
+
*/
|
|
90
|
+
const tenantId = tid || tfp || acr || "";
|
|
91
|
+
|
|
92
|
+
return {
|
|
93
|
+
tenantId: tenantId,
|
|
94
|
+
localAccountId: oid || sub || "",
|
|
95
|
+
name: name,
|
|
96
|
+
isHomeTenant: tenantIdMatchesHomeTenant(tenantId, homeAccountId),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Replaces account info that varies by tenant profile sourced from the ID token claims passed in with the tenant-specific account info
|
|
102
|
+
* @param baseAccountInfo
|
|
103
|
+
* @param idTokenClaims
|
|
104
|
+
* @returns
|
|
105
|
+
*/
|
|
106
|
+
export function updateAccountTenantProfileData(
|
|
107
|
+
baseAccountInfo: AccountInfo,
|
|
108
|
+
tenantProfile?: TenantProfile,
|
|
109
|
+
idTokenClaims?: TokenClaims
|
|
110
|
+
): AccountInfo {
|
|
111
|
+
let updatedAccountInfo = baseAccountInfo;
|
|
112
|
+
// Tenant Profile overrides passed in account info
|
|
113
|
+
if (tenantProfile) {
|
|
114
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
115
|
+
const { isHomeTenant, ...tenantProfileOverride } = tenantProfile;
|
|
116
|
+
updatedAccountInfo = { ...baseAccountInfo, ...tenantProfileOverride };
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// ID token claims override passed in account info and tenant profile
|
|
120
|
+
if (idTokenClaims) {
|
|
121
|
+
// Ignore isHomeTenant, loginHint, and sid which are part of tenant profile but not base account info
|
|
122
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
123
|
+
const { isHomeTenant, ...claimsSourcedTenantProfile } =
|
|
124
|
+
buildTenantProfileFromIdTokenClaims(
|
|
125
|
+
baseAccountInfo.homeAccountId,
|
|
126
|
+
idTokenClaims
|
|
127
|
+
);
|
|
128
|
+
|
|
129
|
+
updatedAccountInfo = {
|
|
130
|
+
...updatedAccountInfo,
|
|
131
|
+
...claimsSourcedTenantProfile,
|
|
132
|
+
idTokenClaims: idTokenClaims,
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
return updatedAccountInfo;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
return updatedAccountInfo;
|
|
139
|
+
}
|
|
@@ -7,7 +7,6 @@ import {
|
|
|
7
7
|
createClientAuthError,
|
|
8
8
|
ClientAuthErrorCodes,
|
|
9
9
|
} from "../error/ClientAuthError";
|
|
10
|
-
import { ICrypto } from "../crypto/ICrypto";
|
|
11
10
|
import { Separators, Constants } from "../utils/Constants";
|
|
12
11
|
|
|
13
12
|
/**
|
|
@@ -25,14 +24,14 @@ export type ClientInfo = {
|
|
|
25
24
|
*/
|
|
26
25
|
export function buildClientInfo(
|
|
27
26
|
rawClientInfo: string,
|
|
28
|
-
|
|
27
|
+
base64Decode: (input: string) => string
|
|
29
28
|
): ClientInfo {
|
|
30
29
|
if (!rawClientInfo) {
|
|
31
30
|
throw createClientAuthError(ClientAuthErrorCodes.clientInfoEmptyError);
|
|
32
31
|
}
|
|
33
32
|
|
|
34
33
|
try {
|
|
35
|
-
const decodedClientInfo: string =
|
|
34
|
+
const decodedClientInfo: string = base64Decode(rawClientInfo);
|
|
36
35
|
return JSON.parse(decodedClientInfo) as ClientInfo;
|
|
37
36
|
} catch (e) {
|
|
38
37
|
throw createClientAuthError(
|
|
@@ -35,6 +35,14 @@ export type TokenClaims = {
|
|
|
35
35
|
* Users' tenant or '9188040d-6c67-4c5b-b112-36a304b66dad' for personal accounts.
|
|
36
36
|
*/
|
|
37
37
|
tid?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Trusted Framework Policy (B2C) The name of the policy that was used to acquire the ID token.
|
|
40
|
+
*/
|
|
41
|
+
tfp?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Authentication Context Class Reference (B2C) Used only with older policies.
|
|
44
|
+
*/
|
|
45
|
+
acr?: string;
|
|
38
46
|
ver?: string;
|
|
39
47
|
upn?: string;
|
|
40
48
|
preferred_username?: string;
|
|
@@ -68,3 +76,23 @@ export type TokenClaims = {
|
|
|
68
76
|
tenant_region_scope?: string;
|
|
69
77
|
tenant_region_sub_scope?: string;
|
|
70
78
|
};
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Gets tenantId from available ID token claims to set as credential realm with the following precedence:
|
|
82
|
+
* 1. tid - if the token is acquired from an Azure AD tenant tid will be present
|
|
83
|
+
* 2. tfp - if the token is acquired from a modern B2C tenant tfp should be present
|
|
84
|
+
* 3. acr - if the token is acquired from a legacy B2C tenant acr should be present
|
|
85
|
+
* Downcased to match the realm case-insensitive comparison requirements
|
|
86
|
+
* @param idTokenClaims
|
|
87
|
+
* @returns
|
|
88
|
+
*/
|
|
89
|
+
export function getTenantIdFromIdTokenClaims(
|
|
90
|
+
idTokenClaims?: TokenClaims
|
|
91
|
+
): string | null {
|
|
92
|
+
if (idTokenClaims) {
|
|
93
|
+
const tenantId =
|
|
94
|
+
idTokenClaims.tid || idTokenClaims.tfp || idTokenClaims.acr;
|
|
95
|
+
return tenantId || null;
|
|
96
|
+
}
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
@@ -1066,12 +1066,12 @@ export class Authority {
|
|
|
1066
1066
|
const matches = this.authorityOptions.knownAuthorities.filter(
|
|
1067
1067
|
(authority) => {
|
|
1068
1068
|
return (
|
|
1069
|
+
authority &&
|
|
1069
1070
|
UrlString.getDomainFromUrl(authority).toLowerCase() ===
|
|
1070
|
-
|
|
1071
|
+
this.hostnameAndPort
|
|
1071
1072
|
);
|
|
1072
1073
|
}
|
|
1073
1074
|
);
|
|
1074
|
-
|
|
1075
1075
|
return matches.length > 0;
|
|
1076
1076
|
}
|
|
1077
1077
|
|
|
@@ -1253,6 +1253,33 @@ export class Authority {
|
|
|
1253
1253
|
}
|
|
1254
1254
|
}
|
|
1255
1255
|
|
|
1256
|
+
/**
|
|
1257
|
+
* Extract tenantId from authority
|
|
1258
|
+
*/
|
|
1259
|
+
export function getTenantFromAuthorityString(
|
|
1260
|
+
authority: string
|
|
1261
|
+
): string | undefined {
|
|
1262
|
+
const authorityUrl = new UrlString(authority);
|
|
1263
|
+
const authorityUrlComponents = authorityUrl.getUrlComponents();
|
|
1264
|
+
/**
|
|
1265
|
+
* For credential matching purposes, tenantId is the last path segment of the authority URL:
|
|
1266
|
+
* AAD Authority - domain/tenantId -> Credentials are cached with realm = tenantId
|
|
1267
|
+
* B2C Authority - domain/{tenantId}?/.../policy -> Credentials are cached with realm = policy
|
|
1268
|
+
* tenantId is downcased because B2C policies can have mixed case but tfp claim is downcased
|
|
1269
|
+
*/
|
|
1270
|
+
const tenantId =
|
|
1271
|
+
authorityUrlComponents.PathSegments.slice(-1)[0].toLowerCase();
|
|
1272
|
+
|
|
1273
|
+
switch (tenantId) {
|
|
1274
|
+
case AADAuthorityConstants.COMMON:
|
|
1275
|
+
case AADAuthorityConstants.ORGANIZATIONS:
|
|
1276
|
+
case AADAuthorityConstants.CONSUMERS:
|
|
1277
|
+
return undefined;
|
|
1278
|
+
default:
|
|
1279
|
+
return tenantId;
|
|
1280
|
+
}
|
|
1281
|
+
}
|
|
1282
|
+
|
|
1256
1283
|
export function formatAuthorityUri(authorityUri: string): string {
|
|
1257
1284
|
return authorityUri.endsWith(Constants.FORWARD_SLASH)
|
|
1258
1285
|
? authorityUri
|