Бесплатная пробная учетная запись Azure не может пройти проверку подлинности через Java SDK

Я использую простой код Java SDK для проверки базового соединения Azure. Я загрузил сертификат управления в настройках на портале Azure. Но я получаю следующее исключение при каждой попытке аутентификации:

Исключение в потоке "main" com.microsoft.windowsazure.exception.ServiceException: ForbiddenError: Серверу не удалось аутентифицировать запрос. Убедитесь, что сертификат действителен и связан с этой подпиской. в com.microsoft.windowsazure.exception.ServiceException.createFromXml(ServiceException.java:206) в com.microsoft.windowsazure.management.LocationOperationsImpl.list(LocationOperationsImpl.java:162) в com.mycompany.testproj1.test1.main(test1.java:46)

Когда я пытаюсь скачать сертификат, используя Azure Cli

Информация экспорта сертификата учетной записи $ azure: Ошибка экспорта сертификата учетной записи команды: Эта подписка не использует информацию сертификата управления: Информация об ошибке была записана в /Users/tt/.azure/azure.err ошибка: сбой команды экспорта сертификата учетной записи

Это связано с моим использованием бесплатной пробной версии?

1 ответ

Решение

Проблемы не связаны с бесплатной пробной версией, обратитесь к первому часто задаваемому вопросу https://azure.microsoft.com/en-us/pricing/free-trial-faq/.

Ограничения подписки Azure см. По https://azure.microsoft.com/en-us/documentation/articles/azure-subscription-service-limits/.

Похоже, вы не можете использовать сертификат управления для успешного управления службами Azure после загрузки сертификата управления в настройках портала Azure.

В Java есть частичный пример кода для проверки подлинности Azure Service Management.

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

import com.microsoft.windowsazure.Configuration;
import com.microsoft.windowsazure.core.utils.KeyStoreType;
import com.microsoft.windowsazure.management.configuration.ManagementConfiguration;
import com.microsoft.windowsazure.management.compute.ComputeManagementService;
import com.microsoft.windowsazure.management.compute.ComputeManagementClient;
import com.microsoft.windowsazure.management.network.NetworkManagementService;
import com.microsoft.windowsazure.management.network.NetworkManagementClient;

String uri = "https://management.core.windows.net/";
        String subscriptionId = "<your subscription id>";
        String keyStoreLocation = "<KeyStore.jks>";
        String keyStorePassword = "<password for KeyStore>";

        Configuration config = ManagementConfiguration.configure(
                new URI(uri),
                subscriptionId,
                keyStoreLocation, // the file path to the JKS
                keyStorePassword, // the password for the JKS
                KeyStoreType.jks // flags that I'm using a JKS keystore
              );

// For Compute Management
ComputeManagementClient computeManagementClient = ComputeManagementService.create(config);

//For Networing Management
NetworkManagementClient client = NetworkManagementService.create(config);

// Others like above

Код зависит от некоторых репозиториев Maven ниже в pom.xml, что вам нужно добавить в свой проект.

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>azure-svc-mgmt</artifactId>
    <version>0.8.3</version>
</dependency>
<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>azure-svc-mgmt-compute</artifactId>
    <version>0.8.3</version>
</dependency>
<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>azure-svc-mgmt-network</artifactId>
    <version>0.8.3</version>
</dependency>

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

Во-первых, используя команду login и имя пользователя и пароль Azure для подключения вашей подписки Azure.

$ azure login -u <username@hostname>

Во-вторых, переключение режима управления службами Azure для экспорта сертификата.

$ azure config mode asm

Наконец, загрузка сертификата.

$ azure account cert export

Затем вы можете найти файл сертификата под названием <subscription-id>.pem на текущем пути.

Для получения подробной информации, вы можете обратиться к https://azure.microsoft.com/en-us/documentation/articles/xplat-cli-connect/.

Любые вопросы по этой теме, пожалуйста, дайте мне знать.

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