public void TestCustomEnvironmentEndpointAndAudience() { var baseEnv = AzureEnvironment.PublicEnvironments[EnvironmentName.AzureCloud]; var newEnv = new AzureEnvironment { ActiveDirectoryAuthority = "https://authority.activedirectory.microsoft.com/", ActiveDirectoryServiceEndpointResourceId = "https://custom.windowsazure.com/", AzureKeyVaultDnsSuffix = ".custom.value.windows.net", AzureKeyVaultServiceEndpointResourceId = "https://custom.vault.core.windows.net/", AdTenant = "Common", GraphEndpointResourceId = "https://customgraph.windows.net/", GraphUrl = "https://customgraph.windows.net/", OnPremise = false, ResourceManagerUrl = "https://customresourcemanager.azure.com/", StorageEndpointSuffix = ".custom.core.windows.net" }; Assert.Equal(newEnv.ActiveDirectoryServiceEndpointResourceId, newEnv.GetAudienceFromRequestUri(newEnv.GetUriFromBaseRequestUri(new Uri($"{baseEnv.ResourceManagerUrl}/subscriptions")))); Assert.Equal(newEnv.GraphEndpointResourceId, newEnv.GetAudienceFromRequestUri(newEnv.GetUriFromBaseRequestUri(new Uri($"{baseEnv.GraphUrl}/tenants")))); Assert.Equal(newEnv.ActiveDirectoryServiceEndpointResourceId, newEnv.GetAudienceFromRequestUri(newEnv.GetUriFromBaseRequestUri(new Uri($"https://mystorage.{baseEnv.StorageEndpointSuffix}/containers")))); Assert.Equal(newEnv.AzureKeyVaultServiceEndpointResourceId, newEnv.GetAudienceFromRequestUri(newEnv.GetUriFromBaseRequestUri(new Uri($"https://myvault.{baseEnv.AzureKeyVaultDnsSuffix}/keys")))); // missing endpoints Assert.Equal(newEnv.ActiveDirectoryServiceEndpointResourceId, newEnv.GetAudienceFromRequestUri(newEnv.GetUriFromBaseRequestUri(new Uri($"{baseEnv.ServiceManagementUrl}/subscriptions")))); Assert.Equal(newEnv.ActiveDirectoryServiceEndpointResourceId, newEnv.GetAudienceFromRequestUri(newEnv.GetUriFromBaseRequestUri(new Uri($"https://myazsql{baseEnv.SqlDatabaseDnsSuffix}/databases")))); Assert.Equal(newEnv.ActiveDirectoryServiceEndpointResourceId, newEnv.GetAudienceFromRequestUri(newEnv.GetUriFromBaseRequestUri(new Uri($"https://mytm.{baseEnv.TrafficManagerDnsSuffix}/packets")))); // endpoint only available in Azure Assert.Equal(baseEnv.DataLakeEndpointResourceId, newEnv.GetAudienceFromRequestUri(newEnv.GetUriFromBaseRequestUri(new Uri($"https://myadl.{baseEnv.AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix}/jobs")))); Assert.Equal(baseEnv.DataLakeEndpointResourceId, newEnv.GetAudienceFromRequestUri(newEnv.GetUriFromBaseRequestUri(new Uri($"https://myadfs.{baseEnv.AzureDataLakeStoreFileSystemEndpointSuffix}/files")))); var expected = baseEnv.ExtendedProperties[AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpointResourceId]; // extended endpoints Assert.Equal(expected, newEnv.GetAudienceFromRequestUri(newEnv.GetUriFromBaseRequestUri(new Uri($"{baseEnv.ExtendedProperties[AzureEnvironment.ExtendedEndpoint.OperationalInsightsEndpoint]}/alerts")))); Assert.Equal(baseEnv.ExtendedProperties[AzureEnvironment.ExtendedEndpoint.AnalysisServicesEndpointResourceId], newEnv.GetAudienceFromRequestUri(newEnv.GetUriFromBaseRequestUri(new Uri($"https://myazas.{baseEnv.ExtendedProperties[AzureEnvironment.ExtendedEndpoint.AnalysisServicesEndpointSuffix]}/analyzers")))); }