Поделиться через


Аутентификация в Azure с помощью Java и библиотеки Azure Identity

В этой статье представлен обзор библиотеки удостоверений Azure для Java, которая обеспечивает поддержку проверки подлинности маркера Microsoft Entra в пакете SDK Azure для Java. Эта библиотека предоставляет набор реализаций TokenCredential , которые можно использовать для создания клиентов пакета SDK Azure, поддерживающих проверку подлинности маркера Microsoft Entra.

Библиотека удостоверений Azure сейчас поддерживает следующие возможности:

Следуйте этим ссылкам, чтобы узнать больше о специфике каждого из этих подходов проверки подлинности. В остальной части этой статьи мы представляем часто используемые DefaultAzureCredential и связанные темы.

Добавление зависимостей Maven

azure-sdk-bom Включите в проект зависимость от стабильной версии библиотеки. В следующем фрагменте замените заполнитель {bom_version_to_target} номером версии. Дополнительные сведения о BOM см. в разделе "Добавление Azure SDK для Java в существующий проект" из "Начало работы с Azure SDK и Apache Maven".

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-sdk-bom</artifactId>
            <version>{bom_version_to_target}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Затем включите прямую зависимость в dependencies раздел без тега версии:

<dependencies>
  <dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
  </dependency>
</dependencies>

Основные понятия

Существует два ключевых понятия в понимании библиотеки удостоверений Azure: концепция учетных данных и наиболее распространенная реализация этих учетных данных DefaultAzureCredential.

Учетные данные — это класс, который содержит или может получать данные, необходимые клиенту службы для аутентификации запросов. Клиенты служб в Azure SDK принимают учетные данные при их создании, а затем используют их для аутентификации запросов к службе.

Библиотека удостоверений Azure фокусируется на проверке подлинности OAuth с помощью идентификатора Microsoft Entra ID и предлагает различные классы учетных данных, которые могут получить маркер Microsoft Entra для проверки подлинности запросов на обслуживание. Все классы учетных данных в этой библиотеке являются реализациями абстрактного класса TokenCredential в azure-core. Вы можете использовать любой из таких классов для создания клиентов служб, которые могут выполнять аутентификацию с помощью TokenCredential.

DefaultAzureCredential подходит для большинства сценариев, когда приложение предназначено для конечного запуска в облаке Azure. DefaultAzureCredential объединяет учетные данные, которые обычно используются для аутентификации при развертывании, с учетными данными, используемыми для аутентификации в среде разработки. Дополнительные сведения, включая примеры использования DefaultAzureCredential, см. в разделе Аутентификация приложений Java, размещенных в Azure, в подразделе DefaultAzureCredential.

Примеры

Как описано в статье Использование пакета Azure SDK для Java, между библиотеками управления есть некоторые различия. Одним из способов их отличия является то, что существуют библиотеки для использования служб Azure, называемых клиентскими библиотеками, и библиотеки для управления службами Azure, называемыми библиотеками управления. В следующих разделах представлен краткий обзор аутентификации в клиентских библиотеках и библиотеках управления.

Аутентификация в клиентских библиотеках Azure

В следующем примере демонстрируется проверка подлинности SecretClient в клиентской библиотеке azure-security-keyvault-secrets с помощью DefaultAzureCredential.

// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
  .vaultUrl("https://<your Key Vault name>.vault.azure.net")
  .credential(new DefaultAzureCredentialBuilder().build())
  .buildClient();

Аутентификация в библиотеках управления Azure

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

Идентификаторы подписки можно найти на странице Подписки на портале Azure. Для получения идентификаторов вы также можете выполнить следующую команду Azure CLI:

az account list --output table

Вы можете задать идентификатор подписки в переменной среды AZURE_SUBSCRIPTION_ID. AzureProfile Возвращает этот идентификатор в качестве идентификатора подписки по умолчанию во время создания экземпляра Manager в следующем примере:

AzureResourceManager azureResourceManager = AzureResourceManager.authenticate(
        new DefaultAzureCredentialBuilder().build(),
        new AzureProfile(AzureEnvironment.AZURE))
    .withDefaultSubscription();

DefaultAzureCredential используется в этом примере для проверки подлинности экземпляра AzureResourceManager с помощью DefaultAzureCredential. Кроме того, вы можете использовать другие реализации Token Credential, предлагаемые в библиотеке удостоверений Azure, вместо класса DefaultAzureCredential.

Устранение неполадок

Инструкции см. в разделе "Устранение неполадок с проверкой подлинности удостоверений Azure".

Следующие шаги

В этой статье описана функциональность удостоверений Azure, реализованная в пакете Azure SDK для Java. Оно было описано DefaultAzureCredential как распространенное и подходящее во многих случаях. В следующих статьях описаны другие способы проверки подлинности с помощью библиотеки удостоверений Azure и дополнительные сведения о DefaultAzureCredential: