Wat is Spring Cloud Azure?
Spring Cloud Azure is een opensource-project waarmee u Eenvoudiger Azure-services in Spring-toepassingen kunt gebruiken.
Spring Cloud Azure is een opensource-project, met alle resources die beschikbaar zijn voor het publiek. De volgende lijst bevat koppelingen naar deze resources:
- Broncode: Azure/azure-sdk-for-java.
- Voorbeelden: Azure-Samples/azure-spring-boot-samples.
- Documentatie: Spring Cloud Azure.
Waarvoor wordt Spring Cloud Azure gebruikt?
Spring Cloud Azure kan het eenvoudiger maken om de volgende taken uit te voeren in Spring-toepassingen:
- Configuratie-eigenschappen beheren met Azure-app-configuratie.
- Berichten verzenden en ontvangen met Azure Event Hubs, Azure Service Bus en Azure Storage Queue.
- Geheimen en certificaten beheren met Azure Key Vault.
- Ondersteuning voor gebruikersaanmelding met werk- of schoolaccounts die zijn ingericht met Microsoft Entra-id.
- Ondersteuning voor gebruikersaanmelding met sociale accounts zoals Facebook en Google met Azure Active Directory B2C.
- Het beveiligen van uw web-API's en het openen van beveiligde API's, zoals Microsoft Graph, om te werken met de gegevens van uw gebruikers en organisatie met Microsoft Entra ID en Azure Active Directory B2C.
- Gestructureerde gegevens opslaan met Azure Cosmos DB.
- Het opslaan van ongestructureerde gegevens, zoals tekst of binaire gegevens met Azure Blob Storage.
- Bestanden opslaan met Azure Files.
Voordelen van het gebruik van Spring Cloud Azure
In de volgende sectie ziet u de voordelen van het gebruik van Spring Cloud Azure. In deze sectie wordt het ophalen van geheimen die zijn opgeslagen in Azure Key Vault, als voorbeeld gebruikt. In deze sectie worden de verschillen vergeleken tussen het ontwikkelen van een Spring Boot-toepassing met en zonder Spring Cloud Azure.
Zonder Spring Cloud Azure
Als u zonder Spring Cloud Azure geheimen wilt ophalen die zijn opgeslagen in Azure Key Vault, moet u de volgende stappen uitvoeren:
Voeg de volgende afhankelijkheden toe aan uw pom.xml-bestand :
<dependency> <groupId>com.azure</groupId> <artifactId>azure-security-keyvault-secrets</artifactId> <version>4.5.2</version> </dependency>
Maak een
SecretClient
klasse-exemplaar met behulp van code die vergelijkbaar is met het volgende voorbeeld: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(); } }
Vermijd hardcoderingsinformatie zoals
client-id
enclient-secret
door deze eigenschappen configureerbaar te maken, zoals wordt weergegeven in het volgende voorbeeld:@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; } }
Werk de toepassingscode bij zoals wordt weergegeven in dit voorbeeld:
@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()); } }
Voeg de benodigde eigenschappen toe aan uw application.yml-bestand , zoals wordt weergegeven in het volgende voorbeeld:
azure: keyvault: vault-url: tenant-id: client-id: client-secret:
Als u op meerdere plaatsen wilt gebruiken
SecretClient
, definieert u eenSecretClient
bean. Vervolgens wordt automatisch bedradingSecretClient
op de relevante plaatsen.
Met Spring Cloud Azure
Als u met Spring Cloud Azure geheimen wilt ophalen die zijn opgeslagen in Azure Key Vault, zijn de vereisten eenvoudiger, zoals wordt weergegeven in de volgende stappen:
Voeg de volgende afhankelijkheden toe aan uw pom.xml-bestand :
<dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-keyvault-secrets</artifactId> </dependency> </dependencies>
Gebruik een stuklijst (bill of materials) om de Spring Cloud Azure-versie te beheren, zoals wordt weergegeven in het volgende voorbeeld:
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>5.18.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
Notitie
Als u Spring Boot 2.x gebruikt, moet u de
spring-cloud-azure-dependencies
versie instellen op4.19.0
. Deze stuklijst (Bill of Material) moet worden geconfigureerd in de<dependencyManagement>
sectie van uw pom.xml-bestand . Dit zorgt ervoor dat alle Spring Cloud Azure-afhankelijkheden dezelfde versie gebruiken. Zie welke versie van Spring Cloud Azure moet ik gebruiken voor meer informatie over de versie die voor deze BOM wordt gebruikt.Voeg de volgende eigenschappen toe aan uw application.yml-bestand :
spring: cloud: azure: keyvault: secret: endpoint:
Meld u aan met Azure CLI met behulp van de volgende opdracht. Uw referenties worden vervolgens verstrekt door Azure CLI, dus u hoeft geen andere referentiegegevens toe te voegen, zoals
client-id
enclient-secret
.az login
Automatisch verbinden
SecretClient
op de relevante plaatsen, zoals wordt weergegeven in het volgende voorbeeld:@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 biedt naast de automatisch geconfigureerde SecretClient
functies enkele andere functies. U kunt bijvoorbeeld de @Value
geheime waarde ophalen, zoals wordt weergegeven in het volgende voorbeeld:
@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);
}
}
Onderdelen van Spring Cloud Azure
Azure-ondersteuning
Biedt ondersteuning voor automatische configuratie voor Azure-services, zoals Service Bus, Opslag, Active Directory, enzovoort.
Microsoft Entra ID
Biedt integratieondersteuning voor Spring Security met Microsoft Entra ID voor verificatie. Zie Spring Cloud ondersteuning voor Azure voor Spring Security voor meer informatie.
Azure Key Vault
Biedt ondersteuning voor Spring-aantekeningen @Value
voor integratie met Azure Key Vault Secrets. Zie Spring Cloud Azure-geheimbeheer voor meer informatie.
Azure Storage
Biedt Spring Boot-ondersteuning voor Azure Storage-services. Zie De verwerking van Spring Cloud Azure-resources voor meer informatie.
Ondersteuning krijgen
Als u ondersteuning nodig hebt voor Spring Cloud Azure, kunt u op de volgende manieren om hulp vragen:
- Maak ondersteuning voor Azure tickets. Klanten met een ondersteuning voor Azure-abonnement kunnen een ondersteuning voor Azure ticket openen. We raden deze optie aan als uw probleem onmiddellijke aandacht vereist.
- File GitHub issues in the Azure/azure-sdk-for-java repository. We gebruiken GitHub-problemen om bugs, vragen en functieaanvragen bij te houden. GitHub-problemen zijn gratis, maar de reactietijd is niet gegarandeerd. Zie het ondersteuningsproces voor GitHub-problemen voor meer informatie.