@azure/msal-common 14.1.0-alpha.0 → 14.2.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.
Files changed (234) hide show
  1. package/dist/account/AccountInfo.d.ts +31 -32
  2. package/dist/account/AccountInfo.d.ts.map +1 -1
  3. package/dist/account/AuthToken.d.ts +17 -17
  4. package/dist/account/AuthToken.mjs +58 -58
  5. package/dist/account/CcsCredential.d.ts +9 -9
  6. package/dist/account/CcsCredential.mjs +8 -8
  7. package/dist/account/ClientCredentials.d.ts +14 -14
  8. package/dist/account/ClientInfo.d.ts +19 -19
  9. package/dist/account/ClientInfo.mjs +37 -37
  10. package/dist/account/TokenClaims.d.ts +65 -65
  11. package/dist/authority/Authority.d.ts +249 -235
  12. package/dist/authority/Authority.d.ts.map +1 -1
  13. package/dist/authority/Authority.mjs +791 -740
  14. package/dist/authority/Authority.mjs.map +1 -1
  15. package/dist/authority/AuthorityFactory.d.ts +31 -31
  16. package/dist/authority/AuthorityFactory.d.ts.map +1 -1
  17. package/dist/authority/AuthorityFactory.mjs +48 -48
  18. package/dist/authority/AuthorityMetadata.d.ts +646 -623
  19. package/dist/authority/AuthorityMetadata.d.ts.map +1 -1
  20. package/dist/authority/AuthorityMetadata.mjs +941 -885
  21. package/dist/authority/AuthorityMetadata.mjs.map +1 -1
  22. package/dist/authority/AuthorityOptions.d.ts +27 -21
  23. package/dist/authority/AuthorityOptions.d.ts.map +1 -1
  24. package/dist/authority/AuthorityOptions.mjs +18 -18
  25. package/dist/authority/AuthorityOptions.mjs.map +1 -1
  26. package/dist/authority/AuthorityType.d.ts +10 -10
  27. package/dist/authority/AuthorityType.mjs +13 -13
  28. package/dist/authority/AzureRegion.d.ts +1 -1
  29. package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
  30. package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
  31. package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
  32. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +8 -8
  33. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
  34. package/dist/authority/CloudInstanceDiscoveryResponse.mjs +8 -8
  35. package/dist/authority/ImdsOptions.d.ts +5 -5
  36. package/dist/authority/OIDCOptions.d.ts +8 -8
  37. package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
  38. package/dist/authority/OpenIdConfigResponse.mjs +10 -10
  39. package/dist/authority/ProtocolMode.d.ts +8 -8
  40. package/dist/authority/ProtocolMode.mjs +11 -11
  41. package/dist/authority/RegionDiscovery.d.ts +32 -32
  42. package/dist/authority/RegionDiscovery.mjs +106 -106
  43. package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
  44. package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
  45. package/dist/cache/CacheManager.d.ts +480 -446
  46. package/dist/cache/CacheManager.d.ts.map +1 -1
  47. package/dist/cache/CacheManager.mjs +1086 -998
  48. package/dist/cache/CacheManager.mjs.map +1 -1
  49. package/dist/cache/entities/AccessTokenEntity.d.ts +56 -56
  50. package/dist/cache/entities/AccessTokenEntity.mjs +109 -109
  51. package/dist/cache/entities/AccountEntity.d.ts +101 -101
  52. package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
  53. package/dist/cache/entities/AccountEntity.mjs +218 -220
  54. package/dist/cache/entities/AccountEntity.mjs.map +1 -1
  55. package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
  56. package/dist/cache/entities/AppMetadataEntity.mjs +66 -66
  57. package/dist/cache/entities/AuthorityMetadataEntity.d.ts +48 -48
  58. package/dist/cache/entities/AuthorityMetadataEntity.mjs +78 -78
  59. package/dist/cache/entities/CacheRecord.d.ts +14 -14
  60. package/dist/cache/entities/CacheRecord.mjs +14 -14
  61. package/dist/cache/entities/CredentialEntity.d.ts +88 -88
  62. package/dist/cache/entities/CredentialEntity.mjs +136 -136
  63. package/dist/cache/entities/IdTokenEntity.d.ts +34 -34
  64. package/dist/cache/entities/IdTokenEntity.mjs +56 -56
  65. package/dist/cache/entities/RefreshTokenEntity.d.ts +36 -36
  66. package/dist/cache/entities/RefreshTokenEntity.mjs +59 -59
  67. package/dist/cache/entities/ServerTelemetryEntity.d.ts +12 -12
  68. package/dist/cache/entities/ServerTelemetryEntity.mjs +27 -27
  69. package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
  70. package/dist/cache/entities/ThrottlingEntity.mjs +23 -23
  71. package/dist/cache/interface/ICacheManager.d.ts +166 -166
  72. package/dist/cache/interface/ICachePlugin.d.ts +5 -5
  73. package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
  74. package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
  75. package/dist/cache/persistence/TokenCacheContext.mjs +25 -25
  76. package/dist/cache/utils/CacheTypes.d.ts +67 -69
  77. package/dist/cache/utils/CacheTypes.d.ts.map +1 -1
  78. package/dist/client/AuthorizationCodeClient.d.ts +73 -73
  79. package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
  80. package/dist/client/AuthorizationCodeClient.mjs +408 -407
  81. package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
  82. package/dist/client/BaseClient.d.ts +51 -51
  83. package/dist/client/BaseClient.d.ts.map +1 -1
  84. package/dist/client/BaseClient.mjs +100 -99
  85. package/dist/client/BaseClient.mjs.map +1 -1
  86. package/dist/client/RefreshTokenClient.d.ts +35 -35
  87. package/dist/client/RefreshTokenClient.d.ts.map +1 -1
  88. package/dist/client/RefreshTokenClient.mjs +188 -180
  89. package/dist/client/RefreshTokenClient.mjs.map +1 -1
  90. package/dist/client/SilentFlowClient.d.ts +27 -26
  91. package/dist/client/SilentFlowClient.d.ts.map +1 -1
  92. package/dist/client/SilentFlowClient.mjs +118 -125
  93. package/dist/client/SilentFlowClient.mjs.map +1 -1
  94. package/dist/config/AppTokenProvider.d.ts +38 -38
  95. package/dist/config/ClientConfiguration.d.ts +150 -150
  96. package/dist/config/ClientConfiguration.mjs +97 -97
  97. package/dist/crypto/ICrypto.d.ts +58 -62
  98. package/dist/crypto/ICrypto.d.ts.map +1 -1
  99. package/dist/crypto/ICrypto.mjs +30 -33
  100. package/dist/crypto/ICrypto.mjs.map +1 -1
  101. package/dist/crypto/IGuidGenerator.d.ts +4 -4
  102. package/dist/crypto/JoseHeader.d.ts +22 -22
  103. package/dist/crypto/JoseHeader.mjs +37 -37
  104. package/dist/crypto/PopTokenGenerator.d.ts +60 -60
  105. package/dist/crypto/PopTokenGenerator.mjs +82 -82
  106. package/dist/crypto/SignedHttpRequest.d.ts +11 -11
  107. package/dist/error/AuthError.d.ts +44 -44
  108. package/dist/error/AuthError.mjs +46 -46
  109. package/dist/error/AuthErrorCodes.d.ts +5 -5
  110. package/dist/error/AuthErrorCodes.mjs +9 -9
  111. package/dist/error/ClientAuthError.d.ts +237 -232
  112. package/dist/error/ClientAuthError.d.ts.map +1 -1
  113. package/dist/error/ClientAuthError.mjs +250 -245
  114. package/dist/error/ClientAuthError.mjs.map +1 -1
  115. package/dist/error/ClientAuthErrorCodes.d.ts +44 -43
  116. package/dist/error/ClientAuthErrorCodes.d.ts.map +1 -1
  117. package/dist/error/ClientAuthErrorCodes.mjs +49 -48
  118. package/dist/error/ClientAuthErrorCodes.mjs.map +1 -1
  119. package/dist/error/ClientConfigurationError.d.ts +128 -128
  120. package/dist/error/ClientConfigurationError.mjs +135 -135
  121. package/dist/error/ClientConfigurationErrorCodes.d.ts +22 -22
  122. package/dist/error/ClientConfigurationErrorCodes.mjs +26 -26
  123. package/dist/error/InteractionRequiredAuthError.d.ts +57 -57
  124. package/dist/error/InteractionRequiredAuthError.mjs +76 -76
  125. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +5 -5
  126. package/dist/error/InteractionRequiredAuthErrorCodes.mjs +11 -11
  127. package/dist/error/JoseHeaderError.d.ts +15 -15
  128. package/dist/error/JoseHeaderError.mjs +22 -22
  129. package/dist/error/JoseHeaderErrorCodes.d.ts +2 -2
  130. package/dist/error/JoseHeaderErrorCodes.mjs +6 -6
  131. package/dist/error/ServerError.d.ts +7 -7
  132. package/dist/error/ServerError.mjs +14 -14
  133. package/dist/index.cjs +8830 -8612
  134. package/dist/index.cjs.map +1 -1
  135. package/dist/index.d.ts +96 -96
  136. package/dist/index.d.ts.map +1 -1
  137. package/dist/index.mjs +2 -2
  138. package/dist/logger/Logger.d.ts +95 -95
  139. package/dist/logger/Logger.mjs +188 -188
  140. package/dist/network/INetworkModule.d.ts +29 -29
  141. package/dist/network/INetworkModule.mjs +12 -12
  142. package/dist/network/NetworkManager.d.ts +33 -33
  143. package/dist/network/NetworkManager.mjs +34 -34
  144. package/dist/network/RequestThumbprint.d.ts +16 -16
  145. package/dist/network/ThrottlingUtils.d.ts +42 -42
  146. package/dist/network/ThrottlingUtils.mjs +95 -95
  147. package/dist/packageMetadata.d.ts +2 -2
  148. package/dist/packageMetadata.mjs +4 -4
  149. package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
  150. package/dist/request/AuthenticationHeaderParser.mjs +55 -55
  151. package/dist/request/BaseAuthRequest.d.ts +40 -40
  152. package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
  153. package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
  154. package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
  155. package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
  156. package/dist/request/CommonEndSessionRequest.d.ts +21 -21
  157. package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
  158. package/dist/request/CommonRefreshTokenRequest.d.ts +22 -19
  159. package/dist/request/CommonRefreshTokenRequest.d.ts.map +1 -1
  160. package/dist/request/CommonSilentFlowRequest.d.ts +20 -18
  161. package/dist/request/CommonSilentFlowRequest.d.ts.map +1 -1
  162. package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
  163. package/dist/request/NativeRequest.d.ts +19 -19
  164. package/dist/request/NativeSignOutRequest.d.ts +5 -5
  165. package/dist/request/RequestParameterBuilder.d.ts +217 -217
  166. package/dist/request/RequestParameterBuilder.mjs +381 -381
  167. package/dist/request/RequestValidator.d.ts +33 -33
  168. package/dist/request/RequestValidator.mjs +81 -81
  169. package/dist/request/ScopeSet.d.ts +88 -88
  170. package/dist/request/ScopeSet.mjs +197 -197
  171. package/dist/request/StoreInCache.d.ts +8 -8
  172. package/dist/response/AuthenticationResult.d.ts +41 -41
  173. package/dist/response/AuthorizationCodePayload.d.ts +13 -13
  174. package/dist/response/DeviceCodeResponse.d.ts +25 -25
  175. package/dist/response/ExternalTokenResponse.d.ts +15 -15
  176. package/dist/response/IMDSBadResponse.d.ts +4 -4
  177. package/dist/response/ResponseHandler.d.ts +67 -67
  178. package/dist/response/ResponseHandler.d.ts.map +1 -1
  179. package/dist/response/ResponseHandler.mjs +315 -311
  180. package/dist/response/ResponseHandler.mjs.map +1 -1
  181. package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
  182. package/dist/response/ServerAuthorizationTokenResponse.d.ts +46 -46
  183. package/dist/telemetry/performance/IPerformanceClient.d.ts +51 -51
  184. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
  185. package/dist/telemetry/performance/PerformanceClient.d.ts +191 -191
  186. package/dist/telemetry/performance/PerformanceClient.mjs +409 -409
  187. package/dist/telemetry/performance/PerformanceEvent.d.ts +457 -433
  188. package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
  189. package/dist/telemetry/performance/PerformanceEvent.mjs +249 -234
  190. package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
  191. package/dist/telemetry/performance/StubPerformanceClient.d.ts +24 -24
  192. package/dist/telemetry/performance/StubPerformanceClient.mjs +76 -76
  193. package/dist/telemetry/server/ServerTelemetryManager.d.ts +66 -66
  194. package/dist/telemetry/server/ServerTelemetryManager.mjs +197 -197
  195. package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
  196. package/dist/url/IUri.d.ts +12 -12
  197. package/dist/url/UrlString.d.ts +83 -83
  198. package/dist/url/UrlString.mjs +279 -279
  199. package/dist/utils/Constants.d.ts +366 -366
  200. package/dist/utils/Constants.mjs +376 -376
  201. package/dist/utils/FunctionWrappers.d.ts +27 -27
  202. package/dist/utils/FunctionWrappers.d.ts.map +1 -1
  203. package/dist/utils/FunctionWrappers.mjs +84 -85
  204. package/dist/utils/FunctionWrappers.mjs.map +1 -1
  205. package/dist/utils/MsalTypes.d.ts +6 -6
  206. package/dist/utils/ProtocolUtils.d.ts +42 -42
  207. package/dist/utils/ProtocolUtils.mjs +69 -69
  208. package/dist/utils/StringUtils.d.ts +40 -40
  209. package/dist/utils/StringUtils.mjs +95 -95
  210. package/dist/utils/TimeUtils.d.ts +27 -27
  211. package/dist/utils/TimeUtils.mjs +45 -45
  212. package/package.json +1 -1
  213. package/src/account/AccountInfo.ts +0 -1
  214. package/src/authority/Authority.ts +207 -127
  215. package/src/authority/AuthorityFactory.ts +4 -4
  216. package/src/authority/AuthorityMetadata.ts +87 -0
  217. package/src/authority/AuthorityOptions.ts +9 -0
  218. package/src/cache/CacheManager.ts +187 -46
  219. package/src/cache/entities/AccountEntity.ts +0 -3
  220. package/src/cache/utils/CacheTypes.ts +7 -6
  221. package/src/client/AuthorizationCodeClient.ts +12 -3
  222. package/src/client/BaseClient.ts +9 -6
  223. package/src/client/RefreshTokenClient.ts +36 -9
  224. package/src/client/SilentFlowClient.ts +49 -49
  225. package/src/crypto/ICrypto.ts +0 -7
  226. package/src/error/ClientAuthError.ts +8 -0
  227. package/src/error/ClientAuthErrorCodes.ts +1 -0
  228. package/src/index.ts +7 -1
  229. package/src/packageMetadata.ts +1 -1
  230. package/src/request/CommonRefreshTokenRequest.ts +3 -0
  231. package/src/request/CommonSilentFlowRequest.ts +2 -0
  232. package/src/response/ResponseHandler.ts +9 -3
  233. package/src/telemetry/performance/PerformanceEvent.ts +33 -2
  234. package/src/utils/FunctionWrappers.ts +0 -1
@@ -1,144 +1,144 @@
1
- /*! @azure/msal-common v14.1.0-alpha.0 2023-09-20 */
1
+ /*! @azure/msal-common v14.2.0 2023-10-20 */
2
2
  'use strict';
3
3
  import { CredentialType, CacheType, Separators, Constants, AuthenticationScheme } from '../../utils/Constants.mjs';
4
4
  import { createClientAuthError } from '../../error/ClientAuthError.mjs';
5
5
  import { unexpectedCredentialType } from '../../error/ClientAuthErrorCodes.mjs';
6
6
 
7
- /*
8
- * Copyright (c) Microsoft Corporation. All rights reserved.
9
- * Licensed under the MIT License.
10
- */
11
- /**
12
- * Base type for credentials to be stored in the cache: eg: ACCESS_TOKEN, ID_TOKEN etc
13
- *
14
- * Key:Value Schema:
15
- *
16
- * Key: <home_account_id*>-<environment>-<credential_type>-<client_id>-<realm*>-<target*>-<requestedClaims*>-<scheme*>
17
- *
18
- * Value Schema:
19
- * {
20
- * homeAccountId: home account identifier for the auth scheme,
21
- * environment: entity that issued the token, represented as a full host
22
- * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other
23
- * clientId: client ID of the application
24
- * secret: Actual credential as a string
25
- * familyId: Family ID identifier, usually only used for refresh tokens
26
- * realm: Full tenant or organizational identifier that the account belongs to
27
- * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.
28
- * tokenType: Matches the authentication scheme for which the token was issued (i.e. Bearer or pop)
29
- * requestedClaimsHash: Matches the SHA 256 hash of the claims object included in the token request
30
- * userAssertionHash: Matches the SHA 256 hash of the obo_assertion for the OBO flow
31
- * }
32
- */
33
- class CredentialEntity {
34
- /**
35
- * Generate Account Id key component as per the schema: <home_account_id>-<environment>
36
- */
37
- generateAccountId() {
38
- return CredentialEntity.generateAccountIdForCacheKey(this.homeAccountId, this.environment);
39
- }
40
- /**
41
- * Generate Credential Id key component as per the schema: <credential_type>-<client_id>-<realm>
42
- */
43
- generateCredentialId() {
44
- return CredentialEntity.generateCredentialIdForCacheKey(this.credentialType, this.clientId, this.realm, this.familyId);
45
- }
46
- /**
47
- * Generate target key component as per schema: <target>
48
- */
49
- generateTarget() {
50
- return CredentialEntity.generateTargetForCacheKey(this.target);
51
- }
52
- /**
53
- * generates credential key
54
- */
55
- generateCredentialKey() {
56
- return CredentialEntity.generateCredentialCacheKey(this.homeAccountId, this.environment, this.credentialType, this.clientId, this.realm, this.target, this.familyId, this.tokenType, this.requestedClaimsHash);
57
- }
58
- /**
59
- * returns the type of the cache (in this case credential)
60
- */
61
- generateType() {
62
- switch (this.credentialType) {
63
- case CredentialType.ID_TOKEN:
64
- return CacheType.ID_TOKEN;
65
- case CredentialType.ACCESS_TOKEN:
66
- case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME:
67
- return CacheType.ACCESS_TOKEN;
68
- case CredentialType.REFRESH_TOKEN:
69
- return CacheType.REFRESH_TOKEN;
70
- default: {
71
- throw createClientAuthError(unexpectedCredentialType);
72
- }
73
- }
74
- }
75
- /**
76
- * generates credential key
77
- * <home_account_id*>-\<environment>-<credential_type>-<client_id>-<realm\*>-<target\*>-<scheme\*>
78
- */
79
- static generateCredentialCacheKey(homeAccountId, environment, credentialType, clientId, realm, target, familyId, tokenType, requestedClaimsHash) {
80
- const credentialKey = [
81
- this.generateAccountIdForCacheKey(homeAccountId, environment),
82
- this.generateCredentialIdForCacheKey(credentialType, clientId, realm, familyId),
83
- this.generateTargetForCacheKey(target),
84
- this.generateClaimsHashForCacheKey(requestedClaimsHash),
85
- this.generateSchemeForCacheKey(tokenType),
86
- ];
87
- return credentialKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();
88
- }
89
- /**
90
- * generates Account Id for keys
91
- * @param homeAccountId
92
- * @param environment
93
- */
94
- static generateAccountIdForCacheKey(homeAccountId, environment) {
95
- const accountId = [homeAccountId, environment];
96
- return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();
97
- }
98
- /**
99
- * Generates Credential Id for keys
100
- * @param credentialType
101
- * @param realm
102
- * @param clientId
103
- * @param familyId
104
- */
105
- static generateCredentialIdForCacheKey(credentialType, clientId, realm, familyId) {
106
- const clientOrFamilyId = credentialType === CredentialType.REFRESH_TOKEN
107
- ? familyId || clientId
108
- : clientId;
109
- const credentialId = [
110
- credentialType,
111
- clientOrFamilyId,
112
- realm || Constants.EMPTY_STRING,
113
- ];
114
- return credentialId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();
115
- }
116
- /**
117
- * Generate target key component as per schema: <target>
118
- */
119
- static generateTargetForCacheKey(scopes) {
120
- return (scopes || Constants.EMPTY_STRING).toLowerCase();
121
- }
122
- /**
123
- * Generate requested claims key component as per schema: <requestedClaims>
124
- */
125
- static generateClaimsHashForCacheKey(requestedClaimsHash) {
126
- return (requestedClaimsHash || Constants.EMPTY_STRING).toLowerCase();
127
- }
128
- /**
129
- * Generate scheme key componenet as per schema: <scheme>
130
- */
131
- static generateSchemeForCacheKey(tokenType) {
132
- /*
133
- * PoP Tokens and SSH certs include scheme in cache key
134
- * Cast to lowercase to handle "bearer" from ADFS
135
- */
136
- return tokenType &&
137
- tokenType.toLowerCase() !==
138
- AuthenticationScheme.BEARER.toLowerCase()
139
- ? tokenType.toLowerCase()
140
- : Constants.EMPTY_STRING;
141
- }
7
+ /*
8
+ * Copyright (c) Microsoft Corporation. All rights reserved.
9
+ * Licensed under the MIT License.
10
+ */
11
+ /**
12
+ * Base type for credentials to be stored in the cache: eg: ACCESS_TOKEN, ID_TOKEN etc
13
+ *
14
+ * Key:Value Schema:
15
+ *
16
+ * Key: <home_account_id*>-<environment>-<credential_type>-<client_id>-<realm*>-<target*>-<requestedClaims*>-<scheme*>
17
+ *
18
+ * Value Schema:
19
+ * {
20
+ * homeAccountId: home account identifier for the auth scheme,
21
+ * environment: entity that issued the token, represented as a full host
22
+ * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other
23
+ * clientId: client ID of the application
24
+ * secret: Actual credential as a string
25
+ * familyId: Family ID identifier, usually only used for refresh tokens
26
+ * realm: Full tenant or organizational identifier that the account belongs to
27
+ * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.
28
+ * tokenType: Matches the authentication scheme for which the token was issued (i.e. Bearer or pop)
29
+ * requestedClaimsHash: Matches the SHA 256 hash of the claims object included in the token request
30
+ * userAssertionHash: Matches the SHA 256 hash of the obo_assertion for the OBO flow
31
+ * }
32
+ */
33
+ class CredentialEntity {
34
+ /**
35
+ * Generate Account Id key component as per the schema: <home_account_id>-<environment>
36
+ */
37
+ generateAccountId() {
38
+ return CredentialEntity.generateAccountIdForCacheKey(this.homeAccountId, this.environment);
39
+ }
40
+ /**
41
+ * Generate Credential Id key component as per the schema: <credential_type>-<client_id>-<realm>
42
+ */
43
+ generateCredentialId() {
44
+ return CredentialEntity.generateCredentialIdForCacheKey(this.credentialType, this.clientId, this.realm, this.familyId);
45
+ }
46
+ /**
47
+ * Generate target key component as per schema: <target>
48
+ */
49
+ generateTarget() {
50
+ return CredentialEntity.generateTargetForCacheKey(this.target);
51
+ }
52
+ /**
53
+ * generates credential key
54
+ */
55
+ generateCredentialKey() {
56
+ return CredentialEntity.generateCredentialCacheKey(this.homeAccountId, this.environment, this.credentialType, this.clientId, this.realm, this.target, this.familyId, this.tokenType, this.requestedClaimsHash);
57
+ }
58
+ /**
59
+ * returns the type of the cache (in this case credential)
60
+ */
61
+ generateType() {
62
+ switch (this.credentialType) {
63
+ case CredentialType.ID_TOKEN:
64
+ return CacheType.ID_TOKEN;
65
+ case CredentialType.ACCESS_TOKEN:
66
+ case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME:
67
+ return CacheType.ACCESS_TOKEN;
68
+ case CredentialType.REFRESH_TOKEN:
69
+ return CacheType.REFRESH_TOKEN;
70
+ default: {
71
+ throw createClientAuthError(unexpectedCredentialType);
72
+ }
73
+ }
74
+ }
75
+ /**
76
+ * generates credential key
77
+ * <home_account_id*>-\<environment>-<credential_type>-<client_id>-<realm\*>-<target\*>-<scheme\*>
78
+ */
79
+ static generateCredentialCacheKey(homeAccountId, environment, credentialType, clientId, realm, target, familyId, tokenType, requestedClaimsHash) {
80
+ const credentialKey = [
81
+ this.generateAccountIdForCacheKey(homeAccountId, environment),
82
+ this.generateCredentialIdForCacheKey(credentialType, clientId, realm, familyId),
83
+ this.generateTargetForCacheKey(target),
84
+ this.generateClaimsHashForCacheKey(requestedClaimsHash),
85
+ this.generateSchemeForCacheKey(tokenType),
86
+ ];
87
+ return credentialKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();
88
+ }
89
+ /**
90
+ * generates Account Id for keys
91
+ * @param homeAccountId
92
+ * @param environment
93
+ */
94
+ static generateAccountIdForCacheKey(homeAccountId, environment) {
95
+ const accountId = [homeAccountId, environment];
96
+ return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();
97
+ }
98
+ /**
99
+ * Generates Credential Id for keys
100
+ * @param credentialType
101
+ * @param realm
102
+ * @param clientId
103
+ * @param familyId
104
+ */
105
+ static generateCredentialIdForCacheKey(credentialType, clientId, realm, familyId) {
106
+ const clientOrFamilyId = credentialType === CredentialType.REFRESH_TOKEN
107
+ ? familyId || clientId
108
+ : clientId;
109
+ const credentialId = [
110
+ credentialType,
111
+ clientOrFamilyId,
112
+ realm || Constants.EMPTY_STRING,
113
+ ];
114
+ return credentialId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();
115
+ }
116
+ /**
117
+ * Generate target key component as per schema: <target>
118
+ */
119
+ static generateTargetForCacheKey(scopes) {
120
+ return (scopes || Constants.EMPTY_STRING).toLowerCase();
121
+ }
122
+ /**
123
+ * Generate requested claims key component as per schema: <requestedClaims>
124
+ */
125
+ static generateClaimsHashForCacheKey(requestedClaimsHash) {
126
+ return (requestedClaimsHash || Constants.EMPTY_STRING).toLowerCase();
127
+ }
128
+ /**
129
+ * Generate scheme key componenet as per schema: <scheme>
130
+ */
131
+ static generateSchemeForCacheKey(tokenType) {
132
+ /*
133
+ * PoP Tokens and SSH certs include scheme in cache key
134
+ * Cast to lowercase to handle "bearer" from ADFS
135
+ */
136
+ return tokenType &&
137
+ tokenType.toLowerCase() !==
138
+ AuthenticationScheme.BEARER.toLowerCase()
139
+ ? tokenType.toLowerCase()
140
+ : Constants.EMPTY_STRING;
141
+ }
142
142
  }
143
143
 
144
144
  export { CredentialEntity };
@@ -1,35 +1,35 @@
1
- import { CredentialEntity } from "./CredentialEntity";
2
- /**
3
- * ID_TOKEN Cache
4
- *
5
- * Key:Value Schema:
6
- *
7
- * Key Example: uid.utid-login.microsoftonline.com-idtoken-clientId-contoso.com-
8
- *
9
- * Value Schema:
10
- * {
11
- * homeAccountId: home account identifier for the auth scheme,
12
- * environment: entity that issued the token, represented as a full host
13
- * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other
14
- * clientId: client ID of the application
15
- * secret: Actual credential as a string
16
- * realm: Full tenant or organizational identifier that the account belongs to
17
- * }
18
- */
19
- export declare class IdTokenEntity extends CredentialEntity {
20
- realm: string;
21
- /**
22
- * Create IdTokenEntity
23
- * @param homeAccountId
24
- * @param authenticationResult
25
- * @param clientId
26
- * @param authority
27
- */
28
- static createIdTokenEntity(homeAccountId: string, environment: string, idToken: string, clientId: string, tenantId: string): IdTokenEntity;
29
- /**
30
- * Validates an entity: checks for all expected params
31
- * @param entity
32
- */
33
- static isIdTokenEntity(entity: object): boolean;
34
- }
1
+ import { CredentialEntity } from "./CredentialEntity";
2
+ /**
3
+ * ID_TOKEN Cache
4
+ *
5
+ * Key:Value Schema:
6
+ *
7
+ * Key Example: uid.utid-login.microsoftonline.com-idtoken-clientId-contoso.com-
8
+ *
9
+ * Value Schema:
10
+ * {
11
+ * homeAccountId: home account identifier for the auth scheme,
12
+ * environment: entity that issued the token, represented as a full host
13
+ * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other
14
+ * clientId: client ID of the application
15
+ * secret: Actual credential as a string
16
+ * realm: Full tenant or organizational identifier that the account belongs to
17
+ * }
18
+ */
19
+ export declare class IdTokenEntity extends CredentialEntity {
20
+ realm: string;
21
+ /**
22
+ * Create IdTokenEntity
23
+ * @param homeAccountId
24
+ * @param authenticationResult
25
+ * @param clientId
26
+ * @param authority
27
+ */
28
+ static createIdTokenEntity(homeAccountId: string, environment: string, idToken: string, clientId: string, tenantId: string): IdTokenEntity;
29
+ /**
30
+ * Validates an entity: checks for all expected params
31
+ * @param entity
32
+ */
33
+ static isIdTokenEntity(entity: object): boolean;
34
+ }
35
35
  //# sourceMappingURL=IdTokenEntity.d.ts.map
@@ -1,63 +1,63 @@
1
- /*! @azure/msal-common v14.1.0-alpha.0 2023-09-20 */
1
+ /*! @azure/msal-common v14.2.0 2023-10-20 */
2
2
  'use strict';
3
3
  import { CredentialEntity } from './CredentialEntity.mjs';
4
4
  import { CredentialType } from '../../utils/Constants.mjs';
5
5
 
6
- /*
7
- * Copyright (c) Microsoft Corporation. All rights reserved.
8
- * Licensed under the MIT License.
9
- */
10
- /**
11
- * ID_TOKEN Cache
12
- *
13
- * Key:Value Schema:
14
- *
15
- * Key Example: uid.utid-login.microsoftonline.com-idtoken-clientId-contoso.com-
16
- *
17
- * Value Schema:
18
- * {
19
- * homeAccountId: home account identifier for the auth scheme,
20
- * environment: entity that issued the token, represented as a full host
21
- * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other
22
- * clientId: client ID of the application
23
- * secret: Actual credential as a string
24
- * realm: Full tenant or organizational identifier that the account belongs to
25
- * }
26
- */
27
- class IdTokenEntity extends CredentialEntity {
28
- /**
29
- * Create IdTokenEntity
30
- * @param homeAccountId
31
- * @param authenticationResult
32
- * @param clientId
33
- * @param authority
34
- */
35
- static createIdTokenEntity(homeAccountId, environment, idToken, clientId, tenantId) {
36
- const idTokenEntity = new IdTokenEntity();
37
- idTokenEntity.credentialType = CredentialType.ID_TOKEN;
38
- idTokenEntity.homeAccountId = homeAccountId;
39
- idTokenEntity.environment = environment;
40
- idTokenEntity.clientId = clientId;
41
- idTokenEntity.secret = idToken;
42
- idTokenEntity.realm = tenantId;
43
- return idTokenEntity;
44
- }
45
- /**
46
- * Validates an entity: checks for all expected params
47
- * @param entity
48
- */
49
- static isIdTokenEntity(entity) {
50
- if (!entity) {
51
- return false;
52
- }
53
- return (entity.hasOwnProperty("homeAccountId") &&
54
- entity.hasOwnProperty("environment") &&
55
- entity.hasOwnProperty("credentialType") &&
56
- entity.hasOwnProperty("realm") &&
57
- entity.hasOwnProperty("clientId") &&
58
- entity.hasOwnProperty("secret") &&
59
- entity["credentialType"] === CredentialType.ID_TOKEN);
60
- }
6
+ /*
7
+ * Copyright (c) Microsoft Corporation. All rights reserved.
8
+ * Licensed under the MIT License.
9
+ */
10
+ /**
11
+ * ID_TOKEN Cache
12
+ *
13
+ * Key:Value Schema:
14
+ *
15
+ * Key Example: uid.utid-login.microsoftonline.com-idtoken-clientId-contoso.com-
16
+ *
17
+ * Value Schema:
18
+ * {
19
+ * homeAccountId: home account identifier for the auth scheme,
20
+ * environment: entity that issued the token, represented as a full host
21
+ * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other
22
+ * clientId: client ID of the application
23
+ * secret: Actual credential as a string
24
+ * realm: Full tenant or organizational identifier that the account belongs to
25
+ * }
26
+ */
27
+ class IdTokenEntity extends CredentialEntity {
28
+ /**
29
+ * Create IdTokenEntity
30
+ * @param homeAccountId
31
+ * @param authenticationResult
32
+ * @param clientId
33
+ * @param authority
34
+ */
35
+ static createIdTokenEntity(homeAccountId, environment, idToken, clientId, tenantId) {
36
+ const idTokenEntity = new IdTokenEntity();
37
+ idTokenEntity.credentialType = CredentialType.ID_TOKEN;
38
+ idTokenEntity.homeAccountId = homeAccountId;
39
+ idTokenEntity.environment = environment;
40
+ idTokenEntity.clientId = clientId;
41
+ idTokenEntity.secret = idToken;
42
+ idTokenEntity.realm = tenantId;
43
+ return idTokenEntity;
44
+ }
45
+ /**
46
+ * Validates an entity: checks for all expected params
47
+ * @param entity
48
+ */
49
+ static isIdTokenEntity(entity) {
50
+ if (!entity) {
51
+ return false;
52
+ }
53
+ return (entity.hasOwnProperty("homeAccountId") &&
54
+ entity.hasOwnProperty("environment") &&
55
+ entity.hasOwnProperty("credentialType") &&
56
+ entity.hasOwnProperty("realm") &&
57
+ entity.hasOwnProperty("clientId") &&
58
+ entity.hasOwnProperty("secret") &&
59
+ entity["credentialType"] === CredentialType.ID_TOKEN);
60
+ }
61
61
  }
62
62
 
63
63
  export { IdTokenEntity };
@@ -1,37 +1,37 @@
1
- import { CredentialEntity } from "./CredentialEntity";
2
- /**
3
- * REFRESH_TOKEN Cache
4
- *
5
- * Key:Value Schema:
6
- *
7
- * Key Example: uid.utid-login.microsoftonline.com-refreshtoken-clientId--
8
- *
9
- * Value:
10
- * {
11
- * homeAccountId: home account identifier for the auth scheme,
12
- * environment: entity that issued the token, represented as a full host
13
- * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other
14
- * clientId: client ID of the application
15
- * secret: Actual credential as a string
16
- * familyId: Family ID identifier, '1' represents Microsoft Family
17
- * realm: Full tenant or organizational identifier that the account belongs to
18
- * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.
19
- * }
20
- */
21
- export declare class RefreshTokenEntity extends CredentialEntity {
22
- familyId?: string;
23
- /**
24
- * Create RefreshTokenEntity
25
- * @param homeAccountId
26
- * @param authenticationResult
27
- * @param clientId
28
- * @param authority
29
- */
30
- static createRefreshTokenEntity(homeAccountId: string, environment: string, refreshToken: string, clientId: string, familyId?: string, userAssertionHash?: string): RefreshTokenEntity;
31
- /**
32
- * Validates an entity: checks for all expected params
33
- * @param entity
34
- */
35
- static isRefreshTokenEntity(entity: object): boolean;
36
- }
1
+ import { CredentialEntity } from "./CredentialEntity";
2
+ /**
3
+ * REFRESH_TOKEN Cache
4
+ *
5
+ * Key:Value Schema:
6
+ *
7
+ * Key Example: uid.utid-login.microsoftonline.com-refreshtoken-clientId--
8
+ *
9
+ * Value:
10
+ * {
11
+ * homeAccountId: home account identifier for the auth scheme,
12
+ * environment: entity that issued the token, represented as a full host
13
+ * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other
14
+ * clientId: client ID of the application
15
+ * secret: Actual credential as a string
16
+ * familyId: Family ID identifier, '1' represents Microsoft Family
17
+ * realm: Full tenant or organizational identifier that the account belongs to
18
+ * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.
19
+ * }
20
+ */
21
+ export declare class RefreshTokenEntity extends CredentialEntity {
22
+ familyId?: string;
23
+ /**
24
+ * Create RefreshTokenEntity
25
+ * @param homeAccountId
26
+ * @param authenticationResult
27
+ * @param clientId
28
+ * @param authority
29
+ */
30
+ static createRefreshTokenEntity(homeAccountId: string, environment: string, refreshToken: string, clientId: string, familyId?: string, userAssertionHash?: string): RefreshTokenEntity;
31
+ /**
32
+ * Validates an entity: checks for all expected params
33
+ * @param entity
34
+ */
35
+ static isRefreshTokenEntity(entity: object): boolean;
36
+ }
37
37
  //# sourceMappingURL=RefreshTokenEntity.d.ts.map