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.
Questa esercitazione illustra come usare il servizio Configurazione app di Azure insieme ad Azure Key Vault. Configurazione app e Key Vault sono servizi complementari usati side-by-side nella maggior parte delle distribuzioni di applicazioni.
Configurazione app consente di usare insieme i servizi creando chiavi che fanno riferimento a valori archiviati in Key Vault. Quando crea tali chiavi, Configurazione app archivia gli URI dei valori di Key Vault piuttosto che i valori stessi.
L'applicazione utilizza il provider client di "App Configuration" per recuperare i riferimenti a "Key Vault", allo stesso modo in cui lo fa per qualsiasi altra chiave archiviata in "App Configuration". In questo caso, i valori archiviati in Configurazione app sono URI che fanno riferimento ai valori contenuti in Key Vault. Non sono valori o credenziali di Key Vault. Poiché riconosce le chiavi come riferimenti a Key Vault, il provider client usa Key Vault per recuperare i relativi valori.
L'applicazione è responsabile dell'autenticazione corretta sia per Configurazione app che per Key Vault. I due servizi non comunicano direttamente.
Questa esercitazione illustra come implementare i riferimenti a Key Vault nel codice. Si basa sull'applicazione web introdotta nel quickstart. Prima di continuare, completare le procedure descritte in Creare un'app Java Spring con Configurazione app.
Per completare i passaggi riportati in questa esercitazione, è possibile usare qualsiasi editor di codice. Ad esempio, Visual Studio Code è un editor di codice multipiattaforma disponibile per i sistemi operativi Windows, macOS e Linux.
In questa esercitazione apprenderai a:
- Creare una chiave di Configurazione app che faccia riferimento a un valore archiviato in Key Vault.
- Accedere al valore di questa chiave da un'applicazione Java Spring.
Prerequisiti
- Sottoscrizione di Azure: creare un account gratuito
- Un Java Development Kit (JDK) supportato nella versione 17.
- Apache Maven versione 3.0 o successive.
- Completare la guida introduttiva Creare un'app Java Spring con Configurazione app.
Creare un insieme di credenziali delle chiavi
Accedere al portale di Azure e quindi selezionare Crea una risorsa.
Nella casella di ricerca immettere Key Vault. Nell'elenco dei risultati selezionare Key Vault.
Nella pagina Key Vault selezionare Crea.
Nella pagina Crea una Cassaforte delle chiavi, immettere le informazioni seguenti:
- Per Sottoscrizione: selezionare una sottoscrizione.
- Per Gruppo di risorse immettere il nome di un gruppo di risorse esistente oppure selezionare Crea nuovo e immettere un nome del gruppo di risorse.
- Per Nome Key Vault: immettere un nome univoco.
- Per Area: selezionare una località.
Per le altre opzioni, usare i valori predefiniti.
Selezionare Rivedi e crea.
Dopo che il sistema convalida e visualizza gli input, selezionare Crea.
A questo punto, il tuo account Azure è l'unico autorizzato ad accedere a questa nuova cassaforte.
Aggiungere un segreto a Key Vault
Aggiungere un segreto al Key Vault per testare il recupero. Il segreto è denominato Message e il relativo valore è "Hello from Key Vault".
Nel menu della risorsa Key Vault selezionare Segreti degli oggetti>.
Seleziona Genera/Importa.
Nella finestra di dialogo Crea un segreto immettere i valori seguenti:
- Per Opzioni di caricamento: immettere Manuale.
- Per Nome: immettere Messaggio.
- Per Valore segreto: immettere Hello from Key Vault.
Per le altre opzioni, usare i valori predefiniti.
Selezionare Crea.
Aggiungere a Configurazione app un riferimento a Key Vault
Accedere al portale di Azure. Selezionare Tutte le risorse e quindi selezionare il tuo store di App Configuration.
Selezionare Esplora configurazioni.
Selezionare + Crea>Riferimento Key Vault e quindi specificare i valori seguenti:
- Chiave: immettere /application/config.keyVaultMessage.
- Etichetta: lasciare vuoto questo valore.
- Sottoscrizione, gruppo di risorse e Insieme di credenziali delle chiavi: immettere i valori corrispondenti all'insieme di credenziali delle chiavi creato nella sezione precedente.
- Segreto: selezionare il segreto denominato Message creato nella sezione precedente.
Concedere all'app l'accesso a Key Vault
L'applicazione usa DefaultAzureCredential per eseguire l'autenticazione sia in Configurazione app che in Key Vault. Questa credenziale funziona automaticamente con le identità gestite in Azure e con le credenziali dello sviluppatore in locale.
Concedere l'accesso basato su identità a Key Vault. Assegnare il ruolo Key Vault Secrets User all'account utente o all'identità gestita:
az role assignment create --role "Key Vault Secrets User" --scope /subscriptions/<subscriptionId>/resourceGroups/<group-name>/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name> --assignee <your-azure-ad-user-or-managed-identity>Concedere all'identità l'accesso alla Configurazione app. Assegnare il ruolo Lettore dati di Configurazione dell'app :
az role assignment create --role "App Configuration Data Reader" --scope /subscriptions/<subscriptionId>/resourceGroups/<group-name>/providers/Microsoft.AppConfiguration/configurationStores/<your-app-configuration-store> --assignee <your-azure-ad-user-or-managed-identity>
Aggiornare il codice per usare un riferimento a Key Vault
Creare una variabile di ambiente denominata APP_CONFIGURATION_ENDPOINT. Impostarne il valore sull'endpoint dell'archivio di Configurazione app. È possibile trovare l'endpoint nel pannello Chiavi di accesso nel portale di Azure. Riavviare il prompt dei comandi per rendere effettiva la modifica.
Aprire il file di configurazione nella cartella resources . Aggiornare questo file per usare il valore APP_CONFIGURATION_ENDPOINT. Rimuovere tutti i riferimenti a una stringa di connessione in questo file.
spring:
config:
import: azureAppConfiguration
cloud:
azure:
appconfiguration:
stores:
- endpoint: ${APP_CONFIGURATION_ENDPOINT}
Nota
È anche possibile usare le configurazioni globali di Spring Cloud di Azure per connettersi a Key Vault.
Aprire MyProperties.java. Aggiungere una nuova variabile denominata keyVaultMessage:
private String keyVaultMessage; public String getKeyVaultMessage() { return keyVaultMessage; } public void setKeyVaultMessage(String keyVaultMessage) { this.keyVaultMessage = keyVaultMessage; }Aprire HelloController.java. Aggiornare il metodo getMessage per includere il messaggio recuperato da Key Vault.
@GetMapping public String getMessage() { return "Message: " + properties.getMessage() + "\nKey Vault message: " + properties.getKeyVaultMessage(); }Compilare l'applicazione Spring Boot con Maven ed eseguirla, ad esempio:
mvn clean package mvn spring-boot:runQuando l'applicazione è in esecuzione, è possibile testarla usando curl, ad esempio:
curl -X GET http://localhost:8080/Dovrebbe essere visualizzato il messaggio indicante che è stato eseguito l'accesso nell'archivio di Configurazione app. Viene visualizzato anche il messaggio immesso in Key Vault.
Pulire le risorse
Se non si vuole continuare a usare le risorse create in questo articolo, eliminare il gruppo di risorse creato qui per evitare addebiti.
Importante
L'eliminazione di un gruppo di risorse è irreversibile. Il gruppo di risorse e tutte le risorse in esso contenute vengono eliminati in modo permanente. Assicurarsi di non eliminare accidentalmente il gruppo di risorse o le risorse sbagliate. Se le risorse per questo articolo sono state create in un gruppo di risorse che contiene altre risorse che si vogliono mantenere, eliminare ogni risorsa singolarmente dal rispettivo riquadro anziché eliminare il gruppo di risorse.
- Accedere al portale di Azure e selezionare Gruppi di risorse.
- Nella casella Filtra per nome immettere il nome del gruppo di risorse.
- Nell'elenco dei risultati selezionare il nome del gruppo di risorse per visualizzare una panoramica.
- Selezionare Elimina gruppo di risorse.
- Verrà chiesto di confermare l'eliminazione del gruppo di risorse. Immettere il nome del gruppo di risorse per confermare e selezionare Elimina.
Dopo qualche istante, il gruppo di risorse e tutte le risorse che contiene vengono eliminati.
Passaggi successivi
In questa esercitazione è stata creata una chiave di Configurazione app che fa riferimento a un valore archiviato in Key Vault. Per altre domande, vedere la documentazione di riferimento, con tutti i dettagli sul funzionamento della libreria spring cloud app Azure Configuration. Per informazioni su come usare i flag di funzionalità nell'applicazione Java Spring, continuare con l'esercitazione successiva.