@azure/msal-common 14.0.0-alpha.1 → 14.0.0-beta.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 (187) 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 +9 -8
  7. package/dist/account/CcsCredential.d.ts.map +1 -1
  8. package/dist/account/CcsCredential.js +9 -10
  9. package/dist/account/CcsCredential.js.map +1 -1
  10. package/dist/account/ClientCredentials.d.ts +14 -14
  11. package/dist/account/ClientInfo.d.ts +19 -19
  12. package/dist/account/ClientInfo.js +37 -37
  13. package/dist/account/DecodedAuthToken.d.ts +8 -8
  14. package/dist/account/TokenClaims.d.ts +65 -65
  15. package/dist/authority/Authority.d.ts +228 -215
  16. package/dist/authority/Authority.d.ts.map +1 -1
  17. package/dist/authority/Authority.js +716 -682
  18. package/dist/authority/Authority.js.map +1 -1
  19. package/dist/authority/AuthorityFactory.d.ts +30 -30
  20. package/dist/authority/AuthorityFactory.js +47 -47
  21. package/dist/authority/AuthorityMetadata.d.ts +622 -622
  22. package/dist/authority/AuthorityMetadata.js +876 -876
  23. package/dist/authority/AuthorityOptions.d.ts +19 -18
  24. package/dist/authority/AuthorityOptions.d.ts.map +1 -1
  25. package/dist/authority/AuthorityOptions.js +19 -20
  26. package/dist/authority/AuthorityOptions.js.map +1 -1
  27. package/dist/authority/AuthorityType.d.ts +10 -9
  28. package/dist/authority/AuthorityType.d.ts.map +1 -1
  29. package/dist/authority/AuthorityType.js +14 -15
  30. package/dist/authority/AuthorityType.js.map +1 -1
  31. package/dist/authority/AzureRegion.d.ts +1 -1
  32. package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
  33. package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
  34. package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
  35. package/dist/authority/CloudInstanceDiscoveryErrorResponse.js +8 -8
  36. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
  37. package/dist/authority/CloudInstanceDiscoveryResponse.js +8 -8
  38. package/dist/authority/ImdsOptions.d.ts +5 -5
  39. package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
  40. package/dist/authority/OpenIdConfigResponse.js +10 -10
  41. package/dist/authority/ProtocolMode.d.ts +8 -7
  42. package/dist/authority/ProtocolMode.d.ts.map +1 -1
  43. package/dist/authority/ProtocolMode.js +12 -13
  44. package/dist/authority/ProtocolMode.js.map +1 -1
  45. package/dist/authority/RegionDiscovery.d.ts +30 -30
  46. package/dist/authority/RegionDiscovery.js +108 -108
  47. package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
  48. package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
  49. package/dist/cache/CacheManager.d.ts +443 -443
  50. package/dist/cache/CacheManager.js +1011 -1011
  51. package/dist/cache/entities/AccessTokenEntity.d.ts +56 -56
  52. package/dist/cache/entities/AccessTokenEntity.js +111 -111
  53. package/dist/cache/entities/AccountEntity.d.ts +99 -99
  54. package/dist/cache/entities/AccountEntity.js +248 -248
  55. package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
  56. package/dist/cache/entities/AppMetadataEntity.js +66 -66
  57. package/dist/cache/entities/AuthorityMetadataEntity.d.ts +47 -47
  58. package/dist/cache/entities/AuthorityMetadataEntity.js +77 -77
  59. package/dist/cache/entities/CacheRecord.d.ts +13 -13
  60. package/dist/cache/entities/CacheRecord.js +13 -13
  61. package/dist/cache/entities/CredentialEntity.d.ts +88 -88
  62. package/dist/cache/entities/CredentialEntity.js +136 -136
  63. package/dist/cache/entities/IdTokenEntity.d.ts +34 -34
  64. package/dist/cache/entities/IdTokenEntity.js +56 -56
  65. package/dist/cache/entities/RefreshTokenEntity.d.ts +36 -36
  66. package/dist/cache/entities/RefreshTokenEntity.js +59 -59
  67. package/dist/cache/entities/ServerTelemetryEntity.d.ts +12 -12
  68. package/dist/cache/entities/ServerTelemetryEntity.js +27 -27
  69. package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
  70. package/dist/cache/entities/ThrottlingEntity.js +23 -23
  71. package/dist/cache/interface/ICacheManager.d.ts +165 -165
  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.js +25 -25
  76. package/dist/cache/utils/CacheTypes.d.ts +62 -62
  77. package/dist/client/AuthorizationCodeClient.d.ts +71 -71
  78. package/dist/client/AuthorizationCodeClient.js +433 -433
  79. package/dist/client/BaseClient.d.ts +50 -50
  80. package/dist/client/BaseClient.js +92 -92
  81. package/dist/client/RefreshTokenClient.d.ts +34 -34
  82. package/dist/client/RefreshTokenClient.js +239 -239
  83. package/dist/client/SilentFlowClient.d.ts +24 -24
  84. package/dist/client/SilentFlowClient.js +94 -94
  85. package/dist/config/AppTokenProvider.d.ts +38 -38
  86. package/dist/config/ClientConfiguration.d.ts +133 -133
  87. package/dist/config/ClientConfiguration.js +88 -88
  88. package/dist/crypto/ICrypto.d.ts +62 -62
  89. package/dist/crypto/ICrypto.js +42 -42
  90. package/dist/crypto/IGuidGenerator.d.ts +4 -4
  91. package/dist/crypto/JoseHeader.d.ts +21 -21
  92. package/dist/crypto/JoseHeader.js +36 -36
  93. package/dist/crypto/PopTokenGenerator.d.ts +58 -57
  94. package/dist/crypto/PopTokenGenerator.d.ts.map +1 -1
  95. package/dist/crypto/PopTokenGenerator.js +82 -83
  96. package/dist/crypto/PopTokenGenerator.js.map +1 -1
  97. package/dist/crypto/SignedHttpRequest.d.ts +11 -11
  98. package/dist/error/AuthError.d.ts +47 -47
  99. package/dist/error/AuthError.js +51 -51
  100. package/dist/error/ClientAuthError.d.ts +412 -412
  101. package/dist/error/ClientAuthError.js +519 -519
  102. package/dist/error/ClientConfigurationError.d.ts +206 -198
  103. package/dist/error/ClientConfigurationError.d.ts.map +1 -1
  104. package/dist/error/ClientConfigurationError.js +259 -249
  105. package/dist/error/ClientConfigurationError.js.map +1 -1
  106. package/dist/error/InteractionRequiredAuthError.d.ts +59 -59
  107. package/dist/error/InteractionRequiredAuthError.js +78 -78
  108. package/dist/error/JoseHeaderError.d.ts +28 -28
  109. package/dist/error/JoseHeaderError.js +39 -39
  110. package/dist/error/ServerError.d.ts +7 -7
  111. package/dist/error/ServerError.js +14 -14
  112. package/dist/index.cjs.js +8826 -8813
  113. package/dist/index.cjs.js.map +1 -1
  114. package/dist/index.d.ts +93 -93
  115. package/dist/index.js +1 -1
  116. package/dist/logger/Logger.d.ts +95 -95
  117. package/dist/logger/Logger.js +197 -197
  118. package/dist/network/INetworkModule.d.ts +29 -29
  119. package/dist/network/INetworkModule.js +14 -14
  120. package/dist/network/NetworkManager.d.ts +32 -32
  121. package/dist/network/NetworkManager.js +33 -33
  122. package/dist/network/RequestThumbprint.d.ts +16 -16
  123. package/dist/network/ThrottlingUtils.d.ts +41 -41
  124. package/dist/network/ThrottlingUtils.js +94 -94
  125. package/dist/packageMetadata.d.ts +2 -2
  126. package/dist/packageMetadata.d.ts.map +1 -1
  127. package/dist/packageMetadata.js +4 -4
  128. package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
  129. package/dist/request/AuthenticationHeaderParser.js +55 -55
  130. package/dist/request/BaseAuthRequest.d.ts +37 -37
  131. package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
  132. package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
  133. package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
  134. package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
  135. package/dist/request/CommonEndSessionRequest.d.ts +21 -21
  136. package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
  137. package/dist/request/CommonRefreshTokenRequest.d.ts +19 -19
  138. package/dist/request/CommonSilentFlowRequest.d.ts +18 -18
  139. package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
  140. package/dist/request/NativeRequest.d.ts +19 -19
  141. package/dist/request/NativeSignOutRequest.d.ts +5 -5
  142. package/dist/request/RequestParameterBuilder.d.ts +216 -216
  143. package/dist/request/RequestParameterBuilder.js +374 -374
  144. package/dist/request/RequestValidator.d.ts +33 -33
  145. package/dist/request/RequestValidator.js +82 -83
  146. package/dist/request/RequestValidator.js.map +1 -1
  147. package/dist/request/ScopeSet.d.ts +88 -88
  148. package/dist/request/ScopeSet.js +197 -197
  149. package/dist/response/AuthenticationResult.d.ts +39 -39
  150. package/dist/response/AuthorizationCodePayload.d.ts +13 -13
  151. package/dist/response/DeviceCodeResponse.d.ts +25 -25
  152. package/dist/response/ExternalTokenResponse.d.ts +15 -15
  153. package/dist/response/IMDSBadResponse.d.ts +4 -4
  154. package/dist/response/ResponseHandler.d.ts +72 -72
  155. package/dist/response/ResponseHandler.js +300 -300
  156. package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
  157. package/dist/response/ServerAuthorizationTokenResponse.d.ts +44 -44
  158. package/dist/telemetry/performance/IPerformanceClient.d.ts +42 -42
  159. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
  160. package/dist/telemetry/performance/PerformanceClient.d.ts +189 -189
  161. package/dist/telemetry/performance/PerformanceClient.js +406 -406
  162. package/dist/telemetry/performance/PerformanceEvent.d.ts +441 -439
  163. package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
  164. package/dist/telemetry/performance/PerformanceEvent.js +225 -227
  165. package/dist/telemetry/performance/PerformanceEvent.js.map +1 -1
  166. package/dist/telemetry/performance/StubPerformanceClient.d.ts +15 -19
  167. package/dist/telemetry/performance/StubPerformanceClient.d.ts.map +1 -1
  168. package/dist/telemetry/performance/StubPerformanceClient.js +22 -36
  169. package/dist/telemetry/performance/StubPerformanceClient.js.map +1 -1
  170. package/dist/telemetry/server/ServerTelemetryManager.d.ts +65 -65
  171. package/dist/telemetry/server/ServerTelemetryManager.js +196 -196
  172. package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
  173. package/dist/url/IUri.d.ts +12 -12
  174. package/dist/url/UrlString.d.ts +70 -70
  175. package/dist/url/UrlString.js +242 -242
  176. package/dist/utils/Constants.d.ts +345 -331
  177. package/dist/utils/Constants.d.ts.map +1 -1
  178. package/dist/utils/Constants.js +353 -373
  179. package/dist/utils/Constants.js.map +1 -1
  180. package/dist/utils/MsalTypes.d.ts +6 -6
  181. package/dist/utils/ProtocolUtils.d.ts +42 -42
  182. package/dist/utils/ProtocolUtils.js +71 -71
  183. package/dist/utils/StringUtils.d.ts +53 -53
  184. package/dist/utils/StringUtils.js +124 -124
  185. package/dist/utils/TimeUtils.d.ts +27 -27
  186. package/dist/utils/TimeUtils.js +45 -45
  187. package/package.json +86 -79
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v14.0.0-alpha.1 2023-05-08 */
1
+ /*! @azure/msal-common v14.0.0-beta.0 2023-06-19 */
2
2
  'use strict';
3
3
  import { BaseClient } from './BaseClient.js';
4
4
  import { AuthToken } from '../account/AuthToken.js';
@@ -9,99 +9,99 @@ import { ClientConfigurationError } from '../error/ClientConfigurationError.js';
9
9
  import { ResponseHandler } from '../response/ResponseHandler.js';
10
10
  import { CacheOutcome } from '../utils/Constants.js';
11
11
 
12
- /*
13
- * Copyright (c) Microsoft Corporation. All rights reserved.
14
- * Licensed under the MIT License.
15
- */
16
- class SilentFlowClient extends BaseClient {
17
- constructor(configuration, performanceClient) {
18
- super(configuration, performanceClient);
19
- }
20
- /**
21
- * Retrieves a token from cache if it is still valid, or uses the cached refresh token to renew
22
- * the given token and returns the renewed token
23
- * @param request
24
- */
25
- async acquireToken(request) {
26
- try {
27
- return await this.acquireCachedToken(request);
28
- }
29
- catch (e) {
30
- if (e instanceof ClientAuthError &&
31
- e.errorCode === ClientAuthErrorMessage.tokenRefreshRequired.code) {
32
- const refreshTokenClient = new RefreshTokenClient(this.config, this.performanceClient);
33
- return refreshTokenClient.acquireTokenByRefreshToken(request);
34
- }
35
- else {
36
- throw e;
37
- }
38
- }
39
- }
40
- /**
41
- * Retrieves token from cache or throws an error if it must be refreshed.
42
- * @param request
43
- */
44
- async acquireCachedToken(request) {
45
- // Cannot renew token if no request object is given.
46
- if (!request) {
47
- throw ClientConfigurationError.createEmptyTokenRequestError();
48
- }
49
- if (request.forceRefresh) {
50
- // Must refresh due to present force_refresh flag.
51
- this.serverTelemetryManager?.setCacheOutcome(CacheOutcome.FORCE_REFRESH);
52
- this.logger.info("SilentFlowClient:acquireCachedToken - Skipping cache because forceRefresh is true.");
53
- throw ClientAuthError.createRefreshRequiredError();
54
- }
55
- // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases
56
- if (!request.account) {
57
- throw ClientAuthError.createNoAccountInSilentRequestError();
58
- }
59
- const environment = request.authority || this.authority.getPreferredCache();
60
- const cacheRecord = this.cacheManager.readCacheRecord(request.account, request, environment);
61
- if (!cacheRecord.accessToken) {
62
- // Must refresh due to non-existent access_token.
63
- this.serverTelemetryManager?.setCacheOutcome(CacheOutcome.NO_CACHED_ACCESS_TOKEN);
64
- this.logger.info("SilentFlowClient:acquireCachedToken - No access token found in cache for the given properties.");
65
- throw ClientAuthError.createRefreshRequiredError();
66
- }
67
- else if (TimeUtils.wasClockTurnedBack(cacheRecord.accessToken.cachedAt) ||
68
- TimeUtils.isTokenExpired(cacheRecord.accessToken.expiresOn, this.config.systemOptions.tokenRenewalOffsetSeconds)) {
69
- // Must refresh due to expired access_token.
70
- this.serverTelemetryManager?.setCacheOutcome(CacheOutcome.CACHED_ACCESS_TOKEN_EXPIRED);
71
- this.logger.info(`SilentFlowClient:acquireCachedToken - Cached access token is expired or will expire within ${this.config.systemOptions.tokenRenewalOffsetSeconds} seconds.`);
72
- throw ClientAuthError.createRefreshRequiredError();
73
- }
74
- else if (cacheRecord.accessToken.refreshOn &&
75
- TimeUtils.isTokenExpired(cacheRecord.accessToken.refreshOn, 0)) {
76
- // Must refresh due to the refresh_in value.
77
- this.serverTelemetryManager?.setCacheOutcome(CacheOutcome.REFRESH_CACHED_ACCESS_TOKEN);
78
- this.logger.info("SilentFlowClient:acquireCachedToken - Cached access token's refreshOn property has been exceeded'.");
79
- throw ClientAuthError.createRefreshRequiredError();
80
- }
81
- if (this.config.serverTelemetryManager) {
82
- this.config.serverTelemetryManager.incrementCacheHits();
83
- }
84
- return await this.generateResultFromCacheRecord(cacheRecord, request);
85
- }
86
- /**
87
- * Helper function to build response object from the CacheRecord
88
- * @param cacheRecord
89
- */
90
- async generateResultFromCacheRecord(cacheRecord, request) {
91
- let idTokenObj;
92
- if (cacheRecord.idToken) {
93
- idTokenObj = new AuthToken(cacheRecord.idToken.secret, this.config.cryptoInterface);
94
- }
95
- // token max_age check
96
- if (request.maxAge || request.maxAge === 0) {
97
- const authTime = idTokenObj?.claims.auth_time;
98
- if (!authTime) {
99
- throw ClientAuthError.createAuthTimeNotFoundError();
100
- }
101
- AuthToken.checkMaxAge(authTime, request.maxAge);
102
- }
103
- return await ResponseHandler.generateAuthenticationResult(this.cryptoUtils, this.authority, cacheRecord, true, request, idTokenObj);
104
- }
12
+ /*
13
+ * Copyright (c) Microsoft Corporation. All rights reserved.
14
+ * Licensed under the MIT License.
15
+ */
16
+ class SilentFlowClient extends BaseClient {
17
+ constructor(configuration, performanceClient) {
18
+ super(configuration, performanceClient);
19
+ }
20
+ /**
21
+ * Retrieves a token from cache if it is still valid, or uses the cached refresh token to renew
22
+ * the given token and returns the renewed token
23
+ * @param request
24
+ */
25
+ async acquireToken(request) {
26
+ try {
27
+ return await this.acquireCachedToken(request);
28
+ }
29
+ catch (e) {
30
+ if (e instanceof ClientAuthError &&
31
+ e.errorCode === ClientAuthErrorMessage.tokenRefreshRequired.code) {
32
+ const refreshTokenClient = new RefreshTokenClient(this.config, this.performanceClient);
33
+ return refreshTokenClient.acquireTokenByRefreshToken(request);
34
+ }
35
+ else {
36
+ throw e;
37
+ }
38
+ }
39
+ }
40
+ /**
41
+ * Retrieves token from cache or throws an error if it must be refreshed.
42
+ * @param request
43
+ */
44
+ async acquireCachedToken(request) {
45
+ // Cannot renew token if no request object is given.
46
+ if (!request) {
47
+ throw ClientConfigurationError.createEmptyTokenRequestError();
48
+ }
49
+ if (request.forceRefresh) {
50
+ // Must refresh due to present force_refresh flag.
51
+ this.serverTelemetryManager?.setCacheOutcome(CacheOutcome.FORCE_REFRESH);
52
+ this.logger.info("SilentFlowClient:acquireCachedToken - Skipping cache because forceRefresh is true.");
53
+ throw ClientAuthError.createRefreshRequiredError();
54
+ }
55
+ // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases
56
+ if (!request.account) {
57
+ throw ClientAuthError.createNoAccountInSilentRequestError();
58
+ }
59
+ const environment = request.authority || this.authority.getPreferredCache();
60
+ const cacheRecord = this.cacheManager.readCacheRecord(request.account, request, environment);
61
+ if (!cacheRecord.accessToken) {
62
+ // Must refresh due to non-existent access_token.
63
+ this.serverTelemetryManager?.setCacheOutcome(CacheOutcome.NO_CACHED_ACCESS_TOKEN);
64
+ this.logger.info("SilentFlowClient:acquireCachedToken - No access token found in cache for the given properties.");
65
+ throw ClientAuthError.createRefreshRequiredError();
66
+ }
67
+ else if (TimeUtils.wasClockTurnedBack(cacheRecord.accessToken.cachedAt) ||
68
+ TimeUtils.isTokenExpired(cacheRecord.accessToken.expiresOn, this.config.systemOptions.tokenRenewalOffsetSeconds)) {
69
+ // Must refresh due to expired access_token.
70
+ this.serverTelemetryManager?.setCacheOutcome(CacheOutcome.CACHED_ACCESS_TOKEN_EXPIRED);
71
+ this.logger.info(`SilentFlowClient:acquireCachedToken - Cached access token is expired or will expire within ${this.config.systemOptions.tokenRenewalOffsetSeconds} seconds.`);
72
+ throw ClientAuthError.createRefreshRequiredError();
73
+ }
74
+ else if (cacheRecord.accessToken.refreshOn &&
75
+ TimeUtils.isTokenExpired(cacheRecord.accessToken.refreshOn, 0)) {
76
+ // Must refresh due to the refresh_in value.
77
+ this.serverTelemetryManager?.setCacheOutcome(CacheOutcome.REFRESH_CACHED_ACCESS_TOKEN);
78
+ this.logger.info("SilentFlowClient:acquireCachedToken - Cached access token's refreshOn property has been exceeded'.");
79
+ throw ClientAuthError.createRefreshRequiredError();
80
+ }
81
+ if (this.config.serverTelemetryManager) {
82
+ this.config.serverTelemetryManager.incrementCacheHits();
83
+ }
84
+ return await this.generateResultFromCacheRecord(cacheRecord, request);
85
+ }
86
+ /**
87
+ * Helper function to build response object from the CacheRecord
88
+ * @param cacheRecord
89
+ */
90
+ async generateResultFromCacheRecord(cacheRecord, request) {
91
+ let idTokenObj;
92
+ if (cacheRecord.idToken) {
93
+ idTokenObj = new AuthToken(cacheRecord.idToken.secret, this.config.cryptoInterface);
94
+ }
95
+ // token max_age check
96
+ if (request.maxAge || request.maxAge === 0) {
97
+ const authTime = idTokenObj?.claims.auth_time;
98
+ if (!authTime) {
99
+ throw ClientAuthError.createAuthTimeNotFoundError();
100
+ }
101
+ AuthToken.checkMaxAge(authTime, request.maxAge);
102
+ }
103
+ return await ResponseHandler.generateAuthenticationResult(this.cryptoUtils, this.authority, cacheRecord, true, request, idTokenObj);
104
+ }
105
105
  }
106
106
 
107
107
  export { SilentFlowClient };
@@ -1,39 +1,39 @@
1
- /**
2
- * Extensibility interface, which allows the app developer to return a token, based on the passed-in parameters, instead of fetching tokens from
3
- * the Identity Provider (AAD).
4
- * Developers need to construct and return an AppTokenProviderResult object back to MSAL. MSAL will cache the token response
5
- * in the same way it would do if the result were comming from AAD.
6
- * This extensibility point is only defined for the client_credential flow, i.e. acquireTokenByClientCredential and
7
- * meant for Azure SDK to enhance Managed Identity support.
8
- */
9
- export interface IAppTokenProvider {
10
- (appTokenProviderParameters: AppTokenProviderParameters): Promise<AppTokenProviderResult>;
11
- }
12
- /**
13
- * Input object for the IAppTokenProvider extensiblity. MSAL will create this object, which can be used
14
- * to help create an AppTokenProviderResult.
15
- *
16
- * - correlationId - the correlation Id associated with the request
17
- * - tenantId - the tenant Id for which the token must be provided
18
- * - scopes - the scopes for which the token must be provided
19
- * - claims - any extra claims that the token must satisfy
20
- */
21
- export type AppTokenProviderParameters = {
22
- readonly correlationId?: string;
23
- readonly tenantId: string;
24
- readonly scopes: Array<string>;
25
- readonly claims?: string;
26
- };
27
- /**
28
- * Output object for IAppTokenProvider extensiblity.
29
- *
30
- * - accessToken - the actual access token, typically in JWT format, that satisfies the request data AppTokenProviderParameters
31
- * - expiresInSeconds - how long the tokens has before expiry, in seconds. Similar to the "expires_in" field in an AAD token response.
32
- * - refreshInSeconds - how long the token has before it should be proactively refreshed. Similar to the "refresh_in" field in an AAD token response.
33
- */
34
- export type AppTokenProviderResult = {
35
- accessToken: string;
36
- expiresInSeconds: number;
37
- refreshInSeconds?: number;
38
- };
1
+ /**
2
+ * Extensibility interface, which allows the app developer to return a token, based on the passed-in parameters, instead of fetching tokens from
3
+ * the Identity Provider (AAD).
4
+ * Developers need to construct and return an AppTokenProviderResult object back to MSAL. MSAL will cache the token response
5
+ * in the same way it would do if the result were comming from AAD.
6
+ * This extensibility point is only defined for the client_credential flow, i.e. acquireTokenByClientCredential and
7
+ * meant for Azure SDK to enhance Managed Identity support.
8
+ */
9
+ export interface IAppTokenProvider {
10
+ (appTokenProviderParameters: AppTokenProviderParameters): Promise<AppTokenProviderResult>;
11
+ }
12
+ /**
13
+ * Input object for the IAppTokenProvider extensiblity. MSAL will create this object, which can be used
14
+ * to help create an AppTokenProviderResult.
15
+ *
16
+ * - correlationId - the correlation Id associated with the request
17
+ * - tenantId - the tenant Id for which the token must be provided
18
+ * - scopes - the scopes for which the token must be provided
19
+ * - claims - any extra claims that the token must satisfy
20
+ */
21
+ export type AppTokenProviderParameters = {
22
+ readonly correlationId?: string;
23
+ readonly tenantId: string;
24
+ readonly scopes: Array<string>;
25
+ readonly claims?: string;
26
+ };
27
+ /**
28
+ * Output object for IAppTokenProvider extensiblity.
29
+ *
30
+ * - accessToken - the actual access token, typically in JWT format, that satisfies the request data AppTokenProviderParameters
31
+ * - expiresInSeconds - how long the tokens has before expiry, in seconds. Similar to the "expires_in" field in an AAD token response.
32
+ * - refreshInSeconds - how long the token has before it should be proactively refreshed. Similar to the "refresh_in" field in an AAD token response.
33
+ */
34
+ export type AppTokenProviderResult = {
35
+ accessToken: string;
36
+ expiresInSeconds: number;
37
+ refreshInSeconds?: number;
38
+ };
39
39
  //# sourceMappingURL=AppTokenProvider.d.ts.map
@@ -1,134 +1,134 @@
1
- import { INetworkModule } from "../network/INetworkModule";
2
- import { ICrypto } from "../crypto/ICrypto";
3
- import { ILoggerCallback, LogLevel } from "../logger/Logger";
4
- import { Authority } from "../authority/Authority";
5
- import { AzureCloudInstance } from "../authority/AuthorityOptions";
6
- import { CacheManager } from "../cache/CacheManager";
7
- import { ServerTelemetryManager } from "../telemetry/server/ServerTelemetryManager";
8
- import { ICachePlugin } from "../cache/interface/ICachePlugin";
9
- import { ISerializableTokenCache } from "../cache/interface/ISerializableTokenCache";
10
- import { ClientCredentials } from "../account/ClientCredentials";
11
- /**
12
- * Use the configuration object to configure MSAL Modules and initialize the base interfaces for MSAL.
13
- *
14
- * This object allows you to configure important elements of MSAL functionality:
15
- * - authOptions - Authentication for application
16
- * - cryptoInterface - Implementation of crypto functions
17
- * - libraryInfo - Library metadata
18
- * - telemetry - Telemetry options and data
19
- * - loggerOptions - Logging for application
20
- * - networkInterface - Network implementation
21
- * - storageInterface - Storage implementation
22
- * - systemOptions - Additional library options
23
- * - clientCredentials - Credentials options for confidential clients
24
- */
25
- export type ClientConfiguration = {
26
- authOptions: AuthOptions;
27
- systemOptions?: SystemOptions;
28
- loggerOptions?: LoggerOptions;
29
- storageInterface?: CacheManager;
30
- networkInterface?: INetworkModule;
31
- cryptoInterface?: ICrypto;
32
- clientCredentials?: ClientCredentials;
33
- libraryInfo?: LibraryInfo;
34
- telemetry?: TelemetryOptions;
35
- serverTelemetryManager?: ServerTelemetryManager | null;
36
- persistencePlugin?: ICachePlugin | null;
37
- serializableCache?: ISerializableTokenCache | null;
38
- };
39
- export type CommonClientConfiguration = {
40
- authOptions: Required<AuthOptions>;
41
- systemOptions: Required<SystemOptions>;
42
- loggerOptions: Required<LoggerOptions>;
43
- storageInterface: CacheManager;
44
- networkInterface: INetworkModule;
45
- cryptoInterface: Required<ICrypto>;
46
- libraryInfo: LibraryInfo;
47
- telemetry: Required<TelemetryOptions>;
48
- serverTelemetryManager: ServerTelemetryManager | null;
49
- clientCredentials: ClientCredentials;
50
- persistencePlugin: ICachePlugin | null;
51
- serializableCache: ISerializableTokenCache | null;
52
- };
53
- /**
54
- * Use this to configure the auth options in the ClientConfiguration object
55
- *
56
- * - clientId - Client ID of your app registered with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview in Microsoft Identity Platform
57
- * - authority - You can configure a specific authority, defaults to " " or "https://login.microsoftonline.com/common"
58
- * - knownAuthorities - An array of URIs that are known to be valid. Used in B2C scenarios.
59
- * - cloudDiscoveryMetadata - A string containing the cloud discovery response. Used in AAD scenarios.
60
- * - clientCapabilities - Array of capabilities which will be added to the claims.access_token.xms_cc request property on every network request.
61
- * - protocolMode - Enum that represents the protocol that msal follows. Used for configuring proper endpoints.
62
- * - skipAuthorityMetadataCache - A flag to choose whether to use or not use the local metadata cache during authority initialization. Defaults to false.
63
- */
64
- export type AuthOptions = {
65
- clientId: string;
66
- authority: Authority;
67
- clientCapabilities?: Array<string>;
68
- azureCloudOptions?: AzureCloudOptions;
69
- skipAuthorityMetadataCache?: boolean;
70
- };
71
- /**
72
- * Use this to configure token renewal info in the Configuration object
73
- *
74
- * - tokenRenewalOffsetSeconds - Sets the window of offset needed to renew the token before expiry
75
- */
76
- export type SystemOptions = {
77
- tokenRenewalOffsetSeconds?: number;
78
- preventCorsPreflight?: boolean;
79
- };
80
- /**
81
- * Use this to configure the logging that MSAL does, by configuring logger options in the Configuration object
82
- *
83
- * - loggerCallback - Callback for logger
84
- * - piiLoggingEnabled - Sets whether pii logging is enabled
85
- * - logLevel - Sets the level at which logging happens
86
- * - correlationId - Sets the correlationId printed by the logger
87
- */
88
- export type LoggerOptions = {
89
- loggerCallback?: ILoggerCallback;
90
- piiLoggingEnabled?: boolean;
91
- logLevel?: LogLevel;
92
- correlationId?: string;
93
- };
94
- /**
95
- * Library-specific options
96
- */
97
- export type LibraryInfo = {
98
- sku: string;
99
- version: string;
100
- cpu: string;
101
- os: string;
102
- };
103
- /**
104
- * AzureCloudInstance specific options
105
- *
106
- * - azureCloudInstance - string enum providing short notation for soverign and public cloud authorities
107
- * - tenant - provision to provide the tenant info
108
- */
109
- export type AzureCloudOptions = {
110
- azureCloudInstance: AzureCloudInstance;
111
- tenant?: string;
112
- };
113
- export type TelemetryOptions = {
114
- application: ApplicationTelemetry;
115
- };
116
- /**
117
- * Telemetry information sent on request
118
- * - appName: Unique string name of an application
119
- * - appVersion: Version of the application using MSAL
120
- */
121
- export type ApplicationTelemetry = {
122
- appName: string;
123
- appVersion: string;
124
- };
125
- export declare const DEFAULT_SYSTEM_OPTIONS: Required<SystemOptions>;
126
- /**
127
- * Function that sets the default options when not explicitly configured from app developer
128
- *
129
- * @param Configuration
130
- *
131
- * @returns Configuration
132
- */
133
- export declare function buildClientConfiguration({ authOptions: userAuthOptions, systemOptions: userSystemOptions, loggerOptions: userLoggerOption, storageInterface: storageImplementation, networkInterface: networkImplementation, cryptoInterface: cryptoImplementation, clientCredentials: clientCredentials, libraryInfo: libraryInfo, telemetry: telemetry, serverTelemetryManager: serverTelemetryManager, persistencePlugin: persistencePlugin, serializableCache: serializableCache, }: ClientConfiguration): CommonClientConfiguration;
1
+ import { INetworkModule } from "../network/INetworkModule";
2
+ import { ICrypto } from "../crypto/ICrypto";
3
+ import { ILoggerCallback, LogLevel } from "../logger/Logger";
4
+ import { Authority } from "../authority/Authority";
5
+ import { AzureCloudInstance } from "../authority/AuthorityOptions";
6
+ import { CacheManager } from "../cache/CacheManager";
7
+ import { ServerTelemetryManager } from "../telemetry/server/ServerTelemetryManager";
8
+ import { ICachePlugin } from "../cache/interface/ICachePlugin";
9
+ import { ISerializableTokenCache } from "../cache/interface/ISerializableTokenCache";
10
+ import { ClientCredentials } from "../account/ClientCredentials";
11
+ /**
12
+ * Use the configuration object to configure MSAL Modules and initialize the base interfaces for MSAL.
13
+ *
14
+ * This object allows you to configure important elements of MSAL functionality:
15
+ * - authOptions - Authentication for application
16
+ * - cryptoInterface - Implementation of crypto functions
17
+ * - libraryInfo - Library metadata
18
+ * - telemetry - Telemetry options and data
19
+ * - loggerOptions - Logging for application
20
+ * - networkInterface - Network implementation
21
+ * - storageInterface - Storage implementation
22
+ * - systemOptions - Additional library options
23
+ * - clientCredentials - Credentials options for confidential clients
24
+ */
25
+ export type ClientConfiguration = {
26
+ authOptions: AuthOptions;
27
+ systemOptions?: SystemOptions;
28
+ loggerOptions?: LoggerOptions;
29
+ storageInterface?: CacheManager;
30
+ networkInterface?: INetworkModule;
31
+ cryptoInterface?: ICrypto;
32
+ clientCredentials?: ClientCredentials;
33
+ libraryInfo?: LibraryInfo;
34
+ telemetry?: TelemetryOptions;
35
+ serverTelemetryManager?: ServerTelemetryManager | null;
36
+ persistencePlugin?: ICachePlugin | null;
37
+ serializableCache?: ISerializableTokenCache | null;
38
+ };
39
+ export type CommonClientConfiguration = {
40
+ authOptions: Required<AuthOptions>;
41
+ systemOptions: Required<SystemOptions>;
42
+ loggerOptions: Required<LoggerOptions>;
43
+ storageInterface: CacheManager;
44
+ networkInterface: INetworkModule;
45
+ cryptoInterface: Required<ICrypto>;
46
+ libraryInfo: LibraryInfo;
47
+ telemetry: Required<TelemetryOptions>;
48
+ serverTelemetryManager: ServerTelemetryManager | null;
49
+ clientCredentials: ClientCredentials;
50
+ persistencePlugin: ICachePlugin | null;
51
+ serializableCache: ISerializableTokenCache | null;
52
+ };
53
+ /**
54
+ * Use this to configure the auth options in the ClientConfiguration object
55
+ *
56
+ * - clientId - Client ID of your app registered with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview in Microsoft Identity Platform
57
+ * - authority - You can configure a specific authority, defaults to " " or "https://login.microsoftonline.com/common"
58
+ * - knownAuthorities - An array of URIs that are known to be valid. Used in B2C scenarios.
59
+ * - cloudDiscoveryMetadata - A string containing the cloud discovery response. Used in AAD scenarios.
60
+ * - clientCapabilities - Array of capabilities which will be added to the claims.access_token.xms_cc request property on every network request.
61
+ * - protocolMode - Enum that represents the protocol that msal follows. Used for configuring proper endpoints.
62
+ * - skipAuthorityMetadataCache - A flag to choose whether to use or not use the local metadata cache during authority initialization. Defaults to false.
63
+ */
64
+ export type AuthOptions = {
65
+ clientId: string;
66
+ authority: Authority;
67
+ clientCapabilities?: Array<string>;
68
+ azureCloudOptions?: AzureCloudOptions;
69
+ skipAuthorityMetadataCache?: boolean;
70
+ };
71
+ /**
72
+ * Use this to configure token renewal info in the Configuration object
73
+ *
74
+ * - tokenRenewalOffsetSeconds - Sets the window of offset needed to renew the token before expiry
75
+ */
76
+ export type SystemOptions = {
77
+ tokenRenewalOffsetSeconds?: number;
78
+ preventCorsPreflight?: boolean;
79
+ };
80
+ /**
81
+ * Use this to configure the logging that MSAL does, by configuring logger options in the Configuration object
82
+ *
83
+ * - loggerCallback - Callback for logger
84
+ * - piiLoggingEnabled - Sets whether pii logging is enabled
85
+ * - logLevel - Sets the level at which logging happens
86
+ * - correlationId - Sets the correlationId printed by the logger
87
+ */
88
+ export type LoggerOptions = {
89
+ loggerCallback?: ILoggerCallback;
90
+ piiLoggingEnabled?: boolean;
91
+ logLevel?: LogLevel;
92
+ correlationId?: string;
93
+ };
94
+ /**
95
+ * Library-specific options
96
+ */
97
+ export type LibraryInfo = {
98
+ sku: string;
99
+ version: string;
100
+ cpu: string;
101
+ os: string;
102
+ };
103
+ /**
104
+ * AzureCloudInstance specific options
105
+ *
106
+ * - azureCloudInstance - string enum providing short notation for soverign and public cloud authorities
107
+ * - tenant - provision to provide the tenant info
108
+ */
109
+ export type AzureCloudOptions = {
110
+ azureCloudInstance: AzureCloudInstance;
111
+ tenant?: string;
112
+ };
113
+ export type TelemetryOptions = {
114
+ application: ApplicationTelemetry;
115
+ };
116
+ /**
117
+ * Telemetry information sent on request
118
+ * - appName: Unique string name of an application
119
+ * - appVersion: Version of the application using MSAL
120
+ */
121
+ export type ApplicationTelemetry = {
122
+ appName: string;
123
+ appVersion: string;
124
+ };
125
+ export declare const DEFAULT_SYSTEM_OPTIONS: Required<SystemOptions>;
126
+ /**
127
+ * Function that sets the default options when not explicitly configured from app developer
128
+ *
129
+ * @param Configuration
130
+ *
131
+ * @returns Configuration
132
+ */
133
+ export declare function buildClientConfiguration({ authOptions: userAuthOptions, systemOptions: userSystemOptions, loggerOptions: userLoggerOption, storageInterface: storageImplementation, networkInterface: networkImplementation, cryptoInterface: cryptoImplementation, clientCredentials: clientCredentials, libraryInfo: libraryInfo, telemetry: telemetry, serverTelemetryManager: serverTelemetryManager, persistencePlugin: persistencePlugin, serializableCache: serializableCache, }: ClientConfiguration): CommonClientConfiguration;
134
134
  //# sourceMappingURL=ClientConfiguration.d.ts.map