Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Spring Cloud Azure — это проект open source, который упрощает использование служб Azure в Spring.
Spring Cloud Azure — это проект open source с всеми ресурсами, доступными для общественности. В следующем списке приведены ссылки на эти ресурсы:
- Исходный код: Azure/azure-sdk-for-java.
- Примеры: Azure-Samples/azure-spring-boot-samples.
- Документация: Spring Cloud Azure.
Для чего используется spring Cloud Azure?
Spring Cloud Azure поможет упростить выполнение следующих задач в приложениях Spring:
- Управление свойствами конфигурации с помощью Azure App Configuration.
- Отправка и получение сообщений с помощью Azure Event Hubs, Azure Service Bus и Azure Storage Queue.
- Управление секретами и сертификатами с помощью Azure Key Vault.
- Поддержка входа пользователей с рабочими или учебными учетными записями, подготовленными с помощью Microsoft Entra ID.
- Поддержка входа пользователей с помощью социальных учетных записей, таких как Facebook и Google, с Azure Active Directory B2C.
- Защита веб-API и доступ к защищенным API, таким как Microsoft Graph для работы с данными пользователей и организации с помощью Microsoft Entra ID и Azure Active Directory B2C.
- Хранение структурированных данных с помощью Azure Cosmos DB.
- Хранение неструктурированных данных, таких как текстовые или двоичные данные с помощью Azure Blob Storage.
- Хранение файлов с помощью Azure Files.
Преимущества использования Spring Cloud Azure
В следующем разделе показаны преимущества использования Spring Cloud Azure. В этом разделе в качестве примера используется извлечение секретов, хранящихся в Azure Key Vault. В этом разделе сравниваются различия между разработкой приложения Spring Boot и без Azure Spring Cloud.
Без Spring Cloud Azure
Без Azure Spring Cloud, если вы хотите получить секреты, хранящиеся в Azure Key Vault, выполните следующие действия.
Добавьте следующие зависимости в файл pom.xml:
<dependency> <groupId>com.azure</groupId> <artifactId>azure-security-keyvault-secrets</artifactId> <version>4.5.2</version> </dependency>Создайте экземпляр класса
SecretClientс помощью кода, аналогичного следующему примеру:public class DemoClass { public static void main(String... args) { SecretClient client = new SecretClientBuilder() .vaultUrl("vaultUrl") .credential(new ClientSecretCredentialBuilder() .tenantId("tenantId") .clientId("clientId") .clientSecret("clientSecret") .build()) .buildClient(); } }Избегайте жесткого написания таких сведений, как
client-idиclient-secret, делая эти свойства настраиваемыми, как показано в следующем примере:@ConfigurationProperties("azure.keyvault") public class KeyVaultProperties { private String vaultUrl; private String tenantId; private String clientId; private String clientSecret; public KeyVaultProperties(String vaultUrl, String tenantId, String clientId, String clientSecret) { this.vaultUrl = vaultUrl; this.tenantId = tenantId; this.clientId = clientId; this.clientSecret = clientSecret; } public String getVaultUrl() { return vaultUrl; } public void setVaultUrl(String vaultUrl) { this.vaultUrl = vaultUrl; } public String getTenantId() { return tenantId; } public void setTenantId(String tenantId) { this.tenantId = tenantId; } public String getClientId() { return clientId; } public void setClientId(String clientId) { this.clientId = clientId; } public String getClientSecret() { return clientSecret; } public void setClientSecret(String clientSecret) { this.clientSecret = clientSecret; } }Обновите код приложения, как показано в этом примере:
@SpringBootApplication @EnableConfigurationProperties(KeyVaultProperties.class) public class SecretClientApplication implements CommandLineRunner { private KeyVaultProperties properties; public SecretClientApplication(KeyVaultProperties properties) { this.properties = properties; } public static void main(String[] args) { SpringApplication.run(SecretClientApplication.class, args); } @Override public void run(String... args) { SecretClient client = new SecretClientBuilder() .vaultUrl(properties.getVaultUrl()) .credential(new ClientSecretCredentialBuilder() .tenantId(properties.getTenantId()) .clientId(properties.getClientId()) .clientSecret(properties.getClientSecret()) .build()) .buildClient(); System.out.println("sampleProperty: " + client.getSecret("sampleProperty").getValue()); } }Добавьте необходимые свойства в файл application.yml, как показано в следующем примере:
azure: keyvault: vault-url: tenant-id: client-id: client-secret:Если необходимо использовать
SecretClientв нескольких местах, определите компонентSecretClient. Затем подключите проводSecretClientв соответствующих местах.
С Spring Cloud Azure
При использовании Spring Cloud Azure, если вы хотите получить секреты, хранящиеся в Azure Key Vault, требования проще, как показано на следующих шагах:
Добавьте следующие зависимости в файл pom.xml:
<dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-keyvault-secrets</artifactId> </dependency> </dependencies>Используйте счет за материалы (BOM) для управления версией Azure Spring Cloud, как показано в следующем примере:
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>7.1.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
Заметка
Если вы используете Spring Boot 4.0.x, обязательно установите версию, указанную в spring-cloud-azure-dependencies, на значение 7.1.0.
Если вы используете Spring Boot 3.5.x, обязательно задайте версию spring-cloud-azure-dependencies на 6.1.0.
Если вы используете Spring Boot 3.1.x-3.5.x, обязательно установите для нее версию spring-cloud-azure-dependencies на 5.25.0.
Если вы используете Spring Boot 2.x, обязательно установите версию spring-cloud-azure-dependencies на 4.20.0.
Эта ведомость материалов (BOM) должна быть сконфигурирована в <dependencyManagement> разделе файла pom.xml. Это гарантирует, что все зависимости Spring Cloud Azure используют одну и ту же версию.
Дополнительные сведения о версии, используемой для этого BOM, можно найти в разделе Какую версию Spring Cloud Azure мне следует использовать?.
Добавьте следующие свойства в файл application.yml :
spring: cloud: azure: keyvault: secret: endpoint:Войдите в Azure CLI, используя следующую команду. Затем учетные данные будут предоставлены Azure CLI, поэтому не потребуется добавлять другие учетные данные, такие как
client-idиclient-secret.az loginАвтоматически подключите
SecretClientв соответствующих местах, как показано в следующем примере:@SpringBootApplication public class SecretClientApplication implements CommandLineRunner { private final SecretClient secretClient; public SecretClientApplication(SecretClient secretClient) { this.secretClient = secretClient; } public static void main(String[] args) { SpringApplication.run(SecretClientApplication.class, args); } @Override public void run(String... args) { System.out.println("sampleProperty: " + secretClient.getSecret("sampleProperty").getValue()); } }
Spring Cloud Azure предоставляет некоторые другие функции, помимо автоматически настроенного SecretClient. Например, можно использовать @Value для получения значения секрета, как показано в следующем примере:
@SpringBootApplication
public class PropertySourceApplication implements CommandLineRunner {
@Value("${sampleProperty1}")
private String sampleProperty1;
public static void main(String[] args) {
SpringApplication.run(PropertySourceApplication.class, args);
}
public void run(String[] args) {
System.out.println("sampleProperty1: " + sampleProperty1);
}
}
Компоненты Spring Cloud Azure
Поддержка Azure
Предоставляет поддержку автоматической настройки для служб Azure, таких как Service Bus, хранилище, Active Directory и т. д.
Microsoft Entra ID
Предоставляет поддержку интеграции Spring Security с Microsoft Entra ID для проверки подлинности. Дополнительные сведения см. в разделе Spring Cloud Azure support for Spring Security.
Azure Key Vault
Предоставляет поддержку аннотаций Spring @Value для интеграции с секретами Azure Key Vault. Дополнительные сведения см. в статье Spring Cloud Azure secret management.
Azure Storage
Предоставляет поддержку Spring Boot для служб Azure Storage. Дополнительные сведения см. в разделе Spring Cloud Azure для обработки ресурсов.
Получение поддержки
Если вам нужна поддержка Spring Cloud Azure, вы можете обратиться за помощью следующим образом:
- Создайте заявки в поддержку Azure. Клиенты с планом поддержки Azure могут оформить запрос в службу поддержки Azure. Мы рекомендуем этот вариант, если ваша проблема требует немедленного внимания.
- Создайте задачи в GitHub в репозитории Azure/azure-sdk-for-java. Мы используем задачи GitHub для отслеживания ошибок, вопросов и запросов функций. Проблемы на GitHub бесплатны, но нет гарантии на время отклика. Дополнительные сведения см. в разделе процесс поддержки обращений на GitHub.
Дальнейшие действия
- Тьюториал: как прочитать секрет из Azure Key Vault в приложении Spring Boot
- Обеспечьте безопасность REST API с помощью Spring Security 5 и Microsoft Entra ID.
- Как использовать стартер Spring Boot с Azure Cosmos DB для NoSQL