Ejemplo n.º 1
0
        public PsApiManagementHostnameCertificate UploadCertificate(
            string resourceGroupName,
            string serviceName,
            PsApiManagementHostnameType hostnameType,
            string pfxPath,
            string pfxPassword)
        {
            byte[] certificate;
            using (var certStream = File.OpenRead(pfxPath))
            {
                certificate = new byte[certStream.Length];
                certStream.Read(certificate, 0, certificate.Length);
            }
            var encodedCertificate = Convert.ToBase64String(certificate);

            var parameters = new ApiManagementServiceUploadCertificateParameters(Mappers.MapHostnameType(hostnameType), encodedCertificate, pfxPassword);
            var result     = Client.ApiManagementService.UploadCertificate(resourceGroupName, serviceName, parameters);

            return(new PsApiManagementHostnameCertificate(result));
        }
Ejemplo n.º 2
0
        public async Task UpdateHostNameTests()
        {
            Environment.SetEnvironmentVariable("AZURE_TEST_MODE", "Playback");
            using (MockContext context = MockContext.Start(this.GetType().FullName))
            {
                var testBase = new ApiManagementTestBase(context);

                var createdService = testBase.client.ApiManagementService.CreateOrUpdate(
                    resourceGroupName: testBase.rgName,
                    serviceName: testBase.serviceName,
                    parameters: testBase.serviceProperties);

                ValidateService(createdService,
                                testBase.serviceName,
                                testBase.rgName,
                                testBase.subscriptionId,
                                testBase.location,
                                testBase.serviceProperties.PublisherEmail,
                                testBase.serviceProperties.PublisherName,
                                testBase.serviceProperties.Sku.Name,
                                testBase.tags);

                var base64ArrayCertificate = Convert.FromBase64String(testBase.base64EncodedTestCertificateData);
                var cert = new X509Certificate2(base64ArrayCertificate, testBase.testCertificatePassword);

                var uploadCertificateParams = new ApiManagementServiceUploadCertificateParameters()
                {
                    Type                = HostnameType.Proxy,
                    Certificate         = testBase.base64EncodedTestCertificateData,
                    CertificatePassword = testBase.testCertificatePassword
                };
                var certificateInformation = await testBase.client.ApiManagementService.UploadCertificateAsync(testBase.rgName, testBase.serviceName, uploadCertificateParams);

                Assert.NotNull(certificateInformation);
                Assert.Equal(cert.Thumbprint, certificateInformation.Thumbprint);
                Assert.Equal(cert.Subject, certificateInformation.Subject);

                var updateHostnameParams = new ApiManagementServiceUpdateHostnameParameters()
                {
                    Update = new List <HostnameConfigurationOld>()
                    {
                        new HostnameConfigurationOld(HostnameType.Proxy, "proxy.msitesting.net", certificateInformation)
                    }
                };

                var serviceResource = await testBase.client.ApiManagementService.UpdateHostnameAsync(
                    testBase.rgName,
                    testBase.serviceName,
                    updateHostnameParams);

                Assert.NotNull(serviceResource);
                Assert.Single(serviceResource.HostnameConfigurations);
                Assert.Equal(HostnameType.Proxy, serviceResource.HostnameConfigurations.First().Type);
                Assert.Equal("proxy.msitesting.net", serviceResource.HostnameConfigurations.First().HostName);

                // Delete
                testBase.client.ApiManagementService.Delete(
                    resourceGroupName: testBase.rgName,
                    serviceName: testBase.serviceName);

                Assert.Throws <CloudException>(() =>
                {
                    testBase.client.ApiManagementService.Get(
                        resourceGroupName: testBase.rgName,
                        serviceName: testBase.serviceName);
                });
            }
        }
 /// <summary>
 /// Upload Custom Domain SSL certificate for an API Management service. This
 /// operation will be deprecated in future releases.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group.
 /// </param>
 /// <param name='serviceName'>
 /// The name of the API Management service.
 /// </param>
 /// <param name='parameters'>
 /// Parameters supplied to the Upload SSL certificate for an API Management
 /// service operation.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <CertificateInformation> UploadCertificateAsync(this IApiManagementServiceOperations operations, string resourceGroupName, string serviceName, ApiManagementServiceUploadCertificateParameters parameters, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.UploadCertificateWithHttpMessagesAsync(resourceGroupName, serviceName, parameters, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <summary>
 /// Upload Custom Domain SSL certificate for an API Management service. This
 /// operation will be deprecated in future releases.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group.
 /// </param>
 /// <param name='serviceName'>
 /// The name of the API Management service.
 /// </param>
 /// <param name='parameters'>
 /// Parameters supplied to the Upload SSL certificate for an API Management
 /// service operation.
 /// </param>
 public static CertificateInformation UploadCertificate(this IApiManagementServiceOperations operations, string resourceGroupName, string serviceName, ApiManagementServiceUploadCertificateParameters parameters)
 {
     return(operations.UploadCertificateAsync(resourceGroupName, serviceName, parameters).GetAwaiter().GetResult());
 }