@azure/msal-common 14.2.0 → 14.4.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 (172) hide show
  1. package/dist/account/AuthToken.mjs +1 -1
  2. package/dist/account/CcsCredential.mjs +1 -1
  3. package/dist/account/ClientInfo.mjs +1 -1
  4. package/dist/authority/Authority.d.ts.map +1 -1
  5. package/dist/authority/Authority.mjs +4 -5
  6. package/dist/authority/Authority.mjs.map +1 -1
  7. package/dist/authority/AuthorityFactory.mjs +1 -1
  8. package/dist/authority/AuthorityMetadata.d.ts +29 -172
  9. package/dist/authority/AuthorityMetadata.d.ts.map +1 -1
  10. package/dist/authority/AuthorityMetadata.mjs +79 -413
  11. package/dist/authority/AuthorityMetadata.mjs.map +1 -1
  12. package/dist/authority/AuthorityOptions.d.ts +2 -2
  13. package/dist/authority/AuthorityOptions.d.ts.map +1 -1
  14. package/dist/authority/AuthorityOptions.mjs +1 -1
  15. package/dist/authority/AuthorityOptions.mjs.map +1 -1
  16. package/dist/authority/AuthorityType.mjs +1 -1
  17. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +1 -1
  18. package/dist/authority/CloudInstanceDiscoveryResponse.mjs +1 -1
  19. package/dist/authority/OpenIdConfigResponse.mjs +1 -1
  20. package/dist/authority/ProtocolMode.mjs +1 -1
  21. package/dist/authority/RegionDiscovery.mjs +1 -1
  22. package/dist/cache/CacheManager.d.ts +24 -19
  23. package/dist/cache/CacheManager.d.ts.map +1 -1
  24. package/dist/cache/CacheManager.mjs +51 -33
  25. package/dist/cache/CacheManager.mjs.map +1 -1
  26. package/dist/cache/entities/AccessTokenEntity.d.ts +12 -43
  27. package/dist/cache/entities/AccessTokenEntity.d.ts.map +1 -1
  28. package/dist/cache/entities/AccountEntity.mjs +1 -1
  29. package/dist/cache/entities/AppMetadataEntity.mjs +1 -1
  30. package/dist/cache/entities/AuthorityMetadataEntity.mjs +1 -1
  31. package/dist/cache/entities/CacheRecord.mjs +1 -1
  32. package/dist/cache/entities/CredentialEntity.d.ts +15 -73
  33. package/dist/cache/entities/CredentialEntity.d.ts.map +1 -1
  34. package/dist/cache/entities/IdTokenEntity.d.ts +4 -30
  35. package/dist/cache/entities/IdTokenEntity.d.ts.map +1 -1
  36. package/dist/cache/entities/RefreshTokenEntity.d.ts +2 -33
  37. package/dist/cache/entities/RefreshTokenEntity.d.ts.map +1 -1
  38. package/dist/cache/entities/ServerTelemetryEntity.d.ts +2 -9
  39. package/dist/cache/entities/ServerTelemetryEntity.d.ts.map +1 -1
  40. package/dist/cache/entities/ThrottlingEntity.mjs +1 -1
  41. package/dist/cache/persistence/TokenCacheContext.mjs +1 -1
  42. package/dist/cache/utils/CacheHelpers.d.ts +65 -0
  43. package/dist/cache/utils/CacheHelpers.d.ts.map +1 -0
  44. package/dist/cache/utils/CacheHelpers.mjs +242 -0
  45. package/dist/cache/utils/CacheHelpers.mjs.map +1 -0
  46. package/dist/client/AuthorizationCodeClient.d.ts +2 -1
  47. package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
  48. package/dist/client/AuthorizationCodeClient.mjs +4 -10
  49. package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
  50. package/dist/client/BaseClient.d.ts +1 -1
  51. package/dist/client/BaseClient.d.ts.map +1 -1
  52. package/dist/client/BaseClient.mjs +8 -8
  53. package/dist/client/BaseClient.mjs.map +1 -1
  54. package/dist/client/RefreshTokenClient.d.ts.map +1 -1
  55. package/dist/client/RefreshTokenClient.mjs +2 -2
  56. package/dist/client/RefreshTokenClient.mjs.map +1 -1
  57. package/dist/client/SilentFlowClient.d.ts.map +1 -1
  58. package/dist/client/SilentFlowClient.mjs +5 -3
  59. package/dist/client/SilentFlowClient.mjs.map +1 -1
  60. package/dist/config/ClientConfiguration.mjs +1 -1
  61. package/dist/crypto/ICrypto.d.ts +3 -3
  62. package/dist/crypto/ICrypto.d.ts.map +1 -1
  63. package/dist/crypto/ICrypto.mjs +1 -1
  64. package/dist/crypto/ICrypto.mjs.map +1 -1
  65. package/dist/crypto/JoseHeader.d.ts +3 -3
  66. package/dist/crypto/JoseHeader.d.ts.map +1 -1
  67. package/dist/crypto/JoseHeader.mjs +3 -3
  68. package/dist/crypto/JoseHeader.mjs.map +1 -1
  69. package/dist/crypto/PopTokenGenerator.d.ts.map +1 -1
  70. package/dist/crypto/PopTokenGenerator.mjs +3 -3
  71. package/dist/crypto/PopTokenGenerator.mjs.map +1 -1
  72. package/dist/crypto/SignedHttpRequest.d.ts +4 -0
  73. package/dist/crypto/SignedHttpRequest.d.ts.map +1 -1
  74. package/dist/error/AuthError.mjs +1 -1
  75. package/dist/error/AuthErrorCodes.mjs +1 -1
  76. package/dist/error/ClientAuthError.mjs +1 -1
  77. package/dist/error/ClientAuthErrorCodes.mjs +1 -1
  78. package/dist/error/ClientConfigurationError.mjs +1 -1
  79. package/dist/error/ClientConfigurationErrorCodes.mjs +1 -1
  80. package/dist/error/InteractionRequiredAuthError.mjs +1 -1
  81. package/dist/error/InteractionRequiredAuthErrorCodes.mjs +1 -1
  82. package/dist/error/JoseHeaderError.mjs +1 -1
  83. package/dist/error/JoseHeaderErrorCodes.mjs +1 -1
  84. package/dist/error/ServerError.mjs +1 -1
  85. package/dist/index.cjs +2768 -3303
  86. package/dist/index.cjs.map +1 -1
  87. package/dist/index.d.ts +4 -2
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.mjs +6 -7
  90. package/dist/index.mjs.map +1 -1
  91. package/dist/logger/Logger.mjs +1 -1
  92. package/dist/network/INetworkModule.mjs +1 -1
  93. package/dist/network/NetworkManager.mjs +1 -1
  94. package/dist/network/RequestThumbprint.d.ts +2 -0
  95. package/dist/network/RequestThumbprint.d.ts.map +1 -1
  96. package/dist/network/ThrottlingUtils.mjs +1 -1
  97. package/dist/packageMetadata.d.ts +1 -1
  98. package/dist/packageMetadata.mjs +2 -2
  99. package/dist/request/AuthenticationHeaderParser.mjs +1 -1
  100. package/dist/request/BaseAuthRequest.d.ts +3 -0
  101. package/dist/request/BaseAuthRequest.d.ts.map +1 -1
  102. package/dist/request/RequestParameterBuilder.mjs +1 -1
  103. package/dist/request/RequestValidator.mjs +1 -1
  104. package/dist/request/ScopeSet.mjs +1 -1
  105. package/dist/response/ResponseHandler.d.ts +2 -2
  106. package/dist/response/ResponseHandler.d.ts.map +1 -1
  107. package/dist/response/ResponseHandler.mjs +23 -29
  108. package/dist/response/ResponseHandler.mjs.map +1 -1
  109. package/dist/telemetry/performance/PerformanceClient.mjs +1 -1
  110. package/dist/telemetry/performance/PerformanceEvent.d.ts +8 -1
  111. package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
  112. package/dist/telemetry/performance/PerformanceEvent.mjs +6 -2
  113. package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
  114. package/dist/telemetry/performance/StubPerformanceClient.mjs +1 -1
  115. package/dist/telemetry/server/ServerTelemetryManager.d.ts.map +1 -1
  116. package/dist/telemetry/server/ServerTelemetryManager.mjs +11 -8
  117. package/dist/telemetry/server/ServerTelemetryManager.mjs.map +1 -1
  118. package/dist/url/UrlString.d.ts +2 -37
  119. package/dist/url/UrlString.d.ts.map +1 -1
  120. package/dist/url/UrlString.mjs +7 -126
  121. package/dist/url/UrlString.mjs.map +1 -1
  122. package/dist/utils/Constants.d.ts +2 -3
  123. package/dist/utils/Constants.d.ts.map +1 -1
  124. package/dist/utils/Constants.mjs +3 -4
  125. package/dist/utils/Constants.mjs.map +1 -1
  126. package/dist/utils/FunctionWrappers.mjs +1 -1
  127. package/dist/utils/ProtocolUtils.mjs +1 -1
  128. package/dist/utils/StringUtils.mjs +1 -1
  129. package/dist/utils/TimeUtils.mjs +1 -1
  130. package/dist/utils/UrlUtils.d.ts +11 -0
  131. package/dist/utils/UrlUtils.d.ts.map +1 -0
  132. package/dist/utils/UrlUtils.mjs +52 -0
  133. package/dist/utils/UrlUtils.mjs.map +1 -0
  134. package/package.json +1 -1
  135. package/src/authority/Authority.ts +5 -8
  136. package/src/authority/AuthorityMetadata.ts +109 -435
  137. package/src/authority/AuthorityOptions.ts +2 -2
  138. package/src/cache/CacheManager.ts +79 -42
  139. package/src/cache/entities/AccessTokenEntity.ts +13 -149
  140. package/src/cache/entities/CredentialEntity.ts +16 -200
  141. package/src/cache/entities/IdTokenEntity.ts +4 -64
  142. package/src/cache/entities/RefreshTokenEntity.ts +2 -69
  143. package/src/cache/entities/ServerTelemetryEntity.ts +2 -30
  144. package/src/cache/utils/CacheHelpers.ts +327 -0
  145. package/src/client/AuthorizationCodeClient.ts +4 -15
  146. package/src/client/BaseClient.ts +21 -10
  147. package/src/client/RefreshTokenClient.ts +7 -1
  148. package/src/client/SilentFlowClient.ts +8 -4
  149. package/src/crypto/ICrypto.ts +7 -2
  150. package/src/crypto/JoseHeader.ts +4 -4
  151. package/src/crypto/PopTokenGenerator.ts +2 -0
  152. package/src/crypto/SignedHttpRequest.ts +6 -0
  153. package/src/index.ts +4 -1
  154. package/src/network/RequestThumbprint.ts +2 -0
  155. package/src/packageMetadata.ts +1 -1
  156. package/src/request/BaseAuthRequest.ts +3 -0
  157. package/src/response/ResponseHandler.ts +36 -41
  158. package/src/telemetry/performance/PerformanceEvent.ts +12 -1
  159. package/src/telemetry/server/ServerTelemetryManager.ts +12 -6
  160. package/src/url/UrlString.ts +6 -153
  161. package/src/utils/Constants.ts +3 -3
  162. package/src/utils/UrlUtils.ts +60 -0
  163. package/dist/cache/entities/AccessTokenEntity.mjs +0 -121
  164. package/dist/cache/entities/AccessTokenEntity.mjs.map +0 -1
  165. package/dist/cache/entities/CredentialEntity.mjs +0 -145
  166. package/dist/cache/entities/CredentialEntity.mjs.map +0 -1
  167. package/dist/cache/entities/IdTokenEntity.mjs +0 -64
  168. package/dist/cache/entities/IdTokenEntity.mjs.map +0 -1
  169. package/dist/cache/entities/RefreshTokenEntity.mjs +0 -67
  170. package/dist/cache/entities/RefreshTokenEntity.mjs.map +0 -1
  171. package/dist/cache/entities/ServerTelemetryEntity.mjs +0 -34
  172. package/dist/cache/entities/ServerTelemetryEntity.mjs.map +0 -1
@@ -3,7 +3,10 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
+ import { Logger } from "../logger/Logger";
6
7
  import { UrlString } from "../url/UrlString";
8
+ import { AuthorityMetadataSource } from "../utils/Constants";
9
+ import { StaticAuthorityOptions } from "./AuthorityOptions";
7
10
  import { CloudDiscoveryMetadata } from "./CloudDiscoveryMetadata";
8
11
 
9
12
  export const rawMetdataJSON = {
@@ -552,393 +555,47 @@ export const rawMetdataJSON = {
552
555
  },
553
556
  },
554
557
  instanceDiscoveryMetadata: {
555
- "https://login.microsoftonline.com/common/": {
556
- tenant_discovery_endpoint:
557
- "https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration",
558
- "api-version": "1.1",
559
- metadata: [
560
- {
561
- preferred_network: "login.microsoftonline.com",
562
- preferred_cache: "login.windows.net",
563
- aliases: [
564
- "login.microsoftonline.com",
565
- "login.windows.net",
566
- "login.microsoft.com",
567
- "sts.windows.net",
568
- ],
569
- },
570
- {
571
- preferred_network: "login.partner.microsoftonline.cn",
572
- preferred_cache: "login.partner.microsoftonline.cn",
573
- aliases: [
574
- "login.partner.microsoftonline.cn",
575
- "login.chinacloudapi.cn",
576
- ],
577
- },
578
- {
579
- preferred_network: "login.microsoftonline.de",
580
- preferred_cache: "login.microsoftonline.de",
581
- aliases: ["login.microsoftonline.de"],
582
- },
583
- {
584
- preferred_network: "login.microsoftonline.us",
585
- preferred_cache: "login.microsoftonline.us",
586
- aliases: [
587
- "login.microsoftonline.us",
588
- "login.usgovcloudapi.net",
589
- ],
590
- },
591
- {
592
- preferred_network: "login-us.microsoftonline.com",
593
- preferred_cache: "login-us.microsoftonline.com",
594
- aliases: ["login-us.microsoftonline.com"],
595
- },
596
- ],
597
- },
598
- "https://login.chinacloudapi.cn/common/": {
599
- tenant_discovery_endpoint:
600
- "https://login.chinacloudapi.cn/common/v2.0/.well-known/openid-configuration",
601
- "api-version": "1.1",
602
- metadata: [
603
- {
604
- preferred_network: "login.microsoftonline.com",
605
- preferred_cache: "login.windows.net",
606
- aliases: [
607
- "login.microsoftonline.com",
608
- "login.windows.net",
609
- "login.microsoft.com",
610
- "sts.windows.net",
611
- ],
612
- },
613
- {
614
- preferred_network: "login.partner.microsoftonline.cn",
615
- preferred_cache: "login.partner.microsoftonline.cn",
616
- aliases: [
617
- "login.partner.microsoftonline.cn",
618
- "login.chinacloudapi.cn",
619
- ],
620
- },
621
- {
622
- preferred_network: "login.microsoftonline.de",
623
- preferred_cache: "login.microsoftonline.de",
624
- aliases: ["login.microsoftonline.de"],
625
- },
626
- {
627
- preferred_network: "login.microsoftonline.us",
628
- preferred_cache: "login.microsoftonline.us",
629
- aliases: [
630
- "login.microsoftonline.us",
631
- "login.usgovcloudapi.net",
632
- ],
633
- },
634
- {
635
- preferred_network: "login-us.microsoftonline.com",
636
- preferred_cache: "login-us.microsoftonline.com",
637
- aliases: ["login-us.microsoftonline.com"],
638
- },
639
- ],
640
- },
641
- "https://login.microsoftonline.us/common/": {
642
- tenant_discovery_endpoint:
643
- "https://login.microsoftonline.us/common/v2.0/.well-known/openid-configuration",
644
- "api-version": "1.1",
645
- metadata: [
646
- {
647
- preferred_network: "login.microsoftonline.com",
648
- preferred_cache: "login.windows.net",
649
- aliases: [
650
- "login.microsoftonline.com",
651
- "login.windows.net",
652
- "login.microsoft.com",
653
- "sts.windows.net",
654
- ],
655
- },
656
- {
657
- preferred_network: "login.partner.microsoftonline.cn",
658
- preferred_cache: "login.partner.microsoftonline.cn",
659
- aliases: [
660
- "login.partner.microsoftonline.cn",
661
- "login.chinacloudapi.cn",
662
- ],
663
- },
664
- {
665
- preferred_network: "login.microsoftonline.de",
666
- preferred_cache: "login.microsoftonline.de",
667
- aliases: ["login.microsoftonline.de"],
668
- },
669
- {
670
- preferred_network: "login.microsoftonline.us",
671
- preferred_cache: "login.microsoftonline.us",
672
- aliases: [
673
- "login.microsoftonline.us",
674
- "login.usgovcloudapi.net",
675
- ],
676
- },
677
- {
678
- preferred_network: "login-us.microsoftonline.com",
679
- preferred_cache: "login-us.microsoftonline.com",
680
- aliases: ["login-us.microsoftonline.com"],
681
- },
682
- ],
683
- },
684
- "https://login.microsoftonline.com/consumers/": {
685
- tenant_discovery_endpoint:
686
- "https://login.microsoftonline.com/consumers/v2.0/.well-known/openid-configuration",
687
- "api-version": "1.1",
688
- metadata: [
689
- {
690
- preferred_network: "login.microsoftonline.com",
691
- preferred_cache: "login.windows.net",
692
- aliases: [
693
- "login.microsoftonline.com",
694
- "login.windows.net",
695
- "login.microsoft.com",
696
- "sts.windows.net",
697
- ],
698
- },
699
- {
700
- preferred_network: "login.partner.microsoftonline.cn",
701
- preferred_cache: "login.partner.microsoftonline.cn",
702
- aliases: [
703
- "login.partner.microsoftonline.cn",
704
- "login.chinacloudapi.cn",
705
- ],
706
- },
707
- {
708
- preferred_network: "login.microsoftonline.de",
709
- preferred_cache: "login.microsoftonline.de",
710
- aliases: ["login.microsoftonline.de"],
711
- },
712
- {
713
- preferred_network: "login.microsoftonline.us",
714
- preferred_cache: "login.microsoftonline.us",
715
- aliases: [
716
- "login.microsoftonline.us",
717
- "login.usgovcloudapi.net",
718
- ],
719
- },
720
- {
721
- preferred_network: "login-us.microsoftonline.com",
722
- preferred_cache: "login-us.microsoftonline.com",
723
- aliases: ["login-us.microsoftonline.com"],
724
- },
725
- ],
726
- },
727
- "https://login.chinacloudapi.cn/consumers/": {
728
- tenant_discovery_endpoint:
729
- "https://login.chinacloudapi.cn/consumers/v2.0/.well-known/openid-configuration",
730
- "api-version": "1.1",
731
- metadata: [
732
- {
733
- preferred_network: "login.microsoftonline.com",
734
- preferred_cache: "login.windows.net",
735
- aliases: [
736
- "login.microsoftonline.com",
737
- "login.windows.net",
738
- "login.microsoft.com",
739
- "sts.windows.net",
740
- ],
741
- },
742
- {
743
- preferred_network: "login.partner.microsoftonline.cn",
744
- preferred_cache: "login.partner.microsoftonline.cn",
745
- aliases: [
746
- "login.partner.microsoftonline.cn",
747
- "login.chinacloudapi.cn",
748
- ],
749
- },
750
- {
751
- preferred_network: "login.microsoftonline.de",
752
- preferred_cache: "login.microsoftonline.de",
753
- aliases: ["login.microsoftonline.de"],
754
- },
755
- {
756
- preferred_network: "login.microsoftonline.us",
757
- preferred_cache: "login.microsoftonline.us",
758
- aliases: [
759
- "login.microsoftonline.us",
760
- "login.usgovcloudapi.net",
761
- ],
762
- },
763
- {
764
- preferred_network: "login-us.microsoftonline.com",
765
- preferred_cache: "login-us.microsoftonline.com",
766
- aliases: ["login-us.microsoftonline.com"],
767
- },
768
- ],
769
- },
770
- "https://login.microsoftonline.us/consumers/": {
771
- tenant_discovery_endpoint:
772
- "https://login.microsoftonline.us/consumers/v2.0/.well-known/openid-configuration",
773
- "api-version": "1.1",
774
- metadata: [
775
- {
776
- preferred_network: "login.microsoftonline.com",
777
- preferred_cache: "login.windows.net",
778
- aliases: [
779
- "login.microsoftonline.com",
780
- "login.windows.net",
781
- "login.microsoft.com",
782
- "sts.windows.net",
783
- ],
784
- },
785
- {
786
- preferred_network: "login.partner.microsoftonline.cn",
787
- preferred_cache: "login.partner.microsoftonline.cn",
788
- aliases: [
789
- "login.partner.microsoftonline.cn",
790
- "login.chinacloudapi.cn",
791
- ],
792
- },
793
- {
794
- preferred_network: "login.microsoftonline.de",
795
- preferred_cache: "login.microsoftonline.de",
796
- aliases: ["login.microsoftonline.de"],
797
- },
798
- {
799
- preferred_network: "login.microsoftonline.us",
800
- preferred_cache: "login.microsoftonline.us",
801
- aliases: [
802
- "login.microsoftonline.us",
803
- "login.usgovcloudapi.net",
804
- ],
805
- },
806
- {
807
- preferred_network: "login-us.microsoftonline.com",
808
- preferred_cache: "login-us.microsoftonline.com",
809
- aliases: ["login-us.microsoftonline.com"],
810
- },
811
- ],
812
- },
813
- "https://login.microsoftonline.com/organizations/": {
814
- tenant_discovery_endpoint:
815
- "https://login.microsoftonline.com/organizations/v2.0/.well-known/openid-configuration",
816
- "api-version": "1.1",
817
- metadata: [
818
- {
819
- preferred_network: "login.microsoftonline.com",
820
- preferred_cache: "login.windows.net",
821
- aliases: [
822
- "login.microsoftonline.com",
823
- "login.windows.net",
824
- "login.microsoft.com",
825
- "sts.windows.net",
826
- ],
827
- },
828
- {
829
- preferred_network: "login.partner.microsoftonline.cn",
830
- preferred_cache: "login.partner.microsoftonline.cn",
831
- aliases: [
832
- "login.partner.microsoftonline.cn",
833
- "login.chinacloudapi.cn",
834
- ],
835
- },
836
- {
837
- preferred_network: "login.microsoftonline.de",
838
- preferred_cache: "login.microsoftonline.de",
839
- aliases: ["login.microsoftonline.de"],
840
- },
841
- {
842
- preferred_network: "login.microsoftonline.us",
843
- preferred_cache: "login.microsoftonline.us",
844
- aliases: [
845
- "login.microsoftonline.us",
846
- "login.usgovcloudapi.net",
847
- ],
848
- },
849
- {
850
- preferred_network: "login-us.microsoftonline.com",
851
- preferred_cache: "login-us.microsoftonline.com",
852
- aliases: ["login-us.microsoftonline.com"],
853
- },
854
- ],
855
- },
856
- "https://login.chinacloudapi.cn/organizations/": {
857
- tenant_discovery_endpoint:
858
- "https://login.chinacloudapi.cn/organizations/v2.0/.well-known/openid-configuration",
859
- "api-version": "1.1",
860
- metadata: [
861
- {
862
- preferred_network: "login.microsoftonline.com",
863
- preferred_cache: "login.windows.net",
864
- aliases: [
865
- "login.microsoftonline.com",
866
- "login.windows.net",
867
- "login.microsoft.com",
868
- "sts.windows.net",
869
- ],
870
- },
871
- {
872
- preferred_network: "login.partner.microsoftonline.cn",
873
- preferred_cache: "login.partner.microsoftonline.cn",
874
- aliases: [
875
- "login.partner.microsoftonline.cn",
876
- "login.chinacloudapi.cn",
877
- ],
878
- },
879
- {
880
- preferred_network: "login.microsoftonline.de",
881
- preferred_cache: "login.microsoftonline.de",
882
- aliases: ["login.microsoftonline.de"],
883
- },
884
- {
885
- preferred_network: "login.microsoftonline.us",
886
- preferred_cache: "login.microsoftonline.us",
887
- aliases: [
888
- "login.microsoftonline.us",
889
- "login.usgovcloudapi.net",
890
- ],
891
- },
892
- {
893
- preferred_network: "login-us.microsoftonline.com",
894
- preferred_cache: "login-us.microsoftonline.com",
895
- aliases: ["login-us.microsoftonline.com"],
896
- },
897
- ],
898
- },
899
- "https://login.microsoftonline.us/organizations/": {
900
- tenant_discovery_endpoint:
901
- "https://login.microsoftonline.us/organizations/v2.0/.well-known/openid-configuration",
902
- "api-version": "1.1",
903
- metadata: [
904
- {
905
- preferred_network: "login.microsoftonline.com",
906
- preferred_cache: "login.windows.net",
907
- aliases: [
908
- "login.microsoftonline.com",
909
- "login.windows.net",
910
- "login.microsoft.com",
911
- "sts.windows.net",
912
- ],
913
- },
914
- {
915
- preferred_network: "login.partner.microsoftonline.cn",
916
- preferred_cache: "login.partner.microsoftonline.cn",
917
- aliases: [
918
- "login.partner.microsoftonline.cn",
919
- "login.chinacloudapi.cn",
920
- ],
921
- },
922
- {
923
- preferred_network: "login.microsoftonline.de",
924
- preferred_cache: "login.microsoftonline.de",
925
- aliases: ["login.microsoftonline.de"],
926
- },
927
- {
928
- preferred_network: "login.microsoftonline.us",
929
- preferred_cache: "login.microsoftonline.us",
930
- aliases: [
931
- "login.microsoftonline.us",
932
- "login.usgovcloudapi.net",
933
- ],
934
- },
935
- {
936
- preferred_network: "login-us.microsoftonline.com",
937
- preferred_cache: "login-us.microsoftonline.com",
938
- aliases: ["login-us.microsoftonline.com"],
939
- },
940
- ],
941
- },
558
+ tenant_discovery_endpoint:
559
+ "https://{canonicalAuthority}/v2.0/.well-known/openid-configuration",
560
+ "api-version": "1.1",
561
+ metadata: [
562
+ {
563
+ preferred_network: "login.microsoftonline.com",
564
+ preferred_cache: "login.windows.net",
565
+ aliases: [
566
+ "login.microsoftonline.com",
567
+ "login.windows.net",
568
+ "login.microsoft.com",
569
+ "sts.windows.net",
570
+ ],
571
+ },
572
+ {
573
+ preferred_network: "login.partner.microsoftonline.cn",
574
+ preferred_cache: "login.partner.microsoftonline.cn",
575
+ aliases: [
576
+ "login.partner.microsoftonline.cn",
577
+ "login.chinacloudapi.cn",
578
+ ],
579
+ },
580
+ {
581
+ preferred_network: "login.microsoftonline.de",
582
+ preferred_cache: "login.microsoftonline.de",
583
+ aliases: ["login.microsoftonline.de"],
584
+ },
585
+ {
586
+ preferred_network: "login.microsoftonline.us",
587
+ preferred_cache: "login.microsoftonline.us",
588
+ aliases: [
589
+ "login.microsoftonline.us",
590
+ "login.usgovcloudapi.net",
591
+ ],
592
+ },
593
+ {
594
+ preferred_network: "login-us.microsoftonline.com",
595
+ preferred_cache: "login-us.microsoftonline.com",
596
+ aliases: ["login-us.microsoftonline.com"],
597
+ },
598
+ ],
942
599
  },
943
600
  };
944
601
 
@@ -947,58 +604,96 @@ export const InstanceDiscoveryMetadata =
947
604
  rawMetdataJSON.instanceDiscoveryMetadata;
948
605
 
949
606
  export const InstanceDiscoveryMetadataAliases: Set<String> = new Set();
950
- for (const key in InstanceDiscoveryMetadata) {
951
- for (const metadata of InstanceDiscoveryMetadata[key].metadata) {
952
- for (const alias of metadata.aliases) {
607
+ InstanceDiscoveryMetadata.metadata.forEach(
608
+ (metadataEntry: CloudDiscoveryMetadata) => {
609
+ metadataEntry.aliases.forEach((alias: string) => {
953
610
  InstanceDiscoveryMetadataAliases.add(alias);
954
- }
611
+ });
955
612
  }
956
- }
613
+ );
957
614
 
958
615
  /**
959
- * Returns aliases for the given canonical authority if found in hardcoded Instance Discovery Metadata or null if not found
960
- * @param canonicalAuthority
616
+ * Attempts to get an aliases array from the static authority metadata sources based on the canonical authority host
617
+ * @param staticAuthorityOptions
618
+ * @param logger
961
619
  * @returns
962
620
  */
963
- export function getHardcodedAliasesForCanonicalAuthority(
964
- canonicalAuthority?: string
965
- ): string[] | null {
621
+ export function getAliasesFromStaticSources(
622
+ staticAuthorityOptions: StaticAuthorityOptions,
623
+ logger?: Logger
624
+ ): string[] {
625
+ let staticAliases: string[] | undefined;
626
+ const canonicalAuthority = staticAuthorityOptions.canonicalAuthority;
966
627
  if (canonicalAuthority) {
967
- const instanceDiscoveryMetadata =
968
- getCloudDiscoveryMetadataFromHardcodedValues(canonicalAuthority);
969
- if (instanceDiscoveryMetadata) {
970
- return instanceDiscoveryMetadata.aliases;
971
- }
628
+ const authorityHost = new UrlString(
629
+ canonicalAuthority
630
+ ).getUrlComponents().HostNameAndPort;
631
+ staticAliases =
632
+ getAliasesFromMetadata(
633
+ authorityHost,
634
+ staticAuthorityOptions.cloudDiscoveryMetadata?.metadata,
635
+ AuthorityMetadataSource.CONFIG,
636
+ logger
637
+ ) ||
638
+ getAliasesFromMetadata(
639
+ authorityHost,
640
+ InstanceDiscoveryMetadata.metadata,
641
+ AuthorityMetadataSource.HARDCODED_VALUES,
642
+ logger
643
+ ) ||
644
+ staticAuthorityOptions.knownAuthorities;
972
645
  }
973
- return null;
646
+
647
+ return staticAliases || [];
974
648
  }
975
649
 
976
650
  /**
977
- * Returns aliases for from the raw cloud discovery metadata given in configuration or null if no configuration was provided
651
+ * Returns aliases for from the raw cloud discovery metadata passed in
652
+ * @param authorityHost
978
653
  * @param rawCloudDiscoveryMetadata
979
654
  * @returns
980
655
  */
981
- export function getAliasesFromConfigMetadata(
982
- canonicalAuthority?: string,
983
- cloudDiscoveryMetadata?: CloudDiscoveryMetadata[]
656
+ export function getAliasesFromMetadata(
657
+ authorityHost?: string,
658
+ cloudDiscoveryMetadata?: CloudDiscoveryMetadata[],
659
+ source?: AuthorityMetadataSource,
660
+ logger?: Logger
984
661
  ): string[] | null {
985
- if (canonicalAuthority && cloudDiscoveryMetadata) {
986
- const canonicalAuthorityUrlComponents = new UrlString(
987
- canonicalAuthority
988
- ).getUrlComponents();
662
+ logger?.trace(`getAliasesFromMetadata called with source: ${source}`);
663
+ if (authorityHost && cloudDiscoveryMetadata) {
989
664
  const metadata = getCloudDiscoveryMetadataFromNetworkResponse(
990
665
  cloudDiscoveryMetadata,
991
- canonicalAuthorityUrlComponents.HostNameAndPort
666
+ authorityHost
992
667
  );
993
668
 
994
669
  if (metadata) {
670
+ logger?.trace(
671
+ `getAliasesFromMetadata: found cloud discovery metadata in ${source}, returning aliases`
672
+ );
995
673
  return metadata.aliases;
674
+ } else {
675
+ logger?.trace(
676
+ `getAliasesFromMetadata: did not find cloud discovery metadata in ${source}`
677
+ );
996
678
  }
997
679
  }
998
680
 
999
681
  return null;
1000
682
  }
1001
683
 
684
+ /**
685
+ * Get cloud discovery metadata for common authorities
686
+ */
687
+ export function getCloudDiscoveryMetadataFromHardcodedValues(
688
+ authorityHost: string
689
+ ): CloudDiscoveryMetadata | null {
690
+ const metadata = getCloudDiscoveryMetadataFromNetworkResponse(
691
+ InstanceDiscoveryMetadata.metadata,
692
+ authorityHost
693
+ );
694
+ return metadata;
695
+ }
696
+
1002
697
  /**
1003
698
  * Searches instance discovery network response for the entry that contains the host in the aliases list
1004
699
  * @param response
@@ -1006,35 +701,14 @@ export function getAliasesFromConfigMetadata(
1006
701
  */
1007
702
  export function getCloudDiscoveryMetadataFromNetworkResponse(
1008
703
  response: CloudDiscoveryMetadata[],
1009
- authority: string
704
+ authorityHost: string
1010
705
  ): CloudDiscoveryMetadata | null {
1011
706
  for (let i = 0; i < response.length; i++) {
1012
707
  const metadata = response[i];
1013
- if (metadata.aliases.includes(authority)) {
708
+ if (metadata.aliases.includes(authorityHost)) {
1014
709
  return metadata;
1015
710
  }
1016
711
  }
1017
712
 
1018
713
  return null;
1019
714
  }
1020
-
1021
- /**
1022
- * Get cloud discovery metadata for common authorities
1023
- */
1024
- export function getCloudDiscoveryMetadataFromHardcodedValues(
1025
- canonicalAuthority: string
1026
- ): CloudDiscoveryMetadata | null {
1027
- const canonicalAuthorityUrlComponents = new UrlString(
1028
- canonicalAuthority
1029
- ).getUrlComponents();
1030
-
1031
- if (canonicalAuthority in InstanceDiscoveryMetadata) {
1032
- const metadata = getCloudDiscoveryMetadataFromNetworkResponse(
1033
- InstanceDiscoveryMetadata[canonicalAuthority].metadata,
1034
- canonicalAuthorityUrlComponents.HostNameAndPort
1035
- );
1036
- return metadata;
1037
- }
1038
-
1039
- return null;
1040
- }
@@ -6,7 +6,7 @@
6
6
  import { ProtocolMode } from "./ProtocolMode";
7
7
  import { OIDCOptions } from "./OIDCOptions";
8
8
  import { AzureRegionConfiguration } from "./AzureRegionConfiguration";
9
- import { CloudDiscoveryMetadata } from "./CloudDiscoveryMetadata";
9
+ import { CloudInstanceDiscoveryResponse } from "./CloudInstanceDiscoveryResponse";
10
10
 
11
11
  export type AuthorityOptions = {
12
12
  protocolMode: ProtocolMode;
@@ -23,7 +23,7 @@ export type StaticAuthorityOptions = Partial<
23
23
  Pick<AuthorityOptions, "knownAuthorities">
24
24
  > & {
25
25
  canonicalAuthority?: string;
26
- cloudDiscoveryMetadata?: CloudDiscoveryMetadata[];
26
+ cloudDiscoveryMetadata?: CloudInstanceDiscoveryResponse;
27
27
  };
28
28
 
29
29
  export const AzureCloudInstance = {