Avvio rapido: Distribuire un'applicazione API RESTful in Azure Spring Apps
Nota
I piani Basic, Standard ed Enterprise saranno deprecati a partire dalla metà di marzo 2025, con un periodo di ritiro di 3 anni. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.
Il piano Standard a consumo e dedicato sarà deprecato a partire dal 30 settembre 2024, con un arresto completo dopo sei mesi. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere Eseguire la migrazione del consumo di Azure Spring Apps Standard e del piano dedicato alle app Azure Container.
Questo articolo descrive come distribuire un'applicazione API RESTful protetta da Microsoft Entra ID in Azure Spring Apps. Il progetto di esempio è una versione semplificata basata sull'applicazione Web Simple Todo , che fornisce solo il servizio back-end e usa l'ID Microsoft Entra per proteggere le API RESTful.
Queste API RESTful sono protette applicando il controllo degli accessi in base al ruolo. Gli utenti anonimi non possono accedere ai dati e non sono autorizzati a controllare l'accesso per utenti diversi. Gli utenti anonimi hanno solo le tre autorizzazioni seguenti:
- Lettura: con questa autorizzazione, un utente può leggere i dati ToDo.
- Scrittura: con questa autorizzazione, un utente può aggiungere o aggiornare i dati ToDo.
- Elimina: con questa autorizzazione, un utente può eliminare i dati ToDo.
Al termine della distribuzione, è possibile visualizzare e testare le API tramite l'interfaccia utente di Swagger.
Il diagramma seguente illustra l'architettura del sistema:
Questo articolo descrive le opzioni seguenti per creare risorse e distribuirle in Azure Spring Apps:
- L'opzione plug-in portale di Azure + Maven offre un modo più convenzionale per creare risorse e distribuire le applicazioni in modo dettagliato. Questa opzione è adatta agli sviluppatori Spring che usano i servizi cloud di Azure per la prima volta.
- L'opzione dell'interfaccia della riga di comando per sviluppatori di Azure è un modo più efficiente per creare automaticamente le risorse e distribuire le applicazioni tramite semplici comandi. L'interfaccia della riga di comando per sviluppatori di Azure usa un modello per effettuare il provisioning delle risorse di Azure necessarie e per distribuire il codice dell'applicazione. Questa opzione è adatta agli sviluppatori Spring che hanno familiarità con i servizi cloud di Azure.
Questo articolo descrive le opzioni seguenti per creare risorse e distribuirle in Azure Spring Apps:
- L'opzione plug-in portale di Azure + Maven offre un modo più convenzionale per creare risorse e distribuire le applicazioni in modo dettagliato. Questa opzione è adatta agli sviluppatori Spring che usano i servizi cloud di Azure per la prima volta.
- L'opzione dell'interfaccia della riga di comando di Azure usa un potente strumento da riga di comando per gestire le risorse di Azure. Questa opzione è adatta agli sviluppatori Spring che hanno familiarità con i servizi cloud di Azure.
1. Prerequisiti
Una sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
Uno dei ruoli seguenti:
- Amministratore globale o Amministratore ruolo con privilegi, per concedere il consenso per le app che richiedono qualsiasi autorizzazione, per qualsiasi API.
- Amministratore dell'applicazione cloud o amministratore applicazione per concedere il consenso per le app che richiedono qualsiasi autorizzazione per qualsiasi API, ad eccezione dei ruoli dell'app Microsoft Graph (autorizzazioni dell'applicazione).
- Ruolo della directory personalizzato che include l'autorizzazione per concedere le autorizzazioni alle applicazioni, per le autorizzazioni richieste dall'applicazione.
Per altre informazioni, vedere Concedere il consenso amministratore a livello di tenant a un'applicazione.
Se viene distribuita un'istanza del piano Enterprise di Azure Spring Apps per la prima volta nella sottoscrizione di destinazione, vedere la sezione Requisiti del Piano Enterprise in Azure Marketplace.
Git.
Java Development Kit (JDK) versione 17.
Un tenant di Microsoft Entra. Per istruzioni sulla creazione di un tenant, vedere Avvio rapido: Creare un nuovo tenant in Microsoft Entra ID.
Una sottoscrizione di Azure, se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
Uno dei ruoli seguenti:
- Amministratore globale o Amministratore ruolo con privilegi, per concedere il consenso per le app che richiedono qualsiasi autorizzazione, per qualsiasi API.
- Amministratore dell'applicazione cloud o amministratore applicazione per concedere il consenso per le app che richiedono qualsiasi autorizzazione per qualsiasi API, ad eccezione dei ruoli dell'app Microsoft Graph (autorizzazioni dell'applicazione).
- Ruolo della directory personalizzato che include l'autorizzazione per concedere le autorizzazioni alle applicazioni, per le autorizzazioni richieste dall'applicazione.
Per altre informazioni, vedere Concedere il consenso amministratore a livello di tenant a un'applicazione.
Git.
Java Development Kit (JDK) versione 17.
Un tenant di Microsoft Entra. Per istruzioni sulla creazione di un tenant, vedere Avvio rapido: Creare un nuovo tenant in Microsoft Entra ID.
2. Preparare il progetto Spring
Per distribuire l'app per le API RESTful, il primo passaggio consiste nel preparare il progetto Spring per l'esecuzione in locale.
Usare la procedura seguente per clonare ed eseguire l'app in locale:
Usare il comando seguente per clonare il progetto di esempio da GitHub:
git clone https://github.com/Azure-Samples/ASA-Samples-Restful-Application.git
Se si vuole eseguire l'app in locale, completare i passaggi nelle sezioni Esporre LE API RESTful e Aggiornare prima di tutto la configurazione dell'applicazione e quindi usare il comando seguente per eseguire l'applicazione di esempio con Maven:
cd ASA-Samples-Restful-Application ./mvnw spring-boot:run
3. Preparare l'ambiente cloud
Le risorse principali necessarie per eseguire questa app di esempio sono un'istanza di Azure Spring Apps e un'istanza di Database di Azure per PostgreSQL. Le sezioni seguenti descrivono come creare queste risorse.
3.1. Accedere al portale di Azure
Passare al portale di Azure e immettere le credenziali per accedere al portale. La visualizzazione predefinita è il dashboard del servizio.
3.2. Creare un'istanza di Azure Spring Apps
Usare la procedura seguente per creare un'istanza del servizio Azure Spring Apps:
Selezionare Crea una risorsa nell'angolo del portale di Azure.
Selezionare Calcolo di>Azure Spring Apps.
Compilare il modulo Informazioni di base con le informazioni seguenti:
Selezionare Rivedi e crea per rivedere le selezioni. Selezionare quindi Crea per effettuare il provisioning dell'istanza di Azure Spring Apps.
Sulla barra degli strumenti selezionare l'icona Notifiche a forma di campana per monitorare il processo di distribuzione. Al termine della distribuzione, è possibile selezionare Aggiungi al dashboard, che crea un riquadro per questo servizio nel dashboard portale di Azure come collegamento alla pagina Panoramica del servizio.
Selezionare Vai alla risorsa per passare alla pagina Panoramica di Azure Spring Apps.
3.3. Preparare l'istanza di PostgreSQL
Usare la procedura seguente per creare un server Database di Azure per PostgreSQL:
Passare al portale di Azure e selezionare Crea una risorsa.
Selezionare Database>Database di Azure per PostgreSQL.
Selezionare l'opzione di distribuzione Server flessibile.
Compilare la scheda Informazioni di base con le informazioni seguenti:
- Nome server: my-demo-pgsql
- Area: Stati Uniti orientali
- Versione di PostgreSQL: 14
- Tipo di carico di lavoro: Sviluppo
- Abilitare la disponibilità elevata: deselezionata
- Metodo di autenticazione: solo autenticazione PostgreSQL
- Nome utente amministratore: myadmin
- Password e Conferma password: immettere una password.
Usare le informazioni seguenti per configurare la scheda Rete :
- Metodo di connettività: accesso pubblico (indirizzi IP consentiti)
- Consenti l'accesso pubblico da qualsiasi servizio di Azure in Azure a questo server: selezionato
Selezionare Rivedi e crea per esaminare le selezioni e selezionare Crea per effettuare il provisioning del server. L'operazione potrebbe richiedere alcuni minuti.
Andare al Server PostgreSQL nel portale di Azure. Nella pagina Panoramica cercare il valore Nome server e quindi registrarlo per usarlo in un secondo momento. È necessario configurare le variabili di ambiente per l'app in Azure Spring Apps.
Selezionare Database dal menu di spostamento per creare un database, ad esempio todo.
3.4. Connettere l'istanza dell'app all'istanza di PostgreSQL
Usare la procedura seguente per connettere le istanze del servizio:
Passare all'istanza di Azure Spring Apps nel portale di Azure.
Dal menu di spostamento aprire App e quindi selezionare Crea app.
Nella pagina Crea app compilare il nome dell'app simple-todo-api e quindi selezionare Artefatti Java come tipo di distribuzione.
Selezionare Crea per completare la creazione dell'app e quindi selezionare l'app per visualizzare i dettagli.
Passare all'app creata nel portale di Azure. Nella pagina Panoramica selezionare Assegna endpoint per esporre l'endpoint pubblico per l'app. Salvare l'URL per l'accesso all'app dopo la distribuzione.
Selezionare Service Connector nel riquadro di spostamento, quindi selezionare Crea per creare una nuova connessione al servizio.
Compilare la scheda Informazioni di base con le informazioni seguenti:
- Tipo di servizio: server flessibile db per PostgreSQL
- Nome connessione: viene popolato un nome generato automaticamente, che può anche essere modificato.
- Sottoscrizione: selezionare la propria sottoscrizione.
- Server flessibile PostgreSQL: my-demo-pgsql
- Database PostgreSQL: selezionare il database creato.
- Tipo di client: SpringBoot
Configurare la scheda Avanti: Autenticazione con le informazioni seguenti:
- Selezionare il tipo di autenticazione che si vuole usare tra il servizio di calcolo e il servizio di destinazione. Selezionare Stringa di connessione.
- Continuare con...: Selezionare Credenziali database
- Nome utente: myadmin
- Password: immettere la password.
Selezionare Avanti: Rete. Usare l'opzione predefinita Configura regole del firewall per abilitare l'accesso al servizio di destinazione.
Selezionare Avanti: Rivedi e crea per esaminare le selezioni, quindi selezionare Crea per creare la connessione.
3.5. Esporre le API RESTful
Seguire questa procedura per esporre le API RESTful in Microsoft Entra ID:
Accedere al portale di Azure.
Se si ha accesso a più tenant, usare il filtro Directory + sottoscrizione ( ) per selezionare il tenant in cui si vuole registrare un'applicazione.
Cercare e selezionare Microsoft Entra ID.
In Gestisci selezionare Registrazioni app>Nuova registrazione.
Immettere un nome per l'applicazione nel campo Nome, ad esempio Todo. Tale nome, che potrebbe essere visualizzato dagli utenti dell'app, può essere modificato in un secondo momento.
Per Tipi di account supportati selezionare Account in qualsiasi directory organizzativa (Qualsiasi directory Microsoft Entra - Multi-tenant) e account Microsoft personali.
Selezionare Registra per creare l'applicazione.
Nella pagina Panoramica dell'app cercare il valore del campo ID applicazione (client) e prenderne nota per un uso futuro. È necessario configurare il file di configurazione YAML per questo progetto.
In Gestisci selezionare Esporre un'API, trovare l'URI ID applicazione all'inizio della pagina e quindi selezionare Aggiungi.
Nella pagina Modifica URI ID applicazione accettare l'URI ID applicazione proposto (
api://{client ID}
) o usare un nome significativo anziché l'ID client, ad esempioapi://simple-todo
e quindi selezionare Salva.In Gestisci selezionare Esporre un'API>Aggiungi un ambito e quindi immettere le informazioni seguenti:
- In Nome ambito immettere ToDo.Read.
- Per Chi può fornire il consenso, selezionare Solo amministratori.
- Per Nome visualizzato del consenso amministratore immettere Leggi i dati ToDo.
- Per Descrizione del consenso amministratore immettere Consente agli utenti autenticati di leggere i dati ToDo.
- Per Stato mantenere abilitato.
- Seleziona Aggiungi ambito.
Ripetere i passaggi precedenti per aggiungere gli altri due ambiti: ToDo.Write e ToDo.Delete.
3.6. Aggiornare la configurazione dell'applicazione
Seguire questa procedura per aggiornare il file YAML per usare le informazioni dell'applicazione registrata di Microsoft Entra per stabilire una relazione con l'applicazione API RESTful:
Individuare il file src/main/resources/application.yml per l'app
simple-todo-api
. Aggiornare la configurazione nellaspring.cloud.azure.active-directory
sezione in modo che corrisponda all'esempio seguente. Assicurarsi di sostituire i segnaposto con i valori creati in precedenza.spring: cloud: azure: active-directory: profile: tenant-id: <tenant> credential: client-id: <your-application-ID-of-ToDo> app-id-uri: <your-application-ID-URI-of-ToDo>
Nota
Nei token v1.0, la configurazione richiede l'ID client dell'API, mentre nei token v2.0 è possibile usare l'ID client o l'URI ID applicazione nella richiesta. È possibile configurare entrambi per completare correttamente la convalida del gruppo di destinatari.
I valori consentiti per
tenant-id
sono:common
,organizations
,consumers
o l'ID tenant. Per altre informazioni su questi valori, vedere la sezione Usato l'endpoint errato (account personali e dell'organizzazione) di Errore AADSTS50020 - L'account utente del provider di identità non esiste nel tenant. Per informazioni sulla conversione dell'app a tenant singolo, vedere Convertire l'app a tenant singolo in multi-tenant in Microsoft Entra ID.Usare il comando seguente per ricompilare il progetto di esempio:
./mvnw clean package
4. Distribuire l'app in Azure Spring Apps
È ora possibile distribuire l'app in App Spring di Azure.
Usare la procedura seguente per distribuire usando il plug-in Maven per Azure Spring Apps:
Passare alla directory completa e quindi eseguire il comando seguente per configurare l'app in Azure Spring Apps:
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
L'elenco seguente descrive le interazioni con i comandi:
- Accesso OAuth2: è necessario autorizzare l'accesso ad Azure in base al protocollo OAuth2.
- Selezionare la sottoscrizione: selezionare il numero di elenco di sottoscrizioni dell'istanza di Azure Spring Apps creata, che per impostazione predefinita corrisponde alla prima sottoscrizione nell'elenco. Se si usa il numero predefinito, premere INVIO direttamente.
- Usare le app Spring di Azure esistenti in Azure: premere y per usare l'istanza di Azure Spring Apps esistente.
- Selezionare App Spring di Azure per la distribuzione: selezionare il numero dell'istanza di Azure Spring Apps creata. Se si usa il numero predefinito, premere INVIO direttamente.
- Usare l'app esistente in Azure Spring Apps <nome-istanza>: premere y per usare l'app creata.
- Confermare di salvare tutte le configurazioni precedenti: premere y. Se si preme n, la configurazione non viene salvata nei file POM.
Usare il comando seguente per distribuire l'app:
./mvnw azure-spring-apps:deploy
L'elenco seguente descrive l'interazione con il comando:
- Accesso OAuth2: è necessario autorizzare l'accesso ad Azure in base al protocollo OAuth2.
Dopo l'esecuzione del comando, è possibile visualizzare i messaggi di log seguenti che la distribuzione ha avuto esito positivo:
[INFO] Deployment Status: Running
[INFO] InstanceName:simple-todo-api-default-15-xxxxxxxxx-xxxxx Status:Running Reason:null DiscoverStatus:N/A
[INFO] Getting public url of app(simple-todo-api)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-simple-todo-api.azuremicroservices.io
5. Convalidare l'app
È ora possibile accedere all'API RESTful per verificare se funziona.
5.1. Richiedere un token di accesso
Le API RESTful fungono da server di risorse, protetto dall'ID Microsoft Entra. Prima di acquisire un token di accesso, è necessario registrare un'altra applicazione in Microsoft Entra ID e concedere le autorizzazioni all'applicazione client, denominata ToDoWeb
.
Registrare l'applicazione client
Seguire questa procedura per registrare un'applicazione in Microsoft Entra ID, che viene usata per aggiungere le autorizzazioni per l'app ToDo
:
Accedere al portale di Azure.
Se si ha accesso a più tenant, usare il filtro Directory + sottoscrizione ( ) per selezionare il tenant in cui si vuole registrare un'applicazione.
Cercare e selezionare Microsoft Entra ID.
In Gestisci selezionare Registrazioni app>Nuova registrazione.
Immettere un nome per l'applicazione nel campo Nome, ad esempio ToDoWeb. Tale nome, che potrebbe essere visualizzato dagli utenti dell'app, può essere modificato in un secondo momento.
Per Tipi di account supportati, usare solo il valore predefinito Account in questa directory organizzativa.
Selezionare Registra per creare l'applicazione.
Nella pagina Panoramica dell'app cercare il valore del campo ID applicazione (client) e prenderne nota per un uso futuro. È necessario per acquisire un token di accesso.
Selezionare Autorizzazioni API>Aggiungi un'autorizzazione>Le mie API. Selezionare l'applicazione
ToDo
registrata in precedenza e quindi selezionare le autorizzazioni ToDo.Read, ToDo.Write e ToDo.Delete . Selezionare Aggiungi autorizzazioni.Selezionare Concedi consenso amministratore per <your-tenant-name> per concedere il consenso amministratore per le autorizzazioni aggiunte.
Aggiungere un utente per accedere alle API RESTful
Usare la procedura seguente per creare un utente membro nel tenant di Microsoft Entra. L'utente può quindi gestire i dati dell'applicazione ToDo
tramite le API RESTful.
In Gestisci selezionare Utenti>Nuovo utente>Crea nuovo utente.
Nella pagina Crea nuovo utente immettere le informazioni seguenti:
- Nome entità utente: immettere un nome per l'utente.
- Nome visualizzato: immettere un nome visualizzato per l'utente.
- Password: copiare la password generata automaticamente nella casella Password .
Nota
I nuovi utenti devono completare la prima autenticazione di accesso e aggiornare le password. In caso contrario, viene visualizzato un
AADSTS50055: The password is expired
errore quando si ottiene il token di accesso.Quando un nuovo utente accede, riceve una richiesta di azione richiesta . Possono scegliere Chiedi in un secondo momento per ignorare la convalida.
Selezionare Revisione e creazione per rivedere le selezioni effettuate. Selezionare Crea per creare l'utente.
Aggiornare la configurazione di OAuth2 per l'autorizzazione dell'interfaccia utente di Swagger
Seguire questa procedura per aggiornare la configurazione di OAuth2 per l'autorizzazione dell'interfaccia utente di Swagger. È quindi possibile autorizzare gli utenti ad acquisire i token di accesso tramite l'app ToDoWeb
.
Aprire il tenant di Microsoft Entra ID nella portale di Azure e passare all'app registrata
ToDoWeb
.In Gestisci selezionare Autenticazione, selezionare Aggiungi una piattaforma e quindi selezionare Applicazione a pagina singola.
Usare il formato
<your-app-exposed-application-URL-or-endpoint>/swagger-ui/oauth2-redirect.html
come URL di reindirizzamento OAuth2 nel campo URI di reindirizzamento e quindi selezionare Configura.
2. Preparare il progetto Spring
Per distribuire l'app per le API RESTful, il primo passaggio consiste nel preparare il progetto Spring per l'esecuzione in locale.
Usare la procedura seguente per clonare ed eseguire l'app in locale:
Usare il comando seguente per clonare il progetto di esempio da GitHub:
git clone https://github.com/Azure-Samples/ASA-Samples-Restful-Application.git
Se si vuole eseguire l'app in locale, completare i passaggi nelle sezioni Esporre LE API RESTful e Aggiornare prima di tutto la configurazione dell'applicazione e quindi usare il comando seguente per eseguire l'applicazione di esempio con Maven:
cd ASA-Samples-Restful-Application ./mvnw spring-boot:run
3. Preparare l'ambiente cloud
Le risorse principali necessarie per eseguire questa app di esempio sono un'istanza di Azure Spring Apps e un'istanza di Database di Azure per PostgreSQL. Le sezioni seguenti descrivono come creare queste risorse.
3.1. Accedere al portale di Azure
Passare al portale di Azure e immettere le credenziali per accedere al portale. La visualizzazione predefinita è il dashboard del servizio.
3.2. Creare un'istanza di Azure Spring Apps
Per creare un'istanza del servizio, seguire questa procedura:
Selezionare Crea una risorsa nell'angolo del portale.
Selezionare Calcolo di>Azure Spring Apps.
Compilare il modulo Informazioni di base. Usare la tabella seguente come guida per completare il modulo. Il valore del piano consigliato è Consumo standard e dedicato (anteprima).The recommended Plan value is Standard consumption & dedicated (preview).
Impostazione Valore suggerito Descrizione Abbonamento Nome della sottoscrizione. Sottoscrizione di Azure da usare per il server. Se si hanno più sottoscrizioni, scegliere quella in cui si desidera che venga fatturata la risorsa. Gruppo di risorse myresourcegroup Nuovo nome di gruppo di risorse o uno esistente nella sottoscrizione. Nome myasa Nome univoco che identifica il servizio Azure Spring Apps. Il nome deve essere composto da 4-32 caratteri e può contenere solo lettere in minuscolo, numeri e trattini. Il primo carattere del nome del servizio deve essere una lettera e l'ultimo deve essere una lettera o un numero. Piano Consumo standard e dedicato (anteprima) Il piano tariffario determina le risorse e i costi associati all'istanza. Area Area più vicina agli utenti. Località più vicina agli utenti. Ambiente app contenitore myenvironment Opzione per selezionare l'istanza dell'ambiente app contenitore in cui condividere la stessa rete virtuale con altri servizi e risorse. Usare la tabella seguente come guida per la creazione dell'ambiente app contenitore:
Impostazione Valore suggerito Descrizione Nome ambiente myenvironment Nome univoco che identifica il servizio Azure Container Apps Environment. Piano Consumo Il piano tariffario determina le risorse e i costi associati all'istanza. Ridondanza della zona Disabilitata Opzione per creare il servizio Ambiente app contenitore in una zona di disponibilità di Azure. Selezionare Rivedi e crea per rivedere le selezioni. Selezionare quindi Crea per effettuare il provisioning dell'istanza di Azure Spring Apps.
Sulla barra degli strumenti selezionare l'icona Notifiche a forma di campana per monitorare il processo di distribuzione. Al termine della distribuzione, è possibile selezionare Aggiungi al dashboard, che crea un riquadro per questo servizio nel dashboard portale di Azure come collegamento alla pagina Panoramica del servizio.
Selezionare Vai alla risorsa per aprire la pagina Panoramica del servizio.
Importante
Il profilo del carico di lavoro Consumo ha un modello di fatturazione con pagamento in base al consumo, senza costi di partenza. Viene addebitato il profilo del carico di lavoro dedicato in base alle risorse di cui è stato effettuato il provisioning. Per altre informazioni, vedere Profili del carico di lavoro in App Azure Container e Prezzi di Azure Spring Apps.
3.3. Preparare l'istanza di PostgreSQL
Usare la procedura seguente per creare un server Database di Azure per PostgreSQL:
Passare al portale di Azure e selezionare Crea una risorsa.
Selezionare Database>Database di Azure per PostgreSQL.
Selezionare l'opzione di distribuzione Server flessibile.
Compilare la scheda Informazioni di base con le informazioni seguenti:
- Nome server: my-demo-pgsql
- Area: Stati Uniti orientali
- Versione di PostgreSQL: 14
- Tipo di carico di lavoro: Sviluppo
- Abilitare la disponibilità elevata: deselezionata
- Metodo di autenticazione: solo autenticazione PostgreSQL
- Nome utente amministratore: myadmin
- Password e Conferma password: immettere una password.
Usare le informazioni seguenti per configurare la scheda Rete :
- Metodo di connettività: accesso pubblico (indirizzi IP consentiti)
- Consenti l'accesso pubblico da qualsiasi servizio di Azure in Azure a questo server: selezionato
Selezionare Rivedi e crea per esaminare le selezioni e selezionare Crea per effettuare il provisioning del server. L'operazione potrebbe richiedere alcuni minuti.
Andare al Server PostgreSQL nel portale di Azure. Nella pagina Panoramica cercare il valore Nome server e quindi registrarlo per usarlo in un secondo momento. È necessario configurare le variabili di ambiente per l'app in Azure Spring Apps.
Selezionare Database dal menu di spostamento per creare un database, ad esempio todo.
3.4. Connettere l'istanza dell'app all'istanza di PostgreSQL
Usare la procedura seguente per connettere le istanze del servizio:
Passare all'istanza di Azure Spring Apps nel portale di Azure.
Dal menu di spostamento aprire App e quindi selezionare Crea app.
Nella pagina Crea app compilare il nome dell'app simple-todo-api e selezionare Artefatti Java come tipo di distribuzione.
Selezionare Crea per completare la creazione dell'app e selezionare l'app per visualizzare i dettagli.
Passare all'app creata nel portale di Azure. Nella pagina Panoramica selezionare Assegna endpoint per esporre l'endpoint pubblico per l'app. Salvare l'URL per l'accesso all'app dopo la distribuzione.
Passare all'app creata, espandere Impostazioni e selezionare Configurazione dal menu di spostamento e quindi selezionare Variabili di ambiente per impostare le variabili di ambiente.
Aggiungere le variabili di ambiente seguenti per la connessione PostgreSQL e quindi selezionare Salva per completare l'aggiornamento della configurazione dell'app. Assicurarsi di sostituire i segnaposto con i propri valori creati in precedenza.
Variabile di ambiente Valore SPRING_DATASOURCE_URL
jdbc:postgresql://<your-PostgreSQL-server-name>:5432/<your-PostgreSQL-database-name>
SPRING_DATASOURCE_USERNAME
<your-PostgreSQL-admin-user>
SPRING_DATASOURCE_PASSWORD
<your-PostgreSQL-admin-password>
3.5. Esporre le API RESTful
Seguire questa procedura per esporre le API RESTful in Microsoft Entra ID:
Accedere al portale di Azure.
Se si ha accesso a più tenant, usare il filtro Directory + sottoscrizione ( ) per selezionare il tenant in cui si vuole registrare un'applicazione.
Cercare e selezionare Microsoft Entra ID.
In Gestisci selezionare Registrazioni app>Nuova registrazione.
Immettere un nome per l'applicazione nel campo Nome, ad esempio Todo. Tale nome, che potrebbe essere visualizzato dagli utenti dell'app, può essere modificato in un secondo momento.
Per Tipi di account supportati selezionare Account in qualsiasi directory organizzativa (Qualsiasi directory Microsoft Entra - Multi-tenant) e account Microsoft personali.
Selezionare Registra per creare l'applicazione.
Nella pagina Panoramica dell'app cercare il valore del campo ID applicazione (client) e prenderne nota per un uso futuro. È necessario configurare il file di configurazione YAML per questo progetto.
In Gestisci selezionare Esporre un'API, trovare l'URI ID applicazione all'inizio della pagina e quindi selezionare Aggiungi.
Nella pagina Modifica URI ID applicazione accettare l'URI ID applicazione proposto (
api://{client ID}
) o usare un nome significativo anziché l'ID client, ad esempioapi://simple-todo
e quindi selezionare Salva.In Gestisci selezionare Esporre un'API>Aggiungi un ambito e quindi immettere le informazioni seguenti:
- In Nome ambito immettere ToDo.Read.
- Per Chi può fornire il consenso, selezionare Solo amministratori.
- Per Nome visualizzato del consenso amministratore immettere Leggi i dati ToDo.
- Per Descrizione del consenso amministratore immettere Consente agli utenti autenticati di leggere i dati ToDo.
- Per Stato mantenere abilitato.
- Seleziona Aggiungi ambito.
Ripetere i passaggi precedenti per aggiungere gli altri due ambiti: ToDo.Write e ToDo.Delete.
3.6. Aggiornare la configurazione dell'applicazione
Seguire questa procedura per aggiornare il file YAML per usare le informazioni dell'applicazione registrata di Microsoft Entra per stabilire una relazione con l'applicazione API RESTful:
Individuare il file src/main/resources/application.yml per l'app
simple-todo-api
. Aggiornare la configurazione nellaspring.cloud.azure.active-directory
sezione in modo che corrisponda all'esempio seguente. Assicurarsi di sostituire i segnaposto con i valori creati in precedenza.spring: cloud: azure: active-directory: profile: tenant-id: <tenant> credential: client-id: <your-application-ID-of-ToDo> app-id-uri: <your-application-ID-URI-of-ToDo>
Nota
Nei token v1.0, la configurazione richiede l'ID client dell'API, mentre nei token v2.0 è possibile usare l'ID client o l'URI ID applicazione nella richiesta. È possibile configurare entrambi per completare correttamente la convalida del gruppo di destinatari.
I valori consentiti per
tenant-id
sono:common
,organizations
,consumers
o l'ID tenant. Per altre informazioni su questi valori, vedere la sezione Usato l'endpoint errato (account personali e dell'organizzazione) di Errore AADSTS50020 - L'account utente del provider di identità non esiste nel tenant. Per informazioni sulla conversione dell'app a tenant singolo, vedere Convertire l'app a tenant singolo in multi-tenant in Microsoft Entra ID.Usare il comando seguente per ricompilare il progetto di esempio:
./mvnw clean package
4. Distribuire l'app in Azure Spring Apps
È ora possibile distribuire l'app in App Spring di Azure.
Usare la procedura seguente per distribuire usando il plug-in Maven per Azure Spring Apps:
Passare alla directory completa e quindi eseguire il comando seguente per configurare l'app in Azure Spring Apps:
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
L'elenco seguente descrive le interazioni con i comandi:
- Accesso OAuth2: è necessario autorizzare l'accesso ad Azure in base al protocollo OAuth2.
- Selezionare la sottoscrizione: selezionare il numero di elenco di sottoscrizioni dell'istanza di Azure Spring Apps creata, che per impostazione predefinita corrisponde alla prima sottoscrizione nell'elenco. Se si usa il numero predefinito, premere INVIO direttamente.
- Usare le app Spring di Azure esistenti in Azure: premere y per usare l'istanza di Azure Spring Apps esistente.
- Selezionare App Spring di Azure per la distribuzione: selezionare il numero dell'istanza di Azure Spring Apps creata. Se si usa il numero predefinito, premere INVIO direttamente.
- Usare l'app esistente in Azure Spring Apps <nome-istanza>: premere y per usare l'app creata.
- Confermare di salvare tutte le configurazioni precedenti: premere y. Se si preme n, la configurazione non viene salvata nei file POM.
Usare il comando seguente per distribuire l'app:
./mvnw azure-spring-apps:deploy
L'elenco seguente descrive l'interazione con il comando:
- Accesso OAuth2: è necessario autorizzare l'accesso ad Azure in base al protocollo OAuth2.
Dopo l'esecuzione del comando, è possibile visualizzare i messaggi di log seguenti che la distribuzione ha avuto esito positivo:
[INFO] Deployment(default) is successfully created
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
[INFO] InstanceName:demo--default-xxxxxxx-xxxxxxxxx-xxxxx Status:Running Reason:null DiscoverStatus:NONE
[INFO] Getting public url of app(demo)...
[INFO] Application url: https://demo.<unique-identifier>.<region-name>.azurecontainerapps.io
5. Convalidare l'app
È ora possibile accedere all'API RESTful per verificare se funziona.
5.1. Richiedere un token di accesso
Le API RESTful fungono da server di risorse, protetto dall'ID Microsoft Entra. Prima di acquisire un token di accesso, è necessario registrare un'altra applicazione in Microsoft Entra ID e concedere le autorizzazioni all'applicazione client, denominata ToDoWeb
.
Registrare l'applicazione client
Seguire questa procedura per registrare un'applicazione in Microsoft Entra ID, che viene usata per aggiungere le autorizzazioni per l'app ToDo
:
Accedere al portale di Azure.
Se si ha accesso a più tenant, usare il filtro Directory + sottoscrizione ( ) per selezionare il tenant in cui si vuole registrare un'applicazione.
Cercare e selezionare Microsoft Entra ID.
In Gestisci selezionare Registrazioni app>Nuova registrazione.
Immettere un nome per l'applicazione nel campo Nome, ad esempio ToDoWeb. Tale nome, che potrebbe essere visualizzato dagli utenti dell'app, può essere modificato in un secondo momento.
Per Tipi di account supportati, usare solo il valore predefinito Account in questa directory organizzativa.
Selezionare Registra per creare l'applicazione.
Nella pagina Panoramica dell'app cercare il valore del campo ID applicazione (client) e prenderne nota per un uso futuro. È necessario per acquisire un token di accesso.
Selezionare Autorizzazioni API>Aggiungi un'autorizzazione>Le mie API. Selezionare l'applicazione
ToDo
registrata in precedenza e quindi selezionare le autorizzazioni ToDo.Read, ToDo.Write e ToDo.Delete . Selezionare Aggiungi autorizzazioni.Selezionare Concedi consenso amministratore per <your-tenant-name> per concedere il consenso amministratore per le autorizzazioni aggiunte.
Aggiungere un utente per accedere alle API RESTful
Usare la procedura seguente per creare un utente membro nel tenant di Microsoft Entra. L'utente può quindi gestire i dati dell'applicazione ToDo
tramite le API RESTful.
In Gestisci selezionare Utenti>Nuovo utente>Crea nuovo utente.
Nella pagina Crea nuovo utente immettere le informazioni seguenti:
- Nome entità utente: immettere un nome per l'utente.
- Nome visualizzato: immettere un nome visualizzato per l'utente.
- Password: copiare la password generata automaticamente nella casella Password .
Nota
I nuovi utenti devono completare la prima autenticazione di accesso e aggiornare le password. In caso contrario, viene visualizzato un
AADSTS50055: The password is expired
errore quando si ottiene il token di accesso.Quando un nuovo utente accede, riceve una richiesta di azione richiesta . Possono scegliere Chiedi in un secondo momento per ignorare la convalida.
Selezionare Revisione e creazione per rivedere le selezioni effettuate. Selezionare Crea per creare l'utente.
Aggiornare la configurazione di OAuth2 per l'autorizzazione dell'interfaccia utente di Swagger
Seguire questa procedura per aggiornare la configurazione di OAuth2 per l'autorizzazione dell'interfaccia utente di Swagger. È quindi possibile autorizzare gli utenti ad acquisire i token di accesso tramite l'app ToDoWeb
.
Aprire il tenant di Microsoft Entra ID nella portale di Azure e passare all'app registrata
ToDoWeb
.In Gestisci selezionare Autenticazione, selezionare Aggiungi una piattaforma e quindi selezionare Applicazione a pagina singola.
Usare il formato
<your-app-exposed-application-URL-or-endpoint>/swagger-ui/oauth2-redirect.html
come URL di reindirizzamento OAuth2 nel campo URI di reindirizzamento e quindi selezionare Configura.
Ottenere il token di accesso
Usare la procedura seguente per usare il metodo del flusso del codice di autorizzazione OAuth 2.0 per ottenere un token di accesso con Microsoft Entra ID, quindi accedere alle API RESTful dell'app ToDo
:
Aprire l'URL esposto dall'app e quindi selezionare Autorizza per preparare l'autenticazione OAuth2.
Nella finestra Autorizzazioni disponibili immettere l'ID client dell'app
ToDoWeb
nel campo client_id, selezionare tutti gli ambiti per Ambiti campo, ignorare il campo client_secret e quindi selezionare Autorizza per reindirizzare alla pagina di accesso di Microsoft Entra.
Dopo aver completato l'accesso con l'utente precedente, si torna alla finestra Autorizzazioni disponibili.
5.2. Accedere alle API RESTful
Usare la procedura seguente per accedere alle API RESTful dell'app ToDo
nell'interfaccia utente di Swagger:
Selezionare l'API POST /api/simple-todo/lists e quindi selezionare Prova. Immettere il corpo della richiesta seguente e quindi selezionare Esegui per creare un elenco ToDo.
{ "name": "My List" }
Al termine dell'esecuzione, viene visualizzato il corpo della risposta seguente:
{ "id": "<ID-of-the-ToDo-list>", "name": "My List", "description": null }
Selezionare l'API POST /api/simple-todo/lists/{listId}/items e quindi selezionare Prova. Per listId immettere l'ID elenco ToDo creato in precedenza, immettere il corpo della richiesta seguente e quindi selezionare Esegui per creare un elemento ToDo.
{ "name": "My first ToDo item", "listId": "<ID-of-the-ToDo-list>", "state": "todo" }
Questa azione restituisce l'elemento ToDo seguente:
{ "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": null, "state": "todo", "dueDate": "2023-07-11T13:59:24.9033069+08:00", "completedDate": null }
Selezionare l'API GET /api/simple-todo/lists e quindi selezionare Esegui per eseguire query negli elenchi ToDo. Questa azione restituisce gli elenchi ToDo seguenti:
[ { "id": "<ID-of-the-ToDo-list>", "name": "My List", "description": null } ]
Selezionare l'API GET /api/simple-todo/lists/{listId}/items e quindi selezionare Prova. Per listId immettere l'ID elenco ToDo creato in precedenza e quindi selezionare Esegui per eseguire una query sugli elementi ToDo. Questa azione restituisce l'elemento ToDo seguente:
[ { "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": null, "state": "todo", "dueDate": "2023-07-11T13:59:24.903307+08:00", "completedDate": null } ]
Selezionare l'API PUT /api/simple-todo/lists/{listId}/items/{itemId} e quindi selezionare Prova. Per listId immettere l'ID elenco ToDo. Per itemId immettere l'ID elemento ToDo, immettere il corpo della richiesta seguente e quindi selezionare Esegui per aggiornare l'elemento ToDo.
{ "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": "Updated description.", "dueDate": "2023-07-11T13:59:24.903307+08:00", "state": "inprogress" }
Questa azione restituisce l'elemento ToDo aggiornato seguente:
{ "id": "<ID-of-the-ToDo-item>", "listId": "<ID-of-the-ToDo-list>", "name": "My first ToDo item", "description": "Updated description.", "state": "inprogress", "dueDate": "2023-07-11T05:59:24.903307Z", "completedDate": null }
Selezionare l'API DELETE /api/simple-todo/lists/{listId}/items/{itemId} e quindi selezionare Prova. Per listId immettere l'ID elenco ToDo. Per itemId immettere l'ID elemento ToDo e quindi selezionare Esegui per eliminare l'elemento ToDo. Si noterà che il codice di risposta del server è
204
.
6. Pulire le risorse
È possibile eliminare il gruppo di risorse di Azure, che include tutte le risorse del gruppo.
Per eliminare l'intero gruppo di risorse, incluso il server appena creato, seguire questa procedura:
Individuare il gruppo di risorse nel portale di Azure.
Nel menu di spostamento selezionare Gruppi di risorse. Selezionare quindi il nome del gruppo di risorse, ad esempio myresourcegroup.
Nella pagina del gruppo di risorse selezionare Elimina. Nella casella di testo immettere il nome del gruppo di risorse, in questo esempio myresourcegroup, per confermare l'eliminazione. Quindi, selezionare Elimina.
Per eliminare l'intero gruppo di risorse, incluso il server appena creato, seguire questa procedura:
Individuare il gruppo di risorse nel portale di Azure.
Nel menu di spostamento selezionare Gruppi di risorse. Selezionare quindi il nome del gruppo di risorse, ad esempio myresourcegroup.
Nella pagina del gruppo di risorse selezionare Elimina. Nella casella di testo immettere il nome del gruppo di risorse, in questo esempio myresourcegroup, per confermare l'eliminazione. Quindi, selezionare Elimina.
7. Passaggi successivi
Per altre informazioni, vedere gli articoli seguenti: