@azure/msal-common 14.0.0-alpha.1 → 14.0.0-alpha.2

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 (167) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +62 -62
  3. package/dist/account/AccountInfo.d.ts +31 -31
  4. package/dist/account/AuthToken.d.ts +20 -20
  5. package/dist/account/AuthToken.js +48 -48
  6. package/dist/account/CcsCredential.d.ts +8 -8
  7. package/dist/account/CcsCredential.js +9 -9
  8. package/dist/account/ClientCredentials.d.ts +14 -14
  9. package/dist/account/ClientInfo.d.ts +19 -19
  10. package/dist/account/ClientInfo.js +37 -37
  11. package/dist/account/DecodedAuthToken.d.ts +8 -8
  12. package/dist/account/TokenClaims.d.ts +65 -65
  13. package/dist/authority/Authority.d.ts +228 -215
  14. package/dist/authority/Authority.d.ts.map +1 -1
  15. package/dist/authority/Authority.js +716 -682
  16. package/dist/authority/Authority.js.map +1 -1
  17. package/dist/authority/AuthorityFactory.d.ts +30 -30
  18. package/dist/authority/AuthorityFactory.js +47 -47
  19. package/dist/authority/AuthorityMetadata.d.ts +622 -622
  20. package/dist/authority/AuthorityMetadata.js +876 -876
  21. package/dist/authority/AuthorityOptions.d.ts +18 -18
  22. package/dist/authority/AuthorityOptions.js +19 -19
  23. package/dist/authority/AuthorityType.d.ts +9 -9
  24. package/dist/authority/AuthorityType.js +14 -14
  25. package/dist/authority/AzureRegion.d.ts +1 -1
  26. package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
  27. package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
  28. package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
  29. package/dist/authority/CloudInstanceDiscoveryErrorResponse.js +8 -8
  30. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
  31. package/dist/authority/CloudInstanceDiscoveryResponse.js +8 -8
  32. package/dist/authority/ImdsOptions.d.ts +5 -5
  33. package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
  34. package/dist/authority/OpenIdConfigResponse.js +10 -10
  35. package/dist/authority/ProtocolMode.d.ts +7 -7
  36. package/dist/authority/ProtocolMode.js +12 -12
  37. package/dist/authority/RegionDiscovery.d.ts +30 -30
  38. package/dist/authority/RegionDiscovery.js +108 -108
  39. package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
  40. package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
  41. package/dist/cache/CacheManager.d.ts +443 -443
  42. package/dist/cache/CacheManager.js +1011 -1011
  43. package/dist/cache/entities/AccessTokenEntity.d.ts +56 -56
  44. package/dist/cache/entities/AccessTokenEntity.js +111 -111
  45. package/dist/cache/entities/AccountEntity.d.ts +99 -99
  46. package/dist/cache/entities/AccountEntity.js +248 -248
  47. package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
  48. package/dist/cache/entities/AppMetadataEntity.js +66 -66
  49. package/dist/cache/entities/AuthorityMetadataEntity.d.ts +47 -47
  50. package/dist/cache/entities/AuthorityMetadataEntity.js +77 -77
  51. package/dist/cache/entities/CacheRecord.d.ts +13 -13
  52. package/dist/cache/entities/CacheRecord.js +13 -13
  53. package/dist/cache/entities/CredentialEntity.d.ts +88 -88
  54. package/dist/cache/entities/CredentialEntity.js +136 -136
  55. package/dist/cache/entities/IdTokenEntity.d.ts +34 -34
  56. package/dist/cache/entities/IdTokenEntity.js +56 -56
  57. package/dist/cache/entities/RefreshTokenEntity.d.ts +36 -36
  58. package/dist/cache/entities/RefreshTokenEntity.js +59 -59
  59. package/dist/cache/entities/ServerTelemetryEntity.d.ts +12 -12
  60. package/dist/cache/entities/ServerTelemetryEntity.js +27 -27
  61. package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
  62. package/dist/cache/entities/ThrottlingEntity.js +23 -23
  63. package/dist/cache/interface/ICacheManager.d.ts +165 -165
  64. package/dist/cache/interface/ICachePlugin.d.ts +5 -5
  65. package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
  66. package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
  67. package/dist/cache/persistence/TokenCacheContext.js +25 -25
  68. package/dist/cache/utils/CacheTypes.d.ts +62 -62
  69. package/dist/client/AuthorizationCodeClient.d.ts +71 -71
  70. package/dist/client/AuthorizationCodeClient.js +433 -433
  71. package/dist/client/BaseClient.d.ts +50 -50
  72. package/dist/client/BaseClient.js +92 -92
  73. package/dist/client/RefreshTokenClient.d.ts +34 -34
  74. package/dist/client/RefreshTokenClient.js +239 -239
  75. package/dist/client/SilentFlowClient.d.ts +24 -24
  76. package/dist/client/SilentFlowClient.js +94 -94
  77. package/dist/config/AppTokenProvider.d.ts +38 -38
  78. package/dist/config/ClientConfiguration.d.ts +133 -133
  79. package/dist/config/ClientConfiguration.js +88 -88
  80. package/dist/crypto/ICrypto.d.ts +62 -62
  81. package/dist/crypto/ICrypto.js +42 -42
  82. package/dist/crypto/IGuidGenerator.d.ts +4 -4
  83. package/dist/crypto/JoseHeader.d.ts +21 -21
  84. package/dist/crypto/JoseHeader.js +36 -36
  85. package/dist/crypto/PopTokenGenerator.d.ts +57 -57
  86. package/dist/crypto/PopTokenGenerator.js +83 -83
  87. package/dist/crypto/SignedHttpRequest.d.ts +11 -11
  88. package/dist/error/AuthError.d.ts +47 -47
  89. package/dist/error/AuthError.js +51 -51
  90. package/dist/error/ClientAuthError.d.ts +412 -412
  91. package/dist/error/ClientAuthError.js +519 -519
  92. package/dist/error/ClientConfigurationError.d.ts +198 -198
  93. package/dist/error/ClientConfigurationError.js +249 -249
  94. package/dist/error/InteractionRequiredAuthError.d.ts +59 -59
  95. package/dist/error/InteractionRequiredAuthError.js +78 -78
  96. package/dist/error/JoseHeaderError.d.ts +28 -28
  97. package/dist/error/JoseHeaderError.js +39 -39
  98. package/dist/error/ServerError.d.ts +7 -7
  99. package/dist/error/ServerError.js +14 -14
  100. package/dist/index.cjs.js +8843 -8809
  101. package/dist/index.cjs.js.map +1 -1
  102. package/dist/index.d.ts +93 -93
  103. package/dist/index.js +1 -1
  104. package/dist/logger/Logger.d.ts +95 -95
  105. package/dist/logger/Logger.js +197 -197
  106. package/dist/network/INetworkModule.d.ts +29 -29
  107. package/dist/network/INetworkModule.js +14 -14
  108. package/dist/network/NetworkManager.d.ts +32 -32
  109. package/dist/network/NetworkManager.js +33 -33
  110. package/dist/network/RequestThumbprint.d.ts +16 -16
  111. package/dist/network/ThrottlingUtils.d.ts +41 -41
  112. package/dist/network/ThrottlingUtils.js +94 -94
  113. package/dist/packageMetadata.d.ts +2 -2
  114. package/dist/packageMetadata.js +4 -4
  115. package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
  116. package/dist/request/AuthenticationHeaderParser.js +55 -55
  117. package/dist/request/BaseAuthRequest.d.ts +37 -37
  118. package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
  119. package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
  120. package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
  121. package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
  122. package/dist/request/CommonEndSessionRequest.d.ts +21 -21
  123. package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
  124. package/dist/request/CommonRefreshTokenRequest.d.ts +19 -19
  125. package/dist/request/CommonSilentFlowRequest.d.ts +18 -18
  126. package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
  127. package/dist/request/NativeRequest.d.ts +19 -19
  128. package/dist/request/NativeSignOutRequest.d.ts +5 -5
  129. package/dist/request/RequestParameterBuilder.d.ts +216 -216
  130. package/dist/request/RequestParameterBuilder.js +374 -374
  131. package/dist/request/RequestValidator.d.ts +33 -33
  132. package/dist/request/RequestValidator.js +83 -83
  133. package/dist/request/ScopeSet.d.ts +88 -88
  134. package/dist/request/ScopeSet.js +197 -197
  135. package/dist/response/AuthenticationResult.d.ts +39 -39
  136. package/dist/response/AuthorizationCodePayload.d.ts +13 -13
  137. package/dist/response/DeviceCodeResponse.d.ts +25 -25
  138. package/dist/response/ExternalTokenResponse.d.ts +15 -15
  139. package/dist/response/IMDSBadResponse.d.ts +4 -4
  140. package/dist/response/ResponseHandler.d.ts +72 -72
  141. package/dist/response/ResponseHandler.js +300 -300
  142. package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
  143. package/dist/response/ServerAuthorizationTokenResponse.d.ts +44 -44
  144. package/dist/telemetry/performance/IPerformanceClient.d.ts +42 -42
  145. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
  146. package/dist/telemetry/performance/PerformanceClient.d.ts +189 -189
  147. package/dist/telemetry/performance/PerformanceClient.js +406 -406
  148. package/dist/telemetry/performance/PerformanceEvent.d.ts +439 -439
  149. package/dist/telemetry/performance/PerformanceEvent.js +227 -227
  150. package/dist/telemetry/performance/StubPerformanceClient.d.ts +19 -19
  151. package/dist/telemetry/performance/StubPerformanceClient.js +36 -36
  152. package/dist/telemetry/server/ServerTelemetryManager.d.ts +65 -65
  153. package/dist/telemetry/server/ServerTelemetryManager.js +196 -196
  154. package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
  155. package/dist/url/IUri.d.ts +12 -12
  156. package/dist/url/UrlString.d.ts +70 -70
  157. package/dist/url/UrlString.js +242 -242
  158. package/dist/utils/Constants.d.ts +331 -331
  159. package/dist/utils/Constants.js +373 -373
  160. package/dist/utils/MsalTypes.d.ts +6 -6
  161. package/dist/utils/ProtocolUtils.d.ts +42 -42
  162. package/dist/utils/ProtocolUtils.js +71 -71
  163. package/dist/utils/StringUtils.d.ts +53 -53
  164. package/dist/utils/StringUtils.js +124 -124
  165. package/dist/utils/TimeUtils.d.ts +27 -27
  166. package/dist/utils/TimeUtils.js +45 -45
  167. package/package.json +79 -79
@@ -1,57 +1,57 @@
1
- import { CredentialEntity } from "./CredentialEntity";
2
- import { AuthenticationScheme } from "../../utils/Constants";
3
- import { ICrypto } from "../../crypto/ICrypto";
4
- /**
5
- * ACCESS_TOKEN Credential Type
6
- *
7
- * Key:Value Schema:
8
- *
9
- * Key Example: uid.utid-login.microsoftonline.com-accesstoken-clientId-contoso.com-user.read
10
- *
11
- * Value Schema:
12
- * {
13
- * homeAccountId: home account identifier for the auth scheme,
14
- * environment: entity that issued the token, represented as a full host
15
- * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other
16
- * clientId: client ID of the application
17
- * secret: Actual credential as a string
18
- * familyId: Family ID identifier, usually only used for refresh tokens
19
- * realm: Full tenant or organizational identifier that the account belongs to
20
- * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.
21
- * cachedAt: Absolute device time when entry was created in the cache.
22
- * expiresOn: Token expiry time, calculated based on current UTC time in seconds. Represented as a string.
23
- * extendedExpiresOn: Additional extended expiry time until when token is valid in case of server-side outage. Represented as string in UTC seconds.
24
- * keyId: used for POP and SSH tokenTypes
25
- * tokenType: Type of the token issued. Usually "Bearer"
26
- * }
27
- */
28
- export declare class AccessTokenEntity extends CredentialEntity {
29
- realm: string;
30
- target: string;
31
- cachedAt: string;
32
- expiresOn: string;
33
- extendedExpiresOn?: string;
34
- refreshOn?: string;
35
- keyId?: string;
36
- tokenType?: AuthenticationScheme;
37
- requestedClaims?: string;
38
- requestedClaimsHash?: string;
39
- /**
40
- * Create AccessTokenEntity
41
- * @param homeAccountId
42
- * @param environment
43
- * @param accessToken
44
- * @param clientId
45
- * @param tenantId
46
- * @param scopes
47
- * @param expiresOn
48
- * @param extExpiresOn
49
- */
50
- static createAccessTokenEntity(homeAccountId: string, environment: string, accessToken: string, clientId: string, tenantId: string, scopes: string, expiresOn: number, extExpiresOn: number, cryptoUtils: ICrypto, refreshOn?: number, tokenType?: AuthenticationScheme, userAssertionHash?: string, keyId?: string, requestedClaims?: string, requestedClaimsHash?: string): AccessTokenEntity;
51
- /**
52
- * Validates an entity: checks for all expected params
53
- * @param entity
54
- */
55
- static isAccessTokenEntity(entity: object): boolean;
56
- }
1
+ import { CredentialEntity } from "./CredentialEntity";
2
+ import { AuthenticationScheme } from "../../utils/Constants";
3
+ import { ICrypto } from "../../crypto/ICrypto";
4
+ /**
5
+ * ACCESS_TOKEN Credential Type
6
+ *
7
+ * Key:Value Schema:
8
+ *
9
+ * Key Example: uid.utid-login.microsoftonline.com-accesstoken-clientId-contoso.com-user.read
10
+ *
11
+ * Value Schema:
12
+ * {
13
+ * homeAccountId: home account identifier for the auth scheme,
14
+ * environment: entity that issued the token, represented as a full host
15
+ * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other
16
+ * clientId: client ID of the application
17
+ * secret: Actual credential as a string
18
+ * familyId: Family ID identifier, usually only used for refresh tokens
19
+ * realm: Full tenant or organizational identifier that the account belongs to
20
+ * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.
21
+ * cachedAt: Absolute device time when entry was created in the cache.
22
+ * expiresOn: Token expiry time, calculated based on current UTC time in seconds. Represented as a string.
23
+ * extendedExpiresOn: Additional extended expiry time until when token is valid in case of server-side outage. Represented as string in UTC seconds.
24
+ * keyId: used for POP and SSH tokenTypes
25
+ * tokenType: Type of the token issued. Usually "Bearer"
26
+ * }
27
+ */
28
+ export declare class AccessTokenEntity extends CredentialEntity {
29
+ realm: string;
30
+ target: string;
31
+ cachedAt: string;
32
+ expiresOn: string;
33
+ extendedExpiresOn?: string;
34
+ refreshOn?: string;
35
+ keyId?: string;
36
+ tokenType?: AuthenticationScheme;
37
+ requestedClaims?: string;
38
+ requestedClaimsHash?: string;
39
+ /**
40
+ * Create AccessTokenEntity
41
+ * @param homeAccountId
42
+ * @param environment
43
+ * @param accessToken
44
+ * @param clientId
45
+ * @param tenantId
46
+ * @param scopes
47
+ * @param expiresOn
48
+ * @param extExpiresOn
49
+ */
50
+ static createAccessTokenEntity(homeAccountId: string, environment: string, accessToken: string, clientId: string, tenantId: string, scopes: string, expiresOn: number, extExpiresOn: number, cryptoUtils: ICrypto, refreshOn?: number, tokenType?: AuthenticationScheme, userAssertionHash?: string, keyId?: string, requestedClaims?: string, requestedClaimsHash?: string): AccessTokenEntity;
51
+ /**
52
+ * Validates an entity: checks for all expected params
53
+ * @param entity
54
+ */
55
+ static isAccessTokenEntity(entity: object): boolean;
56
+ }
57
57
  //# sourceMappingURL=AccessTokenEntity.d.ts.map
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v14.0.0-alpha.1 2023-05-08 */
1
+ /*! @azure/msal-common v14.0.0-alpha.2 2023-05-17 */
2
2
  'use strict';
3
3
  import { CredentialEntity } from './CredentialEntity.js';
4
4
  import { CredentialType, AuthenticationScheme } from '../../utils/Constants.js';
@@ -7,116 +7,116 @@ import { StringUtils } from '../../utils/StringUtils.js';
7
7
  import { AuthToken } from '../../account/AuthToken.js';
8
8
  import { ClientAuthError } from '../../error/ClientAuthError.js';
9
9
 
10
- /*
11
- * Copyright (c) Microsoft Corporation. All rights reserved.
12
- * Licensed under the MIT License.
13
- */
14
- /**
15
- * ACCESS_TOKEN Credential Type
16
- *
17
- * Key:Value Schema:
18
- *
19
- * Key Example: uid.utid-login.microsoftonline.com-accesstoken-clientId-contoso.com-user.read
20
- *
21
- * Value Schema:
22
- * {
23
- * homeAccountId: home account identifier for the auth scheme,
24
- * environment: entity that issued the token, represented as a full host
25
- * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other
26
- * clientId: client ID of the application
27
- * secret: Actual credential as a string
28
- * familyId: Family ID identifier, usually only used for refresh tokens
29
- * realm: Full tenant or organizational identifier that the account belongs to
30
- * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.
31
- * cachedAt: Absolute device time when entry was created in the cache.
32
- * expiresOn: Token expiry time, calculated based on current UTC time in seconds. Represented as a string.
33
- * extendedExpiresOn: Additional extended expiry time until when token is valid in case of server-side outage. Represented as string in UTC seconds.
34
- * keyId: used for POP and SSH tokenTypes
35
- * tokenType: Type of the token issued. Usually "Bearer"
36
- * }
37
- */
38
- class AccessTokenEntity extends CredentialEntity {
39
- /**
40
- * Create AccessTokenEntity
41
- * @param homeAccountId
42
- * @param environment
43
- * @param accessToken
44
- * @param clientId
45
- * @param tenantId
46
- * @param scopes
47
- * @param expiresOn
48
- * @param extExpiresOn
49
- */
50
- static createAccessTokenEntity(homeAccountId, environment, accessToken, clientId, tenantId, scopes, expiresOn, extExpiresOn, cryptoUtils, refreshOn, tokenType, userAssertionHash, keyId, requestedClaims, requestedClaimsHash) {
51
- const atEntity = new AccessTokenEntity();
52
- atEntity.homeAccountId = homeAccountId;
53
- atEntity.credentialType = CredentialType.ACCESS_TOKEN;
54
- atEntity.secret = accessToken;
55
- const currentTime = TimeUtils.nowSeconds();
56
- atEntity.cachedAt = currentTime.toString();
57
- /*
58
- * Token expiry time.
59
- * This value should be  calculated based on the current UTC time measured locally and the value  expires_in Represented as a string in JSON.
60
- */
61
- atEntity.expiresOn = expiresOn.toString();
62
- atEntity.extendedExpiresOn = extExpiresOn.toString();
63
- if (refreshOn) {
64
- atEntity.refreshOn = refreshOn.toString();
65
- }
66
- atEntity.environment = environment;
67
- atEntity.clientId = clientId;
68
- atEntity.realm = tenantId;
69
- atEntity.target = scopes;
70
- atEntity.userAssertionHash = userAssertionHash;
71
- atEntity.tokenType = StringUtils.isEmpty(tokenType)
72
- ? AuthenticationScheme.BEARER
73
- : tokenType;
74
- if (requestedClaims) {
75
- atEntity.requestedClaims = requestedClaims;
76
- atEntity.requestedClaimsHash = requestedClaimsHash;
77
- }
78
- /*
79
- * Create Access Token With Auth Scheme instead of regular access token
80
- * Cast to lower to handle "bearer" from ADFS
81
- */
82
- if (atEntity.tokenType?.toLowerCase() !==
83
- AuthenticationScheme.BEARER.toLowerCase()) {
84
- atEntity.credentialType =
85
- CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME;
86
- switch (atEntity.tokenType) {
87
- case AuthenticationScheme.POP:
88
- // Make sure keyId is present and add it to credential
89
- const tokenClaims = AuthToken.extractTokenClaims(accessToken, cryptoUtils);
90
- if (!tokenClaims?.cnf?.kid) {
91
- throw ClientAuthError.createTokenClaimsRequiredError();
92
- }
93
- atEntity.keyId = tokenClaims.cnf.kid;
94
- break;
95
- case AuthenticationScheme.SSH:
96
- atEntity.keyId = keyId;
97
- }
98
- }
99
- return atEntity;
100
- }
101
- /**
102
- * Validates an entity: checks for all expected params
103
- * @param entity
104
- */
105
- static isAccessTokenEntity(entity) {
106
- if (!entity) {
107
- return false;
108
- }
109
- return (entity.hasOwnProperty("homeAccountId") &&
110
- entity.hasOwnProperty("environment") &&
111
- entity.hasOwnProperty("credentialType") &&
112
- entity.hasOwnProperty("realm") &&
113
- entity.hasOwnProperty("clientId") &&
114
- entity.hasOwnProperty("secret") &&
115
- entity.hasOwnProperty("target") &&
116
- (entity["credentialType"] === CredentialType.ACCESS_TOKEN ||
117
- entity["credentialType"] ===
118
- CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME));
119
- }
10
+ /*
11
+ * Copyright (c) Microsoft Corporation. All rights reserved.
12
+ * Licensed under the MIT License.
13
+ */
14
+ /**
15
+ * ACCESS_TOKEN Credential Type
16
+ *
17
+ * Key:Value Schema:
18
+ *
19
+ * Key Example: uid.utid-login.microsoftonline.com-accesstoken-clientId-contoso.com-user.read
20
+ *
21
+ * Value Schema:
22
+ * {
23
+ * homeAccountId: home account identifier for the auth scheme,
24
+ * environment: entity that issued the token, represented as a full host
25
+ * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other
26
+ * clientId: client ID of the application
27
+ * secret: Actual credential as a string
28
+ * familyId: Family ID identifier, usually only used for refresh tokens
29
+ * realm: Full tenant or organizational identifier that the account belongs to
30
+ * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.
31
+ * cachedAt: Absolute device time when entry was created in the cache.
32
+ * expiresOn: Token expiry time, calculated based on current UTC time in seconds. Represented as a string.
33
+ * extendedExpiresOn: Additional extended expiry time until when token is valid in case of server-side outage. Represented as string in UTC seconds.
34
+ * keyId: used for POP and SSH tokenTypes
35
+ * tokenType: Type of the token issued. Usually "Bearer"
36
+ * }
37
+ */
38
+ class AccessTokenEntity extends CredentialEntity {
39
+ /**
40
+ * Create AccessTokenEntity
41
+ * @param homeAccountId
42
+ * @param environment
43
+ * @param accessToken
44
+ * @param clientId
45
+ * @param tenantId
46
+ * @param scopes
47
+ * @param expiresOn
48
+ * @param extExpiresOn
49
+ */
50
+ static createAccessTokenEntity(homeAccountId, environment, accessToken, clientId, tenantId, scopes, expiresOn, extExpiresOn, cryptoUtils, refreshOn, tokenType, userAssertionHash, keyId, requestedClaims, requestedClaimsHash) {
51
+ const atEntity = new AccessTokenEntity();
52
+ atEntity.homeAccountId = homeAccountId;
53
+ atEntity.credentialType = CredentialType.ACCESS_TOKEN;
54
+ atEntity.secret = accessToken;
55
+ const currentTime = TimeUtils.nowSeconds();
56
+ atEntity.cachedAt = currentTime.toString();
57
+ /*
58
+ * Token expiry time.
59
+ * This value should be  calculated based on the current UTC time measured locally and the value  expires_in Represented as a string in JSON.
60
+ */
61
+ atEntity.expiresOn = expiresOn.toString();
62
+ atEntity.extendedExpiresOn = extExpiresOn.toString();
63
+ if (refreshOn) {
64
+ atEntity.refreshOn = refreshOn.toString();
65
+ }
66
+ atEntity.environment = environment;
67
+ atEntity.clientId = clientId;
68
+ atEntity.realm = tenantId;
69
+ atEntity.target = scopes;
70
+ atEntity.userAssertionHash = userAssertionHash;
71
+ atEntity.tokenType = StringUtils.isEmpty(tokenType)
72
+ ? AuthenticationScheme.BEARER
73
+ : tokenType;
74
+ if (requestedClaims) {
75
+ atEntity.requestedClaims = requestedClaims;
76
+ atEntity.requestedClaimsHash = requestedClaimsHash;
77
+ }
78
+ /*
79
+ * Create Access Token With Auth Scheme instead of regular access token
80
+ * Cast to lower to handle "bearer" from ADFS
81
+ */
82
+ if (atEntity.tokenType?.toLowerCase() !==
83
+ AuthenticationScheme.BEARER.toLowerCase()) {
84
+ atEntity.credentialType =
85
+ CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME;
86
+ switch (atEntity.tokenType) {
87
+ case AuthenticationScheme.POP:
88
+ // Make sure keyId is present and add it to credential
89
+ const tokenClaims = AuthToken.extractTokenClaims(accessToken, cryptoUtils);
90
+ if (!tokenClaims?.cnf?.kid) {
91
+ throw ClientAuthError.createTokenClaimsRequiredError();
92
+ }
93
+ atEntity.keyId = tokenClaims.cnf.kid;
94
+ break;
95
+ case AuthenticationScheme.SSH:
96
+ atEntity.keyId = keyId;
97
+ }
98
+ }
99
+ return atEntity;
100
+ }
101
+ /**
102
+ * Validates an entity: checks for all expected params
103
+ * @param entity
104
+ */
105
+ static isAccessTokenEntity(entity) {
106
+ if (!entity) {
107
+ return false;
108
+ }
109
+ return (entity.hasOwnProperty("homeAccountId") &&
110
+ entity.hasOwnProperty("environment") &&
111
+ entity.hasOwnProperty("credentialType") &&
112
+ entity.hasOwnProperty("realm") &&
113
+ entity.hasOwnProperty("clientId") &&
114
+ entity.hasOwnProperty("secret") &&
115
+ entity.hasOwnProperty("target") &&
116
+ (entity["credentialType"] === CredentialType.ACCESS_TOKEN ||
117
+ entity["credentialType"] ===
118
+ CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME));
119
+ }
120
120
  }
121
121
 
122
122
  export { AccessTokenEntity };
@@ -1,100 +1,100 @@
1
- import { Authority } from "../../authority/Authority";
2
- import { AuthToken } from "../../account/AuthToken";
3
- import { ICrypto } from "../../crypto/ICrypto";
4
- import { AccountInfo } from "../../account/AccountInfo";
5
- import { AuthorityType } from "../../authority/AuthorityType";
6
- import { Logger } from "../../logger/Logger";
7
- import { TokenClaims } from "../../account/TokenClaims";
8
- /**
9
- * Type that defines required and optional parameters for an Account field (based on universal cache schema implemented by all MSALs).
10
- *
11
- * Key : Value Schema
12
- *
13
- * Key: <home_account_id>-<environment>-<realm*>
14
- *
15
- * Value Schema:
16
- * {
17
- * homeAccountId: home account identifier for the auth scheme,
18
- * environment: entity that issued the token, represented as a full host
19
- * realm: Full tenant or organizational identifier that the account belongs to
20
- * localAccountId: Original tenant-specific accountID, usually used for legacy cases
21
- * username: primary username that represents the user, usually corresponds to preferred_username in the v2 endpt
22
- * authorityType: Accounts authority type as a string
23
- * name: Full name for the account, including given name and family name,
24
- * clientInfo: Full base64 encoded client info received from ESTS
25
- * lastModificationTime: last time this entity was modified in the cache
26
- * lastModificationApp:
27
- * idTokenClaims: Object containing claims parsed from ID token
28
- * nativeAccountId: Account identifier on the native device
29
- * }
30
- */
31
- export declare class AccountEntity {
32
- homeAccountId: string;
33
- environment: string;
34
- realm: string;
35
- localAccountId: string;
36
- username: string;
37
- authorityType: string;
38
- name?: string;
39
- clientInfo?: string;
40
- lastModificationTime?: string;
41
- lastModificationApp?: string;
42
- cloudGraphHostName?: string;
43
- msGraphHost?: string;
44
- idTokenClaims?: TokenClaims;
45
- nativeAccountId?: string;
46
- /**
47
- * Generate Account Id key component as per the schema: <home_account_id>-<environment>
48
- */
49
- generateAccountId(): string;
50
- /**
51
- * Generate Account Cache Key as per the schema: <home_account_id>-<environment>-<realm*>
52
- */
53
- generateAccountKey(): string;
54
- /**
55
- * returns the type of the cache (in this case account)
56
- */
57
- generateType(): number;
58
- /**
59
- * Returns the AccountInfo interface for this account.
60
- */
61
- getAccountInfo(): AccountInfo;
62
- /**
63
- * Generates account key from interface
64
- * @param accountInterface
65
- */
66
- static generateAccountCacheKey(accountInterface: AccountInfo): string;
67
- /**
68
- * Build Account cache from IdToken, clientInfo and authority/policy. Associated with AAD.
69
- * @param clientInfo
70
- * @param authority
71
- * @param idToken
72
- * @param policy
73
- */
74
- static createAccount(clientInfo: string, homeAccountId: string, idToken: AuthToken, authority?: Authority, cloudGraphHostName?: string, msGraphHost?: string, environment?: string, nativeAccountId?: string): AccountEntity;
75
- /**
76
- * Builds non-AAD/ADFS account.
77
- * @param authority
78
- * @param idToken
79
- */
80
- static createGenericAccount(homeAccountId: string, idToken: AuthToken, authority?: Authority, cloudGraphHostName?: string, msGraphHost?: string, environment?: string): AccountEntity;
81
- /**
82
- * Generate HomeAccountId from server response
83
- * @param serverClientInfo
84
- * @param authType
85
- */
86
- static generateHomeAccountId(serverClientInfo: string, authType: AuthorityType, logger: Logger, cryptoObj: ICrypto, idToken?: AuthToken): string;
87
- /**
88
- * Validates an entity: checks for all expected params
89
- * @param entity
90
- */
91
- static isAccountEntity(entity: object): boolean;
92
- /**
93
- * Helper function to determine whether 2 accountInfo objects represent the same account
94
- * @param accountA
95
- * @param accountB
96
- * @param compareClaims - If set to true idTokenClaims will also be compared to determine account equality
97
- */
98
- static accountInfoIsEqual(accountA: AccountInfo | null, accountB: AccountInfo | null, compareClaims?: boolean): boolean;
99
- }
1
+ import { Authority } from "../../authority/Authority";
2
+ import { AuthToken } from "../../account/AuthToken";
3
+ import { ICrypto } from "../../crypto/ICrypto";
4
+ import { AccountInfo } from "../../account/AccountInfo";
5
+ import { AuthorityType } from "../../authority/AuthorityType";
6
+ import { Logger } from "../../logger/Logger";
7
+ import { TokenClaims } from "../../account/TokenClaims";
8
+ /**
9
+ * Type that defines required and optional parameters for an Account field (based on universal cache schema implemented by all MSALs).
10
+ *
11
+ * Key : Value Schema
12
+ *
13
+ * Key: <home_account_id>-<environment>-<realm*>
14
+ *
15
+ * Value Schema:
16
+ * {
17
+ * homeAccountId: home account identifier for the auth scheme,
18
+ * environment: entity that issued the token, represented as a full host
19
+ * realm: Full tenant or organizational identifier that the account belongs to
20
+ * localAccountId: Original tenant-specific accountID, usually used for legacy cases
21
+ * username: primary username that represents the user, usually corresponds to preferred_username in the v2 endpt
22
+ * authorityType: Accounts authority type as a string
23
+ * name: Full name for the account, including given name and family name,
24
+ * clientInfo: Full base64 encoded client info received from ESTS
25
+ * lastModificationTime: last time this entity was modified in the cache
26
+ * lastModificationApp:
27
+ * idTokenClaims: Object containing claims parsed from ID token
28
+ * nativeAccountId: Account identifier on the native device
29
+ * }
30
+ */
31
+ export declare class AccountEntity {
32
+ homeAccountId: string;
33
+ environment: string;
34
+ realm: string;
35
+ localAccountId: string;
36
+ username: string;
37
+ authorityType: string;
38
+ name?: string;
39
+ clientInfo?: string;
40
+ lastModificationTime?: string;
41
+ lastModificationApp?: string;
42
+ cloudGraphHostName?: string;
43
+ msGraphHost?: string;
44
+ idTokenClaims?: TokenClaims;
45
+ nativeAccountId?: string;
46
+ /**
47
+ * Generate Account Id key component as per the schema: <home_account_id>-<environment>
48
+ */
49
+ generateAccountId(): string;
50
+ /**
51
+ * Generate Account Cache Key as per the schema: <home_account_id>-<environment>-<realm*>
52
+ */
53
+ generateAccountKey(): string;
54
+ /**
55
+ * returns the type of the cache (in this case account)
56
+ */
57
+ generateType(): number;
58
+ /**
59
+ * Returns the AccountInfo interface for this account.
60
+ */
61
+ getAccountInfo(): AccountInfo;
62
+ /**
63
+ * Generates account key from interface
64
+ * @param accountInterface
65
+ */
66
+ static generateAccountCacheKey(accountInterface: AccountInfo): string;
67
+ /**
68
+ * Build Account cache from IdToken, clientInfo and authority/policy. Associated with AAD.
69
+ * @param clientInfo
70
+ * @param authority
71
+ * @param idToken
72
+ * @param policy
73
+ */
74
+ static createAccount(clientInfo: string, homeAccountId: string, idToken: AuthToken, authority?: Authority, cloudGraphHostName?: string, msGraphHost?: string, environment?: string, nativeAccountId?: string): AccountEntity;
75
+ /**
76
+ * Builds non-AAD/ADFS account.
77
+ * @param authority
78
+ * @param idToken
79
+ */
80
+ static createGenericAccount(homeAccountId: string, idToken: AuthToken, authority?: Authority, cloudGraphHostName?: string, msGraphHost?: string, environment?: string): AccountEntity;
81
+ /**
82
+ * Generate HomeAccountId from server response
83
+ * @param serverClientInfo
84
+ * @param authType
85
+ */
86
+ static generateHomeAccountId(serverClientInfo: string, authType: AuthorityType, logger: Logger, cryptoObj: ICrypto, idToken?: AuthToken): string;
87
+ /**
88
+ * Validates an entity: checks for all expected params
89
+ * @param entity
90
+ */
91
+ static isAccountEntity(entity: object): boolean;
92
+ /**
93
+ * Helper function to determine whether 2 accountInfo objects represent the same account
94
+ * @param accountA
95
+ * @param accountB
96
+ * @param compareClaims - If set to true idTokenClaims will also be compared to determine account equality
97
+ */
98
+ static accountInfoIsEqual(accountA: AccountInfo | null, accountB: AccountInfo | null, compareClaims?: boolean): boolean;
99
+ }
100
100
  //# sourceMappingURL=AccountEntity.d.ts.map