Библиотеки управления 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