Exemplo n.º 1
0
        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"))));
        }