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


Аутентификация в Azure с помощью Java и удостоверений Azure

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

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

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

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

Чтобы добавить зависимость Maven, включите следующий код XML в файл проекта pom.xml. Замените {version_number} номер версии последней стабильной версии, как показано на странице библиотеки удостоверений Azure.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>{version_number}</version>
</dependency>

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

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

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

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

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

Примеры

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

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

В следующем примере демонстрируется проверка подлинности SecretClient из клиентской библиотеки секретов azure-security-keyvault-secret с помощью 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: