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