Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Spring Cloud Azure è un progetto open source che semplifica l'uso dei servizi di Azure nelle applicazioni Spring .
Spring Cloud Azure è un progetto open source, con tutte le risorse disponibili per il pubblico. L'elenco seguente fornisce collegamenti a queste risorse:
- Codice sorgente: Azure/azure-sdk-for-java.
- Esempi: Azure-Samples/azure-spring-boot-samples.
- Documentazione: Spring Cloud Azure.
Che cos'è Spring Cloud Azure usato per?
Spring Cloud Azure consente di semplificare l'esecuzione delle attività seguenti nelle applicazioni Spring:
- Gestione delle proprietà di configurazione con Configurazione app di Azure.
- Invio e ricezione di messaggi con Azure Event Hubs , Azure Service Bus e Azure Storage Queue .
- Gestione di segreti e certificati con Azure Key Vault.
- Supporto dell'accesso utente con account aziendali o dell'istituto di istruzione forniti con Microsoft Entra ID.
- Supporto dell'accesso utente con account di social networking come Facebook e Google con Azure Active Directory B2C.
- Proteggere le API Web e accedere ad API protette come Microsoft Graph per lavorare con i dati degli utenti e dell'organizzazione con Microsoft Entra ID e Azure Active Directory B2C.
- Archiviazione di dati strutturati con Azure Cosmos DB.
- Archiviazione di dati non strutturati come dati di testo o binari con Archiviazione BLOB di Azure.
- Archiviazione di file con File di Azure.
Vantaggi dell'uso di Spring Cloud Azure
La sezione seguente illustra i vantaggi dell'uso di Spring Cloud Azure. In questa sezione viene usato come esempio il recupero dei segreti archiviati in Azure Key Vault. Questa sezione confronta le differenze tra lo sviluppo di un'applicazione Spring Boot con e senza Spring Cloud Azure.
Senza Spring Cloud Azure
Senza Spring Cloud Azure, se si vogliono recuperare i segreti archiviati in Azure Key Vault, è necessario seguire questa procedura:
Aggiungere le dipendenze seguenti al file pom.xml :
<dependency> <groupId>com.azure</groupId> <artifactId>azure-security-keyvault-secrets</artifactId> <version>4.5.2</version> </dependency>
Creare un'istanza di classe
SecretClient
usando codice simile all'esempio seguente: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(); } }
Evitare di codificare in modo rigido informazioni come
client-id
eclient-secret
, rendendo queste proprietà configurabili, come illustrato nell'esempio seguente.@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; } }
Aggiornare il codice dell'applicazione come illustrato in questo esempio:
@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()); } }
Aggiungere le proprietà necessarie al file application.yml , come illustrato nell'esempio seguente:
azure: keyvault: vault-url: tenant-id: client-id: client-secret:
Se è necessario usare
SecretClient
in più posizioni, definire unSecretClient
bean. Quindi, cabla automaticamenteSecretClient
nei luoghi pertinenti.
Utilizzando Spring Cloud Azure
Con Spring Cloud Azure, se si vogliono recuperare i segreti archiviati in Azure Key Vault, i requisiti sono più semplici, come illustrato nei passaggi seguenti:
Aggiungere le dipendenze seguenti al file pom.xml :
<dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-keyvault-secrets</artifactId> </dependency> </dependencies>
Usare una distinta base (BOM) per controllare la versione di Spring Cloud Azure, come illustrato nell'esempio seguente:
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>5.22.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
Nota
Se si usa Spring Boot 2.x, assicurarsi di impostare la versione
spring-cloud-azure-dependencies
su4.20.0
. Questa distinta base deve essere configurata nella<dependencyManagement>
sezione del file dipom.xml . In questo modo tutte le dipendenze di Spring Cloud Azure usano la stessa versione. Per ulteriori informazioni sulla versione utilizzata per questa BOM, vedere Quale versione di Spring Cloud Azure dovrei usare.Aggiungere le proprietà seguenti al file application.yml :
spring: cloud: azure: keyvault: secret: endpoint:
Accedi con Azure CLI usando il comando seguente. Le credenziali verranno quindi fornite dall'interfaccia della riga di comando di Azure, quindi non sarà necessario aggiungere altre informazioni sulle credenziali, ad esempio
client-id
eclient-secret
.az login
Collega automaticamente il
SecretClient
nei punti pertinenti, come illustrato nell'esempio seguente.@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 fornirà altre funzionalità oltre al SecretClient
configurato automaticamente. Ad esempio, è possibile usare @Value
per ottenere il valore del segreto, come illustrato nell'esempio seguente:
@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);
}
}
Componenti di Spring Cloud Azure
Supporto di Azure
Fornisce supporto per la configurazione automatica per i servizi di Azure, ad esempio bus di servizio, archiviazione, Active Directory e così via.
Microsoft Entra ID
Fornisce supporto per l'integrazione per Spring Security con Microsoft Entra ID per l'autenticazione. Per altre informazioni, vedere Supporto di Spring Cloud Azure per Spring Security.
Azure Key Vault (Archivio chiavi di Azure)
Fornisce il supporto delle annotazioni Spring @Value
per l'integrazione con Azure Key Vault Secret. Per altre informazioni, vedere Spring Cloud Azure secret management( Gestione dei segreti di Spring Cloud).
Archiviazione di Azure
Fornisce il supporto Spring Boot per i servizi di Archiviazione di Azure. Per altre informazioni, vedere Gestione delle risorse di Spring Cloud di Azure.
Ottenere supporto
Se è necessario il supporto per Spring Cloud Azure, è possibile richiedere assistenza nei modi seguenti:
- Creare ticket di supporto di Azure. I clienti con un piano di supporto di Azure possono aprire un ticket di supporto di Azure . Se il problema richiede attenzione immediata, è consigliabile usare questa opzione.
- Risolvere i problemi di GitHub nel repository Azure/azure-sdk-for-java. I problemi di GitHub vengono usati per tenere traccia di bug, domande e richieste di funzionalità. Le segnalazioni su GitHub sono gratuite, ma il tempo di risposta non è garantito. Per altre informazioni, vedere Processo di supporto dei problemi di GitHub.