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,