Как получить подробные данные облачной службы Azure из службы приложений через Code, .NET - PullRequest
0 голосов
/ 12 июня 2018

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

Хотя в разделеблейд подписки в разделе «Сертификаты управления» сертификат существует и авторизован.

X509Store certStore = new X509Store(StoreName.My, storeLocation);
                    certStore.Open(OpenFlags.ReadOnly);


X509Certificate2Collection certCollection = certStore.Certificates.Find(X509FindType.FindByThumbprint, prodThumbprint, false);
                    if (certCollection.Count > 0)
                        CredentialsProd = new CertificateCloudCredentials(DBConstants.AZURE_SUBSCRIPTION_ID_PROD, certCollection[0]);

        using (var client = new ComputeManagementClient(Credentials))
         {
             var t = client.HostedServices.GetDetailedAsync(serviceName, CancellationToken);
         }

Исключение:

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

Сертификат в подписке: enter image description here

Сертификат в службе приложений enter image description here

1 Ответ

0 голосов
/ 18 июня 2018

Чтобы использовать сертификат, который загружен или импортирован в Службу приложений, сначала сделайте его доступным для кода своего приложения.Это делается с помощью настройки приложения WEBSITE_LOAD_CERTIFICATES .Дополнительные сведения см. В разделе Использование сертификата SSL в коде приложения в службе приложений Azure .

Добавьте параметр приложения с именем WEBSITE_LOAD_CERTIFICATES и установитеего значение для отпечатка сертификата.Чтобы сделать несколько сертификатов доступными, используйте значения большого пальца, разделенные запятыми.Чтобы сделать все сертификаты доступными, установите значение *.

enter image description here

...