Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Spring Cloud Azure est un projet open source qui facilite l’utilisation des services Azure dans les applications Spring.
Spring Cloud Azure est un projet open source, avec toutes les ressources disponibles pour le public. La liste suivante fournit des liens vers ces ressources :
- Code source : Azure/azure-sdk-for-java.
- Exemples : Azure-Samples/azure-spring-boot-samples.
- Documentation : Spring Cloud Azure.
À quoi sert Spring Cloud Azure ?
Spring Cloud Azure peut faciliter l’accomplissement des tâches suivantes dans les applications Spring :
- Gestion des propriétés de configuration avec Azure App Configuration.
- Envoi et réception de messages avec Azure Event Hubs, Azure Service Bus et Azure Storage File d’attente.
- Gestion des secrets et des certificats avec Azure Key Vault.
- Prise en charge de la connexion utilisateur avec des comptes professionnels ou scolaires approvisionnés avec Microsoft Entra ID.
- Prise en charge de la connexion utilisateur avec des comptes sociaux tels que Facebook et Google avec Azure Active Directory B2C.
- Protection de vos API web et accès aux API protégées comme Microsoft Graph pour utiliser les données de vos utilisateurs et de votre organisation avec Microsoft Entra ID et Azure Active Directory B2C.
- Stockage de données structurées avec Azure Cosmos DB.
- Stockage de données non structurées telles que des données texte ou binaires avec Azure Blob Storage.
- Stockage de fichiers avec Azure Files.
Avantages de l’utilisation de Spring Cloud Azure
La section suivante illustre les avantages de l’utilisation de Spring Cloud Azure. Dans cette section, la récupération des secrets stockés dans Azure Key Vault est utilisée comme exemple. Cette section compare les différences entre le développement d’une application Spring Boot et sans Spring Cloud Azure.
Sans Spring Cloud Azure
Sans Spring Cloud Azure, si vous souhaitez récupérer des secrets stockés dans Azure Key Vault, vous devez effectuer les étapes suivantes :
Ajoutez les dépendances suivantes dans votre fichier pom.xml :
<dependency> <groupId>com.azure</groupId> <artifactId>azure-security-keyvault-secrets</artifactId> <version>4.5.2</version> </dependency>Construisez une
SecretClientinstance de classe à l’aide du code similaire à l’exemple suivant :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(); } }Évitez les informations de codage en dur, telles que
client-idetclient-secreten rendant ces propriétés configurables, comme illustré dans l’exemple suivant :@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; } }Mettez à jour votre code d’application comme indiqué dans cet exemple :
@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()); } }Ajoutez les propriétés nécessaires à votre fichier application.yml , comme illustré dans l’exemple suivant :
azure: keyvault: vault-url: tenant-id: client-id: client-secret:Si vous devez utiliser
SecretClientdans plusieurs emplacements, définissez unSecretClientharicot. Ensuite, le fil automatiqueSecretClientdans les emplacements appropriés.
Avec Spring Cloud Azure
Avec Spring Cloud Azure, si vous souhaitez récupérer des secrets stockés dans Azure Key Vault, les exigences sont plus simples, comme indiqué dans les étapes suivantes :
Ajoutez les dépendances suivantes dans votre fichier pom.xml :
<dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-keyvault-secrets</artifactId> </dependency> </dependencies>Utilisez une facture de matériaux (BOM) pour gérer la version de Spring Cloud Azure, comme illustré dans l’exemple suivant :
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>7.0.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
Remarque
Si vous utilisez Spring Boot 4.0.x, veillez à mettre la spring-cloud-azure-dependencies version à 7.0.0.
Si vous utilisez Spring Boot 3.5.x, assurez-vous de définir la version spring-cloud-azure-dependencies à 6.1.0.
Si vous utilisez Spring Boot 3.1.x-3.5.x, veillez à définir la version spring-cloud-azure-dependencies5.25.0.
Si vous utilisez Spring Boot 2.x, assurez-vous de définir la version spring-cloud-azure-dependencies sur 4.20.0.
Cette liste de matériel (BOM) doit être configurée dans la section <dependencyManagement> de votre fichier pom.xml. Cela garantit que toutes les dépendances spring Cloud Azure utilisent la même version.
Pour plus d’informations sur la version utilisée pour ce boM, consultez Which Version of Spring Cloud Azure Should I Use.
Ajoutez les propriétés suivantes à votre fichier application.yml :
spring: cloud: azure: keyvault: secret: endpoint:Connectez-vous avec Azure CLI à l’aide de la commande suivante. Vos informations d’identification seront ensuite fournies par Azure CLI. Il n’est donc pas nécessaire d’ajouter d’autres informations d’identification telles que
client-idetclient-secret.az loginFil automatique
SecretClientdans les emplacements appropriés, comme illustré dans l’exemple suivant :@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 fournit d’autres fonctionnalités en plus de l'SecretClient configuré automatiquement. Par exemple, vous pouvez utiliser @Value pour obtenir la valeur secrète, comme illustré dans l’exemple suivant :
@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);
}
}
Composants de Spring Cloud Azure
Azure support
Fournit la prise en charge de la configuration automatique pour les services Azure, tels que Service Bus, stockage, Active Directory, etc.
Microsoft Entra ID
Fournit une prise en charge de l’intégration de Spring Security avec Microsoft Entra ID pour l’authentification. Pour plus d’informations, consultez Spring Cloud Azure support pour Spring Security.
Azure Key Vault
Fournit la prise en charge de l’annotation Spring @Value pour l’intégration à Azure Key Vault Secrets. Pour plus d’informations, consultez Spring Cloud Azure gestion des secrets.
Azure Storage
Fournit la prise en charge de Spring Boot pour les services Azure Storage. Pour plus d’informations, consultez Spring Cloud Azure gestion des ressources.
Obtenir du support
Si vous avez besoin d’aide pour Spring Cloud Azure, vous pouvez demander de l’aide de la manière suivante :
- Créez des tickets Azure support. Les clients disposant d’un plan Azure support peuvent ouvrir un ticket Azure support. Nous vous recommandons cette option si votre problème nécessite une attention immédiate.
- Déposez des problèmes GitHub dans le référentiel Azure/azure-sdk-for-java. Nous utilisons GitHub problèmes pour suivre les bogues, les questions et les demandes de fonctionnalités. Les problèmes GitHub sont gratuits, mais le temps de réponse n'est pas garanti. Pour plus d’informations, consultez GitHub processus de support des problèmes.
Étapes suivantes
- Tutorial : Lire un secret à partir de Azure Key Vault dans une application Spring Boot
- Sécuriser l'API REST à l'aide de Spring Security 5 et Microsoft Entra ID
- Comment utiliser le Spring Boot Starter avec Azure Cosmos DB pour NoSQL