diff --git a/src/client/Microsoft.Identity.Client/AppConfig/AuthorityInfo.cs b/src/client/Microsoft.Identity.Client/AppConfig/AuthorityInfo.cs index 66b6d69352..ec22c08ef5 100644 --- a/src/client/Microsoft.Identity.Client/AppConfig/AuthorityInfo.cs +++ b/src/client/Microsoft.Identity.Client/AppConfig/AuthorityInfo.cs @@ -261,6 +261,12 @@ internal static string GetCloudUrl(AzureCloudInstance azureCloudInstance) return "https://login.microsoftonline.de"; case AzureCloudInstance.AzureUsGovernment: return "https://login.microsoftonline.us"; + case AzureCloudInstance.AzureBleu: + return "https://login.sovcloud-identity.fr"; + case AzureCloudInstance.AzureDelos: + return "https://login.sovcloud-identity.de"; + case AzureCloudInstance.AzureGovSG: + return "https://login.sovcloud-identity.sg"; default: throw new ArgumentException(nameof(azureCloudInstance)); } diff --git a/src/client/Microsoft.Identity.Client/AppConfig/AzureCloud.cs b/src/client/Microsoft.Identity.Client/AppConfig/AzureCloud.cs index 721742badc..c235492c9d 100644 --- a/src/client/Microsoft.Identity.Client/AppConfig/AzureCloud.cs +++ b/src/client/Microsoft.Identity.Client/AppConfig/AzureCloud.cs @@ -31,5 +31,20 @@ public enum AzureCloudInstance /// US Government cloud. Maps to https://login.microsoftonline.us /// AzureUsGovernment, + + /// + /// Azure Bleu sovereign cloud (France). Maps to https://login.sovcloud-identity.fr + /// + AzureBleu, + + /// + /// Azure Delos sovereign cloud (Germany). Maps to https://login.sovcloud-identity.de + /// + AzureDelos, + + /// + /// Azure GovSG sovereign cloud (Singapore). Maps to https://login.sovcloud-identity.sg + /// + AzureGovSG, }; } diff --git a/tests/Microsoft.Identity.Test.Unit/AppConfigTests/PublicClientApplicationBuilderTests.cs b/tests/Microsoft.Identity.Test.Unit/AppConfigTests/PublicClientApplicationBuilderTests.cs index e24cc9ce63..6748403924 100644 --- a/tests/Microsoft.Identity.Test.Unit/AppConfigTests/PublicClientApplicationBuilderTests.cs +++ b/tests/Microsoft.Identity.Test.Unit/AppConfigTests/PublicClientApplicationBuilderTests.cs @@ -358,6 +358,15 @@ public void EnsureCreatePublicClientWithAzureAdMyOrgAndValidTenantSucceeds() [DataRow(AzureCloudInstance.AzureChina, AadAuthorityAudience.AzureAdMultipleOrgs, "https://login.chinacloudapi.cn/organizations/", DisplayName = "AzureChina + AzureAdMultipleOrgs")] [DataRow(AzureCloudInstance.AzureChina, AadAuthorityAudience.AzureAdAndPersonalMicrosoftAccount, "https://login.chinacloudapi.cn/common/", DisplayName = "AzureChina + AzureAdAndPersonalMicrosoftAccount")] [DataRow(AzureCloudInstance.AzureChina, AadAuthorityAudience.PersonalMicrosoftAccount, "https://login.chinacloudapi.cn/consumers/", DisplayName = "AzureChina + PersonalMicrosoftAccount")] + [DataRow(AzureCloudInstance.AzureBleu, AadAuthorityAudience.AzureAdMultipleOrgs, "https://login.sovcloud-identity.fr/organizations/", DisplayName = "AzureBleu + AzureAdMultipleOrgs")] + [DataRow(AzureCloudInstance.AzureBleu, AadAuthorityAudience.AzureAdAndPersonalMicrosoftAccount, "https://login.sovcloud-identity.fr/common/", DisplayName = "AzureBleu + AzureAdAndPersonalMicrosoftAccount")] + [DataRow(AzureCloudInstance.AzureBleu, AadAuthorityAudience.PersonalMicrosoftAccount, "https://login.sovcloud-identity.fr/consumers/", DisplayName = "AzureBleu + PersonalMicrosoftAccount")] + [DataRow(AzureCloudInstance.AzureDelos, AadAuthorityAudience.AzureAdMultipleOrgs, "https://login.sovcloud-identity.de/organizations/", DisplayName = "AzureDelos + AzureAdMultipleOrgs")] + [DataRow(AzureCloudInstance.AzureDelos, AadAuthorityAudience.AzureAdAndPersonalMicrosoftAccount, "https://login.sovcloud-identity.de/common/", DisplayName = "AzureDelos + AzureAdAndPersonalMicrosoftAccount")] + [DataRow(AzureCloudInstance.AzureDelos, AadAuthorityAudience.PersonalMicrosoftAccount, "https://login.sovcloud-identity.de/consumers/", DisplayName = "AzureDelos + PersonalMicrosoftAccount")] + [DataRow(AzureCloudInstance.AzureGovSG, AadAuthorityAudience.AzureAdMultipleOrgs, "https://login.sovcloud-identity.sg/organizations/", DisplayName = "AzureGovSG + AzureAdMultipleOrgs")] + [DataRow(AzureCloudInstance.AzureGovSG, AadAuthorityAudience.AzureAdAndPersonalMicrosoftAccount, "https://login.sovcloud-identity.sg/common/", DisplayName = "AzureGovSG + AzureAdAndPersonalMicrosoftAccount")] + [DataRow(AzureCloudInstance.AzureGovSG, AadAuthorityAudience.PersonalMicrosoftAccount, "https://login.sovcloud-identity.sg/consumers/", DisplayName = "AzureGovSG + PersonalMicrosoftAccount")] public void TestAuthorityPermutations( AzureCloudInstance cloudInstance, AadAuthorityAudience audience,