@azure/msal-common 13.0.0 → 13.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 (143) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +62 -62
  3. package/dist/_virtual/_tslib.js +1 -1
  4. package/dist/account/AuthToken.js +1 -1
  5. package/dist/account/AuthToken.js.map +1 -1
  6. package/dist/account/CcsCredential.js +1 -1
  7. package/dist/account/CcsCredential.js.map +1 -1
  8. package/dist/account/ClientInfo.js +1 -1
  9. package/dist/account/ClientInfo.js.map +1 -1
  10. package/dist/authority/Authority.d.ts +14 -0
  11. package/dist/authority/Authority.d.ts.map +1 -1
  12. package/dist/authority/Authority.js +87 -59
  13. package/dist/authority/Authority.js.map +1 -1
  14. package/dist/authority/AuthorityFactory.js +1 -1
  15. package/dist/authority/AuthorityFactory.js.map +1 -1
  16. package/dist/authority/AuthorityMetadata.js +1 -1
  17. package/dist/authority/AuthorityMetadata.js.map +1 -1
  18. package/dist/authority/AuthorityOptions.js +1 -1
  19. package/dist/authority/AuthorityOptions.js.map +1 -1
  20. package/dist/authority/AuthorityType.js +1 -1
  21. package/dist/authority/AuthorityType.js.map +1 -1
  22. package/dist/authority/CloudInstanceDiscoveryErrorResponse.js +1 -1
  23. package/dist/authority/CloudInstanceDiscoveryErrorResponse.js.map +1 -1
  24. package/dist/authority/CloudInstanceDiscoveryResponse.js +1 -1
  25. package/dist/authority/CloudInstanceDiscoveryResponse.js.map +1 -1
  26. package/dist/authority/OpenIdConfigResponse.js +1 -1
  27. package/dist/authority/OpenIdConfigResponse.js.map +1 -1
  28. package/dist/authority/ProtocolMode.js +1 -1
  29. package/dist/authority/ProtocolMode.js.map +1 -1
  30. package/dist/authority/RegionDiscovery.js +1 -1
  31. package/dist/authority/RegionDiscovery.js.map +1 -1
  32. package/dist/cache/CacheManager.js +1 -1
  33. package/dist/cache/CacheManager.js.map +1 -1
  34. package/dist/cache/entities/AccessTokenEntity.js +1 -1
  35. package/dist/cache/entities/AccessTokenEntity.js.map +1 -1
  36. package/dist/cache/entities/AccountEntity.js +1 -1
  37. package/dist/cache/entities/AccountEntity.js.map +1 -1
  38. package/dist/cache/entities/AppMetadataEntity.js +1 -1
  39. package/dist/cache/entities/AppMetadataEntity.js.map +1 -1
  40. package/dist/cache/entities/AuthorityMetadataEntity.js +1 -1
  41. package/dist/cache/entities/AuthorityMetadataEntity.js.map +1 -1
  42. package/dist/cache/entities/CacheRecord.js +1 -1
  43. package/dist/cache/entities/CacheRecord.js.map +1 -1
  44. package/dist/cache/entities/CredentialEntity.js +1 -1
  45. package/dist/cache/entities/CredentialEntity.js.map +1 -1
  46. package/dist/cache/entities/IdTokenEntity.js +1 -1
  47. package/dist/cache/entities/IdTokenEntity.js.map +1 -1
  48. package/dist/cache/entities/RefreshTokenEntity.js +1 -1
  49. package/dist/cache/entities/RefreshTokenEntity.js.map +1 -1
  50. package/dist/cache/entities/ServerTelemetryEntity.js +1 -1
  51. package/dist/cache/entities/ServerTelemetryEntity.js.map +1 -1
  52. package/dist/cache/entities/ThrottlingEntity.js +1 -1
  53. package/dist/cache/entities/ThrottlingEntity.js.map +1 -1
  54. package/dist/cache/persistence/TokenCacheContext.js +1 -1
  55. package/dist/cache/persistence/TokenCacheContext.js.map +1 -1
  56. package/dist/client/AuthorizationCodeClient.js +2 -2
  57. package/dist/client/AuthorizationCodeClient.js.map +1 -1
  58. package/dist/client/BaseClient.js +1 -1
  59. package/dist/client/BaseClient.js.map +1 -1
  60. package/dist/client/ClientCredentialClient.js +1 -1
  61. package/dist/client/ClientCredentialClient.js.map +1 -1
  62. package/dist/client/DeviceCodeClient.js +1 -1
  63. package/dist/client/DeviceCodeClient.js.map +1 -1
  64. package/dist/client/OnBehalfOfClient.js +1 -1
  65. package/dist/client/OnBehalfOfClient.js.map +1 -1
  66. package/dist/client/RefreshTokenClient.js +1 -1
  67. package/dist/client/RefreshTokenClient.js.map +1 -1
  68. package/dist/client/SilentFlowClient.d.ts.map +1 -1
  69. package/dist/client/SilentFlowClient.js +15 -8
  70. package/dist/client/SilentFlowClient.js.map +1 -1
  71. package/dist/client/UsernamePasswordClient.js +1 -1
  72. package/dist/client/UsernamePasswordClient.js.map +1 -1
  73. package/dist/config/ClientConfiguration.d.ts +12 -1
  74. package/dist/config/ClientConfiguration.d.ts.map +1 -1
  75. package/dist/config/ClientConfiguration.js +6 -2
  76. package/dist/config/ClientConfiguration.js.map +1 -1
  77. package/dist/crypto/ICrypto.js +1 -1
  78. package/dist/crypto/ICrypto.js.map +1 -1
  79. package/dist/crypto/JoseHeader.js +1 -1
  80. package/dist/crypto/JoseHeader.js.map +1 -1
  81. package/dist/crypto/PopTokenGenerator.js +1 -1
  82. package/dist/crypto/PopTokenGenerator.js.map +1 -1
  83. package/dist/error/AuthError.js +1 -1
  84. package/dist/error/AuthError.js.map +1 -1
  85. package/dist/error/ClientAuthError.js +1 -1
  86. package/dist/error/ClientAuthError.js.map +1 -1
  87. package/dist/error/ClientConfigurationError.d.ts +8 -0
  88. package/dist/error/ClientConfigurationError.d.ts.map +1 -1
  89. package/dist/error/ClientConfigurationError.js +11 -1
  90. package/dist/error/ClientConfigurationError.js.map +1 -1
  91. package/dist/error/InteractionRequiredAuthError.js +1 -1
  92. package/dist/error/InteractionRequiredAuthError.js.map +1 -1
  93. package/dist/error/JoseHeaderError.js +1 -1
  94. package/dist/error/JoseHeaderError.js.map +1 -1
  95. package/dist/error/ServerError.js +1 -1
  96. package/dist/error/ServerError.js.map +1 -1
  97. package/dist/index.cjs.js +117 -68
  98. package/dist/index.cjs.js.map +1 -1
  99. package/dist/index.d.ts +1 -1
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/index.js +1 -1
  102. package/dist/logger/Logger.js +1 -1
  103. package/dist/logger/Logger.js.map +1 -1
  104. package/dist/network/INetworkModule.js +1 -1
  105. package/dist/network/INetworkModule.js.map +1 -1
  106. package/dist/network/NetworkManager.js +1 -1
  107. package/dist/network/NetworkManager.js.map +1 -1
  108. package/dist/network/ThrottlingUtils.js +1 -1
  109. package/dist/network/ThrottlingUtils.js.map +1 -1
  110. package/dist/packageMetadata.d.ts +1 -1
  111. package/dist/packageMetadata.js +2 -2
  112. package/dist/packageMetadata.js.map +1 -1
  113. package/dist/request/AuthenticationHeaderParser.js +1 -1
  114. package/dist/request/AuthenticationHeaderParser.js.map +1 -1
  115. package/dist/request/RequestParameterBuilder.js +1 -1
  116. package/dist/request/RequestParameterBuilder.js.map +1 -1
  117. package/dist/request/RequestValidator.js +1 -1
  118. package/dist/request/RequestValidator.js.map +1 -1
  119. package/dist/request/ScopeSet.js +1 -1
  120. package/dist/request/ScopeSet.js.map +1 -1
  121. package/dist/response/ResponseHandler.js +1 -1
  122. package/dist/response/ResponseHandler.js.map +1 -1
  123. package/dist/telemetry/performance/PerformanceClient.js +1 -1
  124. package/dist/telemetry/performance/PerformanceClient.js.map +1 -1
  125. package/dist/telemetry/performance/PerformanceEvent.js +1 -1
  126. package/dist/telemetry/performance/PerformanceEvent.js.map +1 -1
  127. package/dist/telemetry/performance/StubPerformanceClient.js +1 -1
  128. package/dist/telemetry/performance/StubPerformanceClient.js.map +1 -1
  129. package/dist/telemetry/server/ServerTelemetryManager.js +1 -1
  130. package/dist/telemetry/server/ServerTelemetryManager.js.map +1 -1
  131. package/dist/url/UrlString.js +1 -1
  132. package/dist/url/UrlString.js.map +1 -1
  133. package/dist/utils/Constants.d.ts +2 -1
  134. package/dist/utils/Constants.d.ts.map +1 -1
  135. package/dist/utils/Constants.js +2 -1
  136. package/dist/utils/Constants.js.map +1 -1
  137. package/dist/utils/ProtocolUtils.js +1 -1
  138. package/dist/utils/ProtocolUtils.js.map +1 -1
  139. package/dist/utils/StringUtils.js +1 -1
  140. package/dist/utils/StringUtils.js.map +1 -1
  141. package/dist/utils/TimeUtils.js +1 -1
  142. package/dist/utils/TimeUtils.js.map +1 -1
  143. package/package.json +76 -76
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) Microsoft Corporation. All rights reserved.
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE
1
+ MIT License
2
+
3
+ Copyright (c) Microsoft Corporation. All rights reserved.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE
package/README.md CHANGED
@@ -1,62 +1,62 @@
1
- # Microsoft Authentication Library for JavaScript (MSAL.js) Common Protocols Package
2
-
3
- [![npm version](https://img.shields.io/npm/v/@azure/msal-common.svg?style=flat)](https://www.npmjs.com/package/@azure/msal-common/)
4
- [![npm version](https://img.shields.io/npm/dm/@azure/msal-common.svg)](https://nodei.co/npm/@azure/msal-common/)
5
- [![codecov](https://codecov.io/gh/AzureAD/microsoft-authentication-library-for-js/branch/dev/graph/badge.svg?flag=msal-common)](https://codecov.io/gh/AzureAD/microsoft-authentication-library-for-js)
6
-
7
- | <a href="https://docs.microsoft.com/azure/active-directory/develop/guidedsetups/active-directory-javascriptspa" target="_blank">Getting Started</a> | <a href="https://aka.ms/aaddevv2" target="_blank">AAD Docs</a> | <a href="https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html" target="_blank">Library Reference</a> |
8
- | --- | --- | --- |
9
-
10
- 1. [About](#about)
11
- 2. [FAQ](https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-common/FAQ.md)
12
- 1. [Changelog](https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-common/CHANGELOG.md)
13
- 1. [Releases](#releases)
14
- 1. [Prerequisites and Usage](#prerequisites-and-usage)
15
- 1. [Installation](#installation)
16
- 1. [Security Reporting](#security-reporting)
17
- 1. [License](#license)
18
- 1. [Code of Conduct](#we-value-and-adhere-to-the-microsoft-open-source-code-of-conduct)
19
-
20
- ## About
21
-
22
- The MSAL library for JavaScript enables client-side JavaScript applications to authenticate users using [Azure AD](https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-overview) work and school accounts (AAD), Microsoft personal accounts (MSA) and social identity providers like Facebook, Google, LinkedIn, Microsoft accounts, etc. through [Azure AD B2C](https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-overview#identity-providers) service. It also enables your app to get tokens to access [Microsoft Cloud](https://www.microsoft.com/enterprise) services such as [Microsoft Graph](https://graph.microsoft.io).
23
-
24
- The `@azure/msal-common` package described by the code in this folder serves as a common package dependency for the `@azure/msal-browser` package (and in the future, the msal-node package). Be aware that this is an internal library, and is subject to frequent change. **It is not meant for production consumption by itself.**
25
-
26
- ## FAQ
27
-
28
- See [here](https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-common/FAQ.md).
29
-
30
- ## Releases
31
-
32
- *Expect us to detail our major and minor releases moving forward, while leaving out our patch releases. Patch release notes can be found in our change log.*
33
-
34
- | Date | Release | Announcement | Main features |
35
- | ------| ------- | ---------| --------- |
36
- | August 4, 2020 | @azure/msal-common v1.1.0 | [Release Notes](https://https://github.com/AzureAD/microsoft-authentication-library-for-js/releases/tag/msal-common-v1.1.0)
37
- | July 20, 2020 | @azure/msal-common v1.0.0 | [Release Notes](https://github.com/AzureAD/microsoft-authentication-library-for-js/releases/tag/msal-common-v1.0.0) | Full release version of the `@azure/msal-common` |
38
- | May 11, 2020 | @azure/msal-common v1.0.0-beta | Beta version of the `@azure/msal-common` package |
39
- | January 17, 2020 | @azure/msal-common v1.0.0-alpha | No release notes yet | Alpha version of the `@azure/msal-common` package with authorization code flow for SPAs working in dev. |
40
-
41
- ## Prerequisites and Usage
42
- This library is not meant for production use. Please use one of these packages specific to the platform you are developing for:
43
-
44
- - [MSAL for Single Page Applications (SPAs)](https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-browser)
45
- - [MSAL for Node.js](https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-node)
46
-
47
- ## Installation
48
- ### Via NPM:
49
-
50
- npm install @azure/msal-common
51
-
52
- ## Security Reporting
53
-
54
- If you find a security issue with our libraries or services please report it to [secure@microsoft.com](mailto:secure@microsoft.com) with as much detail as possible. Your submission may be eligible for a bounty through the [Microsoft Bounty](http://aka.ms/bugbounty) program. Please do not post security issues to GitHub Issues or any other public site. We will contact you shortly upon receiving the information. We encourage you to get notifications of when security incidents occur by visiting [this page](https://technet.microsoft.com/en-us/security/dd252948) and subscribing to Security Advisory Alerts.
55
-
56
- ## License
57
-
58
- Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License (the "License");
59
-
60
- ## We Value and Adhere to the Microsoft Open Source Code of Conduct
61
-
62
- This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
1
+ # Microsoft Authentication Library for JavaScript (MSAL.js) Common Protocols Package
2
+
3
+ [![npm version](https://img.shields.io/npm/v/@azure/msal-common.svg?style=flat)](https://www.npmjs.com/package/@azure/msal-common/)
4
+ [![npm version](https://img.shields.io/npm/dm/@azure/msal-common.svg)](https://nodei.co/npm/@azure/msal-common/)
5
+ [![codecov](https://codecov.io/gh/AzureAD/microsoft-authentication-library-for-js/branch/dev/graph/badge.svg?flag=msal-common)](https://codecov.io/gh/AzureAD/microsoft-authentication-library-for-js)
6
+
7
+ | <a href="https://docs.microsoft.com/azure/active-directory/develop/guidedsetups/active-directory-javascriptspa" target="_blank">Getting Started</a> | <a href="https://aka.ms/aaddevv2" target="_blank">AAD Docs</a> | <a href="https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html" target="_blank">Library Reference</a> |
8
+ | --- | --- | --- |
9
+
10
+ 1. [About](#about)
11
+ 2. [FAQ](https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-common/FAQ.md)
12
+ 1. [Changelog](https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-common/CHANGELOG.md)
13
+ 1. [Releases](#releases)
14
+ 1. [Prerequisites and Usage](#prerequisites-and-usage)
15
+ 1. [Installation](#installation)
16
+ 1. [Security Reporting](#security-reporting)
17
+ 1. [License](#license)
18
+ 1. [Code of Conduct](#we-value-and-adhere-to-the-microsoft-open-source-code-of-conduct)
19
+
20
+ ## About
21
+
22
+ The MSAL library for JavaScript enables client-side JavaScript applications to authenticate users using [Azure AD](https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-overview) work and school accounts (AAD), Microsoft personal accounts (MSA) and social identity providers like Facebook, Google, LinkedIn, Microsoft accounts, etc. through [Azure AD B2C](https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-overview#identity-providers) service. It also enables your app to get tokens to access [Microsoft Cloud](https://www.microsoft.com/enterprise) services such as [Microsoft Graph](https://graph.microsoft.io).
23
+
24
+ The `@azure/msal-common` package described by the code in this folder serves as a common package dependency for the `@azure/msal-browser` package (and in the future, the msal-node package). Be aware that this is an internal library, and is subject to frequent change. **It is not meant for production consumption by itself.**
25
+
26
+ ## FAQ
27
+
28
+ See [here](https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-common/FAQ.md).
29
+
30
+ ## Releases
31
+
32
+ *Expect us to detail our major and minor releases moving forward, while leaving out our patch releases. Patch release notes can be found in our change log.*
33
+
34
+ | Date | Release | Announcement | Main features |
35
+ | ------| ------- | ---------| --------- |
36
+ | August 4, 2020 | @azure/msal-common v1.1.0 | [Release Notes](https://https://github.com/AzureAD/microsoft-authentication-library-for-js/releases/tag/msal-common-v1.1.0)
37
+ | July 20, 2020 | @azure/msal-common v1.0.0 | [Release Notes](https://github.com/AzureAD/microsoft-authentication-library-for-js/releases/tag/msal-common-v1.0.0) | Full release version of the `@azure/msal-common` |
38
+ | May 11, 2020 | @azure/msal-common v1.0.0-beta | Beta version of the `@azure/msal-common` package |
39
+ | January 17, 2020 | @azure/msal-common v1.0.0-alpha | No release notes yet | Alpha version of the `@azure/msal-common` package with authorization code flow for SPAs working in dev. |
40
+
41
+ ## Prerequisites and Usage
42
+ This library is not meant for production use. Please use one of these packages specific to the platform you are developing for:
43
+
44
+ - [MSAL for Single Page Applications (SPAs)](https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-browser)
45
+ - [MSAL for Node.js](https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-node)
46
+
47
+ ## Installation
48
+ ### Via NPM:
49
+
50
+ npm install @azure/msal-common
51
+
52
+ ## Security Reporting
53
+
54
+ If you find a security issue with our libraries or services please report it to [secure@microsoft.com](mailto:secure@microsoft.com) with as much detail as possible. Your submission may be eligible for a bounty through the [Microsoft Bounty](http://aka.ms/bugbounty) program. Please do not post security issues to GitHub Issues or any other public site. We will contact you shortly upon receiving the information. We encourage you to get notifications of when security incidents occur by visiting [this page](https://technet.microsoft.com/en-us/security/dd252948) and subscribing to Security Advisory Alerts.
55
+
56
+ ## License
57
+
58
+ Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License (the "License");
59
+
60
+ ## We Value and Adhere to the Microsoft Open Source Code of Conduct
61
+
62
+ This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v13.0.0 2023-05-01 */
1
+ /*! @azure/msal-common v13.2.0 2023-07-05 */
2
2
  'use strict';
3
3
  /*! *****************************************************************************
4
4
  Copyright (c) Microsoft Corporation.
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v13.0.0 2023-05-01 */
1
+ /*! @azure/msal-common v13.2.0 2023-07-05 */
2
2
  'use strict';
3
3
  import { ClientAuthError } from '../error/ClientAuthError.js';
4
4
  import { StringUtils } from '../utils/StringUtils.js';
@@ -1 +1 @@
1
- {"version":3,"file":"AuthToken.js","sources":["../../src/account/AuthToken.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { TokenClaims } from \"./TokenClaims\";\nimport { DecodedAuthToken } from \"./DecodedAuthToken\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { ICrypto } from \"../crypto/ICrypto\";\n\n/**\n * JWT Token representation class. Parses token string and generates claims object.\n */\nexport class AuthToken {\n\n // Raw Token string\n rawToken: string;\n // Claims inside token\n claims: TokenClaims;\n constructor(rawToken: string, crypto: ICrypto) {\n if (StringUtils.isEmpty(rawToken)) {\n throw ClientAuthError.createTokenNullOrEmptyError(rawToken);\n }\n\n this.rawToken = rawToken;\n this.claims = AuthToken.extractTokenClaims(rawToken, crypto);\n }\n\n /**\n * Extract token by decoding the rawToken\n *\n * @param encodedToken\n */\n static extractTokenClaims(encodedToken: string, crypto: ICrypto): TokenClaims {\n\n const decodedToken: DecodedAuthToken = StringUtils.decodeAuthToken(encodedToken);\n\n // token will be decoded to get the username\n try {\n const base64TokenPayload = decodedToken.JWSPayload;\n\n // base64Decode() should throw an error if there is an issue\n const base64Decoded = crypto.base64Decode(base64TokenPayload);\n return JSON.parse(base64Decoded) as TokenClaims;\n } catch (err) {\n throw ClientAuthError.createTokenParsingError(err);\n }\n }\n\n /**\n * Determine if the token's max_age has transpired\n */\n static checkMaxAge(authTime: number, maxAge: number): void {\n /*\n * per https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest\n * To force an immediate re-authentication: If an app requires that a user re-authenticate prior to access,\n * provide a value of 0 for the max_age parameter and the AS will force a fresh login.\n */\n const fiveMinuteSkew = 300000; // five minutes in milliseconds\n if ((maxAge === 0) || ((Date.now() - fiveMinuteSkew) > (authTime + maxAge))) {\n throw ClientAuthError.createMaxAgeTranspiredError();\n }\n }\n}\n"],"names":[],"mappings":";;;;;AAAA;;;AAGG;AAQH;;AAEG;AACH,IAAA,SAAA,kBAAA,YAAA;IAMI,SAAY,SAAA,CAAA,QAAgB,EAAE,MAAe,EAAA;AACzC,QAAA,IAAI,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAC/B,YAAA,MAAM,eAAe,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;AAC/D,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;KAChE;AAED;;;;AAIG;AACI,IAAA,SAAA,CAAA,kBAAkB,GAAzB,UAA0B,YAAoB,EAAE,MAAe,EAAA;QAE3D,IAAM,YAAY,GAAqB,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;;QAGjF,IAAI;AACA,YAAA,IAAM,kBAAkB,GAAG,YAAY,CAAC,UAAU,CAAC;;YAGnD,IAAM,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;AAC9D,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAgB,CAAC;AACnD,SAAA;AAAC,QAAA,OAAO,GAAG,EAAE;AACV,YAAA,MAAM,eAAe,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;AACtD,SAAA;KACJ,CAAA;AAED;;AAEG;AACI,IAAA,SAAA,CAAA,WAAW,GAAlB,UAAmB,QAAgB,EAAE,MAAc,EAAA;AAC/C;;;;AAIG;AACH,QAAA,IAAM,cAAc,GAAG,MAAM,CAAC;QAC9B,IAAI,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,KAAK,QAAQ,GAAG,MAAM,CAAC,CAAC,EAAE;AACzE,YAAA,MAAM,eAAe,CAAC,2BAA2B,EAAE,CAAC;AACvD,SAAA;KACJ,CAAA;IACL,OAAC,SAAA,CAAA;AAAD,CAAC,EAAA;;;;"}
1
+ {"version":3,"file":"AuthToken.js","sources":["../../src/account/AuthToken.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { TokenClaims } from \"./TokenClaims\";\r\nimport { DecodedAuthToken } from \"./DecodedAuthToken\";\r\nimport { ClientAuthError } from \"../error/ClientAuthError\";\r\nimport { StringUtils } from \"../utils/StringUtils\";\r\nimport { ICrypto } from \"../crypto/ICrypto\";\r\n\r\n/**\r\n * JWT Token representation class. Parses token string and generates claims object.\r\n */\r\nexport class AuthToken {\r\n\r\n // Raw Token string\r\n rawToken: string;\r\n // Claims inside token\r\n claims: TokenClaims;\r\n constructor(rawToken: string, crypto: ICrypto) {\r\n if (StringUtils.isEmpty(rawToken)) {\r\n throw ClientAuthError.createTokenNullOrEmptyError(rawToken);\r\n }\r\n\r\n this.rawToken = rawToken;\r\n this.claims = AuthToken.extractTokenClaims(rawToken, crypto);\r\n }\r\n\r\n /**\r\n * Extract token by decoding the rawToken\r\n *\r\n * @param encodedToken\r\n */\r\n static extractTokenClaims(encodedToken: string, crypto: ICrypto): TokenClaims {\r\n\r\n const decodedToken: DecodedAuthToken = StringUtils.decodeAuthToken(encodedToken);\r\n\r\n // token will be decoded to get the username\r\n try {\r\n const base64TokenPayload = decodedToken.JWSPayload;\r\n\r\n // base64Decode() should throw an error if there is an issue\r\n const base64Decoded = crypto.base64Decode(base64TokenPayload);\r\n return JSON.parse(base64Decoded) as TokenClaims;\r\n } catch (err) {\r\n throw ClientAuthError.createTokenParsingError(err);\r\n }\r\n }\r\n\r\n /**\r\n * Determine if the token's max_age has transpired\r\n */\r\n static checkMaxAge(authTime: number, maxAge: number): void {\r\n /*\r\n * per https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest\r\n * To force an immediate re-authentication: If an app requires that a user re-authenticate prior to access,\r\n * provide a value of 0 for the max_age parameter and the AS will force a fresh login.\r\n */\r\n const fiveMinuteSkew = 300000; // five minutes in milliseconds\r\n if ((maxAge === 0) || ((Date.now() - fiveMinuteSkew) > (authTime + maxAge))) {\r\n throw ClientAuthError.createMaxAgeTranspiredError();\r\n }\r\n }\r\n}\r\n"],"names":[],"mappings":";;;;;AAAA;;;AAGG;AAQH;;AAEG;AACH,IAAA,SAAA,kBAAA,YAAA;IAMI,SAAY,SAAA,CAAA,QAAgB,EAAE,MAAe,EAAA;AACzC,QAAA,IAAI,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAC/B,YAAA,MAAM,eAAe,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;AAC/D,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;KAChE;AAED;;;;AAIG;AACI,IAAA,SAAA,CAAA,kBAAkB,GAAzB,UAA0B,YAAoB,EAAE,MAAe,EAAA;QAE3D,IAAM,YAAY,GAAqB,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;;QAGjF,IAAI;AACA,YAAA,IAAM,kBAAkB,GAAG,YAAY,CAAC,UAAU,CAAC;;YAGnD,IAAM,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;AAC9D,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAgB,CAAC;AACnD,SAAA;AAAC,QAAA,OAAO,GAAG,EAAE;AACV,YAAA,MAAM,eAAe,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;AACtD,SAAA;KACJ,CAAA;AAED;;AAEG;AACI,IAAA,SAAA,CAAA,WAAW,GAAlB,UAAmB,QAAgB,EAAE,MAAc,EAAA;AAC/C;;;;AAIG;AACH,QAAA,IAAM,cAAc,GAAG,MAAM,CAAC;QAC9B,IAAI,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,KAAK,QAAQ,GAAG,MAAM,CAAC,CAAC,EAAE;AACzE,YAAA,MAAM,eAAe,CAAC,2BAA2B,EAAE,CAAC;AACvD,SAAA;KACJ,CAAA;IACL,OAAC,SAAA,CAAA;AAAD,CAAC,EAAA;;;;"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v13.0.0 2023-05-01 */
1
+ /*! @azure/msal-common v13.2.0 2023-07-05 */
2
2
  'use strict';
3
3
  /*
4
4
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -1 +1 @@
1
- {"version":3,"file":"CcsCredential.js","sources":["../../src/account/CcsCredential.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport type CcsCredential = {\n credential: string,\n type: CcsCredentialType\n};\n\nexport enum CcsCredentialType {\n HOME_ACCOUNT_ID = \"home_account_id\",\n UPN = \"UPN\"\n}\n"],"names":[],"mappings":";;AAAA;;;AAGG;IAOS,kBAGX;AAHD,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,IAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACf,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,GAG5B,EAAA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"CcsCredential.js","sources":["../../src/account/CcsCredential.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nexport type CcsCredential = {\r\n credential: string,\r\n type: CcsCredentialType\r\n};\r\n\r\nexport enum CcsCredentialType {\r\n HOME_ACCOUNT_ID = \"home_account_id\",\r\n UPN = \"UPN\"\r\n}\r\n"],"names":[],"mappings":";;AAAA;;;AAGG;IAOS,kBAGX;AAHD,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,IAAA,iBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACf,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,GAG5B,EAAA,CAAA,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v13.0.0 2023-05-01 */
1
+ /*! @azure/msal-common v13.2.0 2023-07-05 */
2
2
  'use strict';
3
3
  import { ClientAuthError } from '../error/ClientAuthError.js';
4
4
  import { StringUtils } from '../utils/StringUtils.js';
@@ -1 +1 @@
1
- {"version":3,"file":"ClientInfo.js","sources":["../../src/account/ClientInfo.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { ICrypto } from \"../crypto/ICrypto\";\nimport { Separators, Constants } from \"../utils/Constants\";\n\n/**\n * Client info object which consists of two IDs. Need to add more info here.\n */\nexport type ClientInfo = {\n uid: string,\n utid: string\n};\n\n/**\n * Function to build a client info object from server clientInfo string\n * @param rawClientInfo\n * @param crypto\n */\nexport function buildClientInfo(rawClientInfo: string, crypto: ICrypto): ClientInfo {\n if (StringUtils.isEmpty(rawClientInfo)) {\n throw ClientAuthError.createClientInfoEmptyError();\n }\n\n try {\n const decodedClientInfo: string = crypto.base64Decode(rawClientInfo);\n return JSON.parse(decodedClientInfo) as ClientInfo;\n } catch (e) {\n throw ClientAuthError.createClientInfoDecodingError((e as ClientAuthError).message);\n }\n}\n\n/**\n * Function to build a client info object from cached homeAccountId string\n * @param homeAccountId \n */\nexport function buildClientInfoFromHomeAccountId(homeAccountId: string): ClientInfo {\n if (StringUtils.isEmpty(homeAccountId)) {\n throw ClientAuthError.createClientInfoDecodingError(\"Home account ID was empty.\");\n }\n const clientInfoParts: string[] = homeAccountId.split(Separators.CLIENT_INFO_SEPARATOR, 2);\n return {\n uid: clientInfoParts[0],\n utid: clientInfoParts.length < 2 ? Constants.EMPTY_STRING : clientInfoParts[1]\n };\n}\n"],"names":[],"mappings":";;;;;;AAAA;;;AAGG;AAeH;;;;AAIG;AACa,SAAA,eAAe,CAAC,aAAqB,EAAE,MAAe,EAAA;AAClE,IAAA,IAAI,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;AACpC,QAAA,MAAM,eAAe,CAAC,0BAA0B,EAAE,CAAC;AACtD,KAAA;IAED,IAAI;QACA,IAAM,iBAAiB,GAAW,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;AACrE,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAe,CAAC;AACtD,KAAA;AAAC,IAAA,OAAO,CAAC,EAAE;QACR,MAAM,eAAe,CAAC,6BAA6B,CAAE,CAAqB,CAAC,OAAO,CAAC,CAAC;AACvF,KAAA;AACL,CAAC;AAED;;;AAGG;AACG,SAAU,gCAAgC,CAAC,aAAqB,EAAA;AAClE,IAAA,IAAI,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;AACpC,QAAA,MAAM,eAAe,CAAC,6BAA6B,CAAC,4BAA4B,CAAC,CAAC;AACrF,KAAA;AACD,IAAA,IAAM,eAAe,GAAa,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;IAC3F,OAAO;AACH,QAAA,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;AACvB,QAAA,IAAI,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC;KACjF,CAAC;AACN;;;;"}
1
+ {"version":3,"file":"ClientInfo.js","sources":["../../src/account/ClientInfo.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { ClientAuthError } from \"../error/ClientAuthError\";\r\nimport { StringUtils } from \"../utils/StringUtils\";\r\nimport { ICrypto } from \"../crypto/ICrypto\";\r\nimport { Separators, Constants } from \"../utils/Constants\";\r\n\r\n/**\r\n * Client info object which consists of two IDs. Need to add more info here.\r\n */\r\nexport type ClientInfo = {\r\n uid: string,\r\n utid: string\r\n};\r\n\r\n/**\r\n * Function to build a client info object from server clientInfo string\r\n * @param rawClientInfo\r\n * @param crypto\r\n */\r\nexport function buildClientInfo(rawClientInfo: string, crypto: ICrypto): ClientInfo {\r\n if (StringUtils.isEmpty(rawClientInfo)) {\r\n throw ClientAuthError.createClientInfoEmptyError();\r\n }\r\n\r\n try {\r\n const decodedClientInfo: string = crypto.base64Decode(rawClientInfo);\r\n return JSON.parse(decodedClientInfo) as ClientInfo;\r\n } catch (e) {\r\n throw ClientAuthError.createClientInfoDecodingError((e as ClientAuthError).message);\r\n }\r\n}\r\n\r\n/**\r\n * Function to build a client info object from cached homeAccountId string\r\n * @param homeAccountId \r\n */\r\nexport function buildClientInfoFromHomeAccountId(homeAccountId: string): ClientInfo {\r\n if (StringUtils.isEmpty(homeAccountId)) {\r\n throw ClientAuthError.createClientInfoDecodingError(\"Home account ID was empty.\");\r\n }\r\n const clientInfoParts: string[] = homeAccountId.split(Separators.CLIENT_INFO_SEPARATOR, 2);\r\n return {\r\n uid: clientInfoParts[0],\r\n utid: clientInfoParts.length < 2 ? Constants.EMPTY_STRING : clientInfoParts[1]\r\n };\r\n}\r\n"],"names":[],"mappings":";;;;;;AAAA;;;AAGG;AAeH;;;;AAIG;AACa,SAAA,eAAe,CAAC,aAAqB,EAAE,MAAe,EAAA;AAClE,IAAA,IAAI,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;AACpC,QAAA,MAAM,eAAe,CAAC,0BAA0B,EAAE,CAAC;AACtD,KAAA;IAED,IAAI;QACA,IAAM,iBAAiB,GAAW,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;AACrE,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAe,CAAC;AACtD,KAAA;AAAC,IAAA,OAAO,CAAC,EAAE;QACR,MAAM,eAAe,CAAC,6BAA6B,CAAE,CAAqB,CAAC,OAAO,CAAC,CAAC;AACvF,KAAA;AACL,CAAC;AAED;;;AAGG;AACG,SAAU,gCAAgC,CAAC,aAAqB,EAAA;AAClE,IAAA,IAAI,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;AACpC,QAAA,MAAM,eAAe,CAAC,6BAA6B,CAAC,4BAA4B,CAAC,CAAC;AACrF,KAAA;AACD,IAAA,IAAM,eAAe,GAAa,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;IAC3F,OAAO;AACH,QAAA,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;AACvB,QAAA,IAAI,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC;KACjF,CAAC;AACN;;;;"}
@@ -26,7 +26,14 @@ export declare class Authority {
26
26
  private logger;
27
27
  protected performanceClient: IPerformanceClient | undefined;
28
28
  protected correlationId: string | undefined;
29
+ private static reservedTenantDomains;
29
30
  constructor(authority: string, networkInterface: INetworkModule, cacheManager: ICacheManager, authorityOptions: AuthorityOptions, logger: Logger, performanceClient?: IPerformanceClient, correlationId?: string);
31
+ /**
32
+ * Get {@link AuthorityType}
33
+ * @param authorityUri {@link IUri}
34
+ * @private
35
+ */
36
+ private getAuthorityType;
30
37
  get authorityType(): AuthorityType;
31
38
  /**
32
39
  * ProtocolMode enum representing the way endpoints are constructed.
@@ -77,6 +84,12 @@ export declare class Authority {
77
84
  * Jwks_uri for token signing keys
78
85
  */
79
86
  get jwksUri(): string;
87
+ /**
88
+ * Returns a flag indicating that tenant name can be replaced in authority {@link IUri}
89
+ * @param authorityUri {@link IUri}
90
+ * @private
91
+ */
92
+ private canReplaceTenant;
80
93
  /**
81
94
  * Replaces tenant in url path with current tenant. Defaults to common.
82
95
  * @param urlString
@@ -128,6 +141,7 @@ export declare class Authority {
128
141
  private getEndpointMetadataFromHardcodedValues;
129
142
  /**
130
143
  * Update the retrieved metadata with regional information.
144
+ * User selected Azure region will be used if configured.
131
145
  */
132
146
  private updateMetadataWithRegionalInformation;
133
147
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Authority.d.ts","sourceRoot":"","sources":["../../src/authority/Authority.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Authority.d.ts","sourceRoot":"","sources":["../../src/authority/Authority.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- /*! @azure/msal-common v13.0.0 2023-05-01 */
1
+ /*! @azure/msal-common v13.2.0 2023-07-05 */
2
2
  'use strict';
3
3
  import { __awaiter, __generator, __assign } from '../_virtual/_tslib.js';
4
4
  import { AuthorityType } from './AuthorityType.js';
5
5
  import { isOpenIdConfigResponse } from './OpenIdConfigResponse.js';
6
6
  import { UrlString } from '../url/UrlString.js';
7
7
  import { ClientAuthError } from '../error/ClientAuthError.js';
8
- import { Constants, AuthorityMetadataSource, RegionDiscoveryOutcomes } from '../utils/Constants.js';
8
+ import { Constants, AADAuthorityConstants, AuthorityMetadataSource, RegionDiscoveryOutcomes } from '../utils/Constants.js';
9
9
  import { EndpointMetadata, InstanceDiscoveryMetadata } from './AuthorityMetadata.js';
10
10
  import { ClientConfigurationError } from '../error/ClientConfigurationError.js';
11
11
  import { ProtocolMode } from './ProtocolMode.js';
@@ -38,23 +38,31 @@ var Authority = /** @class */ (function () {
38
38
  this.correlationId = correlationId;
39
39
  this.regionDiscovery = new RegionDiscovery(networkInterface, this.performanceClient, this.correlationId);
40
40
  }
41
+ /**
42
+ * Get {@link AuthorityType}
43
+ * @param authorityUri {@link IUri}
44
+ * @private
45
+ */
46
+ Authority.prototype.getAuthorityType = function (authorityUri) {
47
+ // CIAM auth url pattern is being standardized as: <tenant>.ciamlogin.com
48
+ if (authorityUri.HostNameAndPort.endsWith(Constants.CIAM_AUTH_URL)) {
49
+ return AuthorityType.Ciam;
50
+ }
51
+ var pathSegments = authorityUri.PathSegments;
52
+ if (pathSegments.length) {
53
+ switch (pathSegments[0].toLowerCase()) {
54
+ case Constants.ADFS:
55
+ return AuthorityType.Adfs;
56
+ case Constants.DSTS:
57
+ return AuthorityType.Dsts;
58
+ }
59
+ }
60
+ return AuthorityType.Default;
61
+ };
41
62
  Object.defineProperty(Authority.prototype, "authorityType", {
42
63
  // See above for AuthorityType
43
64
  get: function () {
44
- // CIAM auth url pattern is being standardized as: <tenant>.ciamlogin.com
45
- if (this.canonicalAuthorityUrlComponents.HostNameAndPort.endsWith(Constants.CIAM_AUTH_URL)) {
46
- return AuthorityType.Ciam;
47
- }
48
- var pathSegments = this.canonicalAuthorityUrlComponents.PathSegments;
49
- if (pathSegments.length) {
50
- switch (pathSegments[0].toLowerCase()) {
51
- case Constants.ADFS:
52
- return AuthorityType.Adfs;
53
- case Constants.DSTS:
54
- return AuthorityType.Dsts;
55
- }
56
- }
57
- return AuthorityType.Default;
65
+ return this.getAuthorityType(this.canonicalAuthorityUrlComponents);
58
66
  },
59
67
  enumerable: false,
60
68
  configurable: true
@@ -136,8 +144,7 @@ var Authority = /** @class */ (function () {
136
144
  */
137
145
  get: function () {
138
146
  if (this.discoveryComplete()) {
139
- var endpoint = this.replacePath(this.metadata.authorization_endpoint);
140
- return this.replaceTenant(endpoint);
147
+ return this.replacePath(this.metadata.authorization_endpoint);
141
148
  }
142
149
  else {
143
150
  throw ClientAuthError.createEndpointDiscoveryIncompleteError("Discovery incomplete.");
@@ -152,8 +159,7 @@ var Authority = /** @class */ (function () {
152
159
  */
153
160
  get: function () {
154
161
  if (this.discoveryComplete()) {
155
- var endpoint = this.replacePath(this.metadata.token_endpoint);
156
- return this.replaceTenant(endpoint);
162
+ return this.replacePath(this.metadata.token_endpoint);
157
163
  }
158
164
  else {
159
165
  throw ClientAuthError.createEndpointDiscoveryIncompleteError("Discovery incomplete.");
@@ -165,8 +171,7 @@ var Authority = /** @class */ (function () {
165
171
  Object.defineProperty(Authority.prototype, "deviceCodeEndpoint", {
166
172
  get: function () {
167
173
  if (this.discoveryComplete()) {
168
- var endpoint = this.replacePath(this.metadata.token_endpoint.replace("/token", "/devicecode"));
169
- return this.replaceTenant(endpoint);
174
+ return this.replacePath(this.metadata.token_endpoint.replace("/token", "/devicecode"));
170
175
  }
171
176
  else {
172
177
  throw ClientAuthError.createEndpointDiscoveryIncompleteError("Discovery incomplete.");
@@ -185,8 +190,7 @@ var Authority = /** @class */ (function () {
185
190
  if (!this.metadata.end_session_endpoint) {
186
191
  throw ClientAuthError.createLogoutNotSupportedError();
187
192
  }
188
- var endpoint = this.replacePath(this.metadata.end_session_endpoint);
189
- return this.replaceTenant(endpoint);
193
+ return this.replacePath(this.metadata.end_session_endpoint);
190
194
  }
191
195
  else {
192
196
  throw ClientAuthError.createEndpointDiscoveryIncompleteError("Discovery incomplete.");
@@ -201,8 +205,7 @@ var Authority = /** @class */ (function () {
201
205
  */
202
206
  get: function () {
203
207
  if (this.discoveryComplete()) {
204
- var endpoint = this.replacePath(this.metadata.issuer);
205
- return this.replaceTenant(endpoint);
208
+ return this.replacePath(this.metadata.issuer);
206
209
  }
207
210
  else {
208
211
  throw ClientAuthError.createEndpointDiscoveryIncompleteError("Discovery incomplete.");
@@ -217,8 +220,7 @@ var Authority = /** @class */ (function () {
217
220
  */
218
221
  get: function () {
219
222
  if (this.discoveryComplete()) {
220
- var endpoint = this.replacePath(this.metadata.jwks_uri);
221
- return this.replaceTenant(endpoint);
223
+ return this.replacePath(this.metadata.jwks_uri);
222
224
  }
223
225
  else {
224
226
  throw ClientAuthError.createEndpointDiscoveryIncompleteError("Discovery incomplete.");
@@ -227,6 +229,17 @@ var Authority = /** @class */ (function () {
227
229
  enumerable: false,
228
230
  configurable: true
229
231
  });
232
+ /**
233
+ * Returns a flag indicating that tenant name can be replaced in authority {@link IUri}
234
+ * @param authorityUri {@link IUri}
235
+ * @private
236
+ */
237
+ Authority.prototype.canReplaceTenant = function (authorityUri) {
238
+ return authorityUri.PathSegments.length === 1
239
+ && !Authority.reservedTenantDomains.has(authorityUri.PathSegments[0])
240
+ && this.getAuthorityType(authorityUri) === AuthorityType.Default
241
+ && this.protocolMode === ProtocolMode.AAD;
242
+ };
230
243
  /**
231
244
  * Replaces tenant in url path with current tenant. Defaults to common.
232
245
  * @param urlString
@@ -239,17 +252,31 @@ var Authority = /** @class */ (function () {
239
252
  * @param urlString
240
253
  */
241
254
  Authority.prototype.replacePath = function (urlString) {
255
+ var _this = this;
242
256
  var endpoint = urlString;
243
257
  var cachedAuthorityUrl = new UrlString(this.metadata.canonical_authority);
244
- var cachedAuthorityParts = cachedAuthorityUrl.getUrlComponents().PathSegments;
258
+ var cachedAuthorityUrlComponents = cachedAuthorityUrl.getUrlComponents();
259
+ var cachedAuthorityParts = cachedAuthorityUrlComponents.PathSegments;
245
260
  var currentAuthorityParts = this.canonicalAuthorityUrlComponents.PathSegments;
246
261
  currentAuthorityParts.forEach(function (currentPart, index) {
247
262
  var cachedPart = cachedAuthorityParts[index];
263
+ if (index === 0 && _this.canReplaceTenant(cachedAuthorityUrlComponents)) {
264
+ var tenantId = (new UrlString(_this.metadata.authorization_endpoint)).getUrlComponents().PathSegments[0];
265
+ /**
266
+ * Check if AAD canonical authority contains tenant domain name, for example "testdomain.onmicrosoft.com",
267
+ * by comparing its first path segment to the corresponding authorization endpoint path segment, which is
268
+ * always resolved with tenant id by OIDC.
269
+ */
270
+ if (cachedPart !== tenantId) {
271
+ _this.logger.verbose("Replacing tenant domain name " + cachedPart + " with id " + tenantId);
272
+ cachedPart = tenantId;
273
+ }
274
+ }
248
275
  if (currentPart !== cachedPart) {
249
276
  endpoint = endpoint.replace("/" + cachedPart + "/", "/" + currentPart + "/");
250
277
  }
251
278
  });
252
- return endpoint;
279
+ return this.replaceTenant(endpoint);
253
280
  };
254
281
  Object.defineProperty(Authority.prototype, "defaultOpenIdConfigurationEndpoint", {
255
282
  /**
@@ -429,42 +456,35 @@ var Authority = /** @class */ (function () {
429
456
  };
430
457
  /**
431
458
  * Update the retrieved metadata with regional information.
459
+ * User selected Azure region will be used if configured.
432
460
  */
433
461
  Authority.prototype.updateMetadataWithRegionalInformation = function (metadata) {
434
- var _a, _b, _c, _d, _e, _f, _g;
462
+ var _a, _b, _c, _d;
435
463
  return __awaiter(this, void 0, void 0, function () {
436
- var autodetectedRegionName, azureRegion;
437
- return __generator(this, function (_h) {
438
- switch (_h.label) {
464
+ var userConfiguredAzureRegion, autodetectedRegionName;
465
+ return __generator(this, function (_e) {
466
+ switch (_e.label) {
439
467
  case 0:
440
468
  (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityUpdateMetadataWithRegionalInformation, this.correlationId);
441
- (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.RegionDiscoveryDetectRegion, this.correlationId);
442
- return [4 /*yield*/, this.regionDiscovery.detectRegion((_c = this.authorityOptions.azureRegionConfiguration) === null || _c === void 0 ? void 0 : _c.environmentRegion, this.regionDiscoveryMetadata)];
443
- case 1:
444
- autodetectedRegionName = _h.sent();
445
- azureRegion = ((_d = this.authorityOptions.azureRegionConfiguration) === null || _d === void 0 ? void 0 : _d.azureRegion) === Constants.AZURE_REGION_AUTO_DISCOVER_FLAG
446
- ? autodetectedRegionName
447
- : (_e = this.authorityOptions.azureRegionConfiguration) === null || _e === void 0 ? void 0 : _e.azureRegion;
448
- if (((_f = this.authorityOptions.azureRegionConfiguration) === null || _f === void 0 ? void 0 : _f.azureRegion) === Constants.AZURE_REGION_AUTO_DISCOVER_FLAG) {
449
- this.regionDiscoveryMetadata.region_outcome = autodetectedRegionName ?
450
- RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_SUCCESSFUL :
451
- RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_FAILED;
469
+ userConfiguredAzureRegion = (_b = this.authorityOptions.azureRegionConfiguration) === null || _b === void 0 ? void 0 : _b.azureRegion;
470
+ if (!userConfiguredAzureRegion) return [3 /*break*/, 2];
471
+ if (userConfiguredAzureRegion !== Constants.AZURE_REGION_AUTO_DISCOVER_FLAG) {
472
+ this.regionDiscoveryMetadata.region_outcome = RegionDiscoveryOutcomes.CONFIGURED_NO_AUTO_DETECTION;
473
+ this.regionDiscoveryMetadata.region_used = userConfiguredAzureRegion;
474
+ return [2 /*return*/, Authority.replaceWithRegionalInformation(metadata, userConfiguredAzureRegion)];
452
475
  }
453
- else {
454
- if (autodetectedRegionName) {
455
- this.regionDiscoveryMetadata.region_outcome = (((_g = this.authorityOptions.azureRegionConfiguration) === null || _g === void 0 ? void 0 : _g.azureRegion) === autodetectedRegionName) ?
456
- RegionDiscoveryOutcomes.CONFIGURED_MATCHES_DETECTED :
457
- RegionDiscoveryOutcomes.CONFIGURED_NOT_DETECTED;
458
- }
459
- else {
460
- this.regionDiscoveryMetadata.region_outcome = RegionDiscoveryOutcomes.CONFIGURED_NO_AUTO_DETECTION;
461
- }
462
- }
463
- if (azureRegion) {
464
- this.regionDiscoveryMetadata.region_used = azureRegion;
465
- return [2 /*return*/, Authority.replaceWithRegionalInformation(metadata, azureRegion)];
476
+ (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RegionDiscoveryDetectRegion, this.correlationId);
477
+ return [4 /*yield*/, this.regionDiscovery.detectRegion((_d = this.authorityOptions.azureRegionConfiguration) === null || _d === void 0 ? void 0 : _d.environmentRegion, this.regionDiscoveryMetadata)];
478
+ case 1:
479
+ autodetectedRegionName = _e.sent();
480
+ if (autodetectedRegionName) {
481
+ this.regionDiscoveryMetadata.region_outcome = RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_SUCCESSFUL;
482
+ this.regionDiscoveryMetadata.region_used = autodetectedRegionName;
483
+ return [2 /*return*/, Authority.replaceWithRegionalInformation(metadata, autodetectedRegionName)];
466
484
  }
467
- return [2 /*return*/, metadata];
485
+ this.regionDiscoveryMetadata.region_outcome = RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_FAILED;
486
+ _e.label = 2;
487
+ case 2: return [2 /*return*/, metadata];
468
488
  }
469
489
  });
470
490
  });
@@ -777,6 +797,14 @@ var Authority = /** @class */ (function () {
777
797
  }
778
798
  return ciamAuthority;
779
799
  };
800
+ // Reserved tenant domain names that will not be replaced with tenant id
801
+ Authority.reservedTenantDomains = (new Set([
802
+ "{tenant}",
803
+ "{tenantid}",
804
+ AADAuthorityConstants.COMMON,
805
+ AADAuthorityConstants.CONSUMERS,
806
+ AADAuthorityConstants.ORGANIZATIONS
807
+ ]));
780
808
  return Authority;
781
809
  }());
782
810