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

Выполнение следующего кода в службе приложений 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: серверу не удалось аутентифицировать запрос. Убедитесь, что сертификат действителен и связан с этой подпиской.

Сертификат в подписке:  введите здесь описание изображения

Сертификат в службе приложений  введите описание изображения здесь


person Guy Assaf    schedule 12.06.2018    source источник


Ответы (1)


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

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

введите здесь описание изображения

person Tom Sun - MSFT    schedule 18.06.2018