Аутентификация в Azure с помощью Java и удостоверений Azure
В этой статье представлен обзор библиотеки удостоверений Azure для Java, которая обеспечивает поддержку проверки подлинности маркера Microsoft Entra в пакете SDK Azure для Java. Эта библиотека предоставляет набор реализаций TokenCredential
, которые можно использовать для создания клиентов пакета SDK Azure, поддерживающих проверку подлинности маркера Microsoft Entra.
Библиотека удостоверений Azure сейчас поддерживает следующие возможности:
- Проверка подлинности Azure в средах разработки Java, которые позволяют:
- Проверка подлинности IDEA IntelliJ с информацией о входе, полученной из набора средств Azure для IntelliJ.
- Проверка подлинности Azure CLI с информацией о входе, сохраненной в Azure CLI
- Проверка подлинности Azure Developer CLI с информацией о входе, сохраненной в интерфейсе командной строки разработчика Azure
- Проверка подлинности Azure PowerShell с информацией о входе, сохраненной в Azure PowerShell
- Проверка подлинности приложений, размещенных в Azure, что позволяет:
DefaultAzureCredential
аутентификация- Проверка подлинности управляемого удостоверения
- Проверка подлинности с помощью субъектов-служб, которые позволяют:
- Проверка подлинности секрета клиента
- Проверка подлинности на основе сертификата клиента
- Проверка подлинности с учетными данными пользователя, которая включает:
- интерактивная аутентификация через браузер;
- аутентификация с помощью кода устройства;
- Аутентификация по имени пользователя и паролю
Следуйте этим ссылкам, чтобы узнать больше о специфике каждого из этих подходов проверки подлинности. В остальной части этой статьи мы представляем часто используемые 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
: