Библиотеки управления Azure, отклоненный сертификат

Я пытаюсь использовать пакет NuGet библиотек управления Azure для обновления развертывания с использованием ComputeManagementClient.UpgradeByNameAsync.

Я использую отпечаток своего сертификата, чтобы загрузить его из хранилища сертификатов и создать свои учетные данные, но мой запрос продолжает отклоняться со следующим сообщением:

Серверу не удалось аутентифицировать запрос. Убедитесь, что сертификат действителен и связан с этой подпиской.

Я сделал все, что мог придумать, чтобы понять это, но ничего не работает.

Я четыре раза проверил, что мой отпечаток правильный и что сертификат отображается в списке сертификатов управления в Azure. Любые идеи о том, где я могу пойти не так?

3 ответа

public static CertificateCloudCredentials FromPublishSettingsFile(string path, string subscriptionId)
        {
            try
            {
                var profile = XDocument.Load(path);
                var certificate = new X509Certificate2(
                    Convert.FromBase64String(profile.Descendants("PublishProfile").First()
                    .Attribute("ManagementCertificate").Value));
                return new CertificateCloudCredentials(subscriptionId, certificate);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

Используйте этот блок кода для создания объекта типа CertificateCloudCredentials из файла настроек публикации. После успешного создания объекта используйте приведенный ниже блок кода для создания computeManagementClient.

var computeManagementClient = new ComputeManagementClient(creds);

Хотя клиент управления вычислениями принимает только SubscriptionCloudCredentials, CertificateCloudCredentials является совместимым и будет принят.

Ответ Шри относительно прав. Я написал в блоге об использовании MAML с файлами настроек публикации гораздо более многословно, чем Sri предоставляет выше, с некоторым примером кода, если вы хотите попробовать решение с вашими собственными файлами настроек публикации.

Вам нужно будет установить сертификат на ваш локальный компьютер, прежде чем вы сможете его использовать (исходя из моего опыта). Задумывались ли вы о переходе на использование TokenCloudCredential, который позволит вам приклеить MAML к AAD с помощью пакета ADAL NuGet? Это может помочь вам смягчить проблемы, связанные с сертификатами.

Не уверен, почему это не работает для хранилища сертификатов, но другим способом было бы использовать отпечаток, который поставляется с файлом *.publishsettings для вашей подписки. Вы можете скачать этот файл, используя https://windows.azure.com/download/publishprofile.aspx

Другие вопросы по тегам