Distribuire app Java Spring Boot in App Azure Container
Questo articolo illustra come distribuire un'app Java Spring Boot con l'accesso da parte dell'account Microsoft Entra in App Contenitore di Azure.
Questo articolo presuppone che sia stato completato uno degli articoli seguenti usando solo la scheda Esegui localmente e si vuole eseguire la distribuzione in Azure. Queste istruzioni sono identiche a quelle della scheda Distribuisci in Azure negli articoli seguenti:
- Proteggere le app Java Spring Boot con Microsoft Entra ID
- Proteggere le app Java Spring Boot con Azure Active Directory B2C
- Abilitare le app Java Spring Boot per accedere agli utenti e accedere a Microsoft Graph
- Proteggere le app Java Spring Boot usando ruoli e attestazioni di ruolo
- Proteggere le app Java Spring Boot usando gruppi e attestazioni di gruppo
Prerequisiti
- Un account Azure. Se non se ne ha una, creare un account gratuito. Per continuare, è necessaria l'autorizzazione
Contributor
oOwner
per la sottoscrizione di Azure. Per ulteriori informazioni, vedi Assegnare ruoli di Azure usando il portale di Azure. - Interfaccia della riga di comando di Azure.
- Estensione dell'interfaccia della riga di comando di App Azure Container, versione
0.3.47
o successiva. Per installare la versione più recente, usare ilaz extension add --name containerapp --upgrade --allow-preview
comando . - Java Development Kit, versione 17 o successiva.
- Maven.
Preparare il progetto Spring
Per preparare il progetto, seguire questa procedura:
Usare il comando Maven seguente per compilare il progetto:
mvn clean verify
Eseguire il progetto di esempio in locale usando il comando seguente:
mvn spring-boot:run
Attrezzaggio
Per accedere ad Azure dall'interfaccia della riga di comando, eseguire il comando seguente e seguire le istruzioni per completare il processo di autenticazione.
az login
Assicurarsi di eseguire l'ultima versione dell'interfaccia della riga di comando eseguire il comando di aggiornamento.
az upgrade
Installare o aggiornare quindi l'estensione App contenitore di Azure per l'interfaccia della riga di comando.
Se si ricevono errori relativi ai parametri mancanti quando si eseguono az containerapp
comandi nell'interfaccia della riga di comando di Azure, assicurarsi di avere installato la versione più recente dell'estensione App Azure Container.
az extension add --name containerapp --upgrade
Nota
A partire da maggio 2024, le estensioni dell'interfaccia della riga di comando di Azure non abilitano più le funzionalità di anteprima per impostazione predefinita. Per accedere alle funzionalità di anteprima di App contenitore, installare l'estensione App contenitore con --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Ora che l'estensione o il modulo corrente è installato, registrare gli spazi dei nomi Microsoft.App
e Microsoft.OperationalInsights
.
Nota
Le risorse di App contenitore di Azure sono state migrate dallo spazio dei nomi Microsoft.Web
allo spazio dei nomi Microsoft.App
. Per ulteriori dettagli, vedere Migrazione dello spazio dei nomi da Microsoft.Web a Microsoft.App nel mese di marzo 2022.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Creare l'ambiente App Azure Container
Dopo aver completato la configurazione dell'interfaccia della riga di comando di Azure, è possibile definire le variabili di ambiente usate in questo articolo.
Definire le variabili seguenti nella shell Bash.
export RESOURCE_GROUP="ms-identity-containerapps"
export LOCATION="canadacentral"
export ENVIRONMENT="env-ms-identity-containerapps"
export API_NAME="ms-identity-api"
export JAR_FILE_PATH_AND_NAME="./target/ms-identity-spring-boot-webapp-0.0.1-SNAPSHOT.jar"
Crea un gruppo di risorse.
az group create \
--name $RESOURCE_GROUP \
--location $LOCATION \
Creare un ambiente con un'area di lavoro Log Analytics generata automaticamente.
az containerapp env create \
--name $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--location $LOCATION
Mostra il dominio predefinito dell'ambiente dell'app contenitore. Annotare questo dominio da usare nelle sezioni successive.
az containerapp env show \
--name $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--query properties.defaultDomain
Preparare l'app per la distribuzione
Quando si distribuisce l'applicazione in App Azure Container, l'URL di reindirizzamento viene modificato nell'URL di reindirizzamento dell'istanza dell'app distribuita in App Azure Container. Usare la procedura seguente per modificare queste impostazioni nel file application.yml :
Passare al file src\main\resources\application.yml dell'app e modificare il valore di
post-logout-redirect-uri
in base al nome di dominio dell'app distribuita, come illustrato nell'esempio seguente. Assicurarsi di sostituire<API_NAME>
e<default-domain-of-container-app-environment>
con i valori effettivi. Ad esempio, con il dominio predefinito per l'ambiente dell'app Azure Container del passaggio precedente ems-identity-api
per il nome dell'app, usarehttps://ms-identity-api.<default-domain>
per ilpost-logout-redirect-uri
valore .post-logout-redirect-uri: https://<API_NAME>.<default-domain-of-container-app-environment>
Dopo aver salvato questo file, usare il comando seguente per ricompilare l'app:
mvn clean package
Importante
Il file application.yml dell'applicazione contiene attualmente il valore del segreto client nel client-secret
parametro . Non è consigliabile mantenere questo valore in questo file. Se si esegue il commit del file in un repository Git, potrebbe anche essere rischioso. Per l'approccio consigliato, vedere Gestire i segreti nelle app Azure Container.
Aggiornare la registrazione dell'app Microsoft Entra ID
Poiché l'URI di reindirizzamento cambia nell'app distribuita in App Azure Container, è anche necessario modificare l'URI di reindirizzamento nella registrazione dell'app Microsoft Entra ID. Attenersi alla seguente procedura per apportare questa modifica:
Passare alla pagina Registrazioni app di Microsoft Identity Platform per sviluppatori.
Usare la casella di ricerca per cercare la registrazione dell'app,
java-servlet-webapp-authentication
ad esempio .Aprire la registrazione dell'app selezionandone il nome.
Seleziona Autenticazione dal menu.
Nella sezione URI di reindirizzamento Web - selezionare Aggiungi URI.
Compilare l'URI dell'app, aggiungendo
/login/oauth2/code/
, ad esempio .https://<containerapp-name>.<default domain of container app environment>/login/oauth2/code/
Seleziona Salva.
Distribuire l'app
Distribuire il pacchetto JAR in App contenitore di Azure.
Nota
Se necessario, è possibile specificare la versione JDK nelle variabili di ambiente di compilazione Java. Per altre informazioni, vedere Creare variabili di ambiente per Java in App Contenitore di Azure.
Ora è possibile distribuire il file WAR con il comando dell'interfaccia della riga di comando az containerapp up
.
az containerapp up \
--name $API_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--environment $ENVIRONMENT \
--artifact <JAR_FILE_PATH_AND_NAME> \
--ingress external \
--target-port 8080 \
--query properties.configuration.ingress.fqdn
Nota
La versione predefinita di JDK è 17. Se è necessario modificare la versione di JDK per la compatibilità con l'applicazione, è possibile usare l'argomento --build-env-vars BP_JVM_VERSION=<YOUR_JDK_VERSION>
per modificare il numero di versione.
Per altre variabili di ambiente di compilazione, vedere Creare variabili di ambiente per Java in App Contenitore di Azure.
Convalidare l'app
In questo esempio il containerapp up
comando include l'argomento --query properties.configuration.ingress.fqdn
, che restituisce il nome di dominio completo (FQDN), noto anche come URL dell'app. Usare la procedura seguente per controllare i log dell'app per analizzare eventuali problemi di distribuzione:
Accedere all'URL dell'applicazione di output dalla pagina Output della sezione Distribuzione .
Nel riquadro di spostamento della pagina Panoramica dell'istanza di App Azure Container selezionare Log per controllare i log dell'app.
Ulteriori informazioni
- Microsoft Identity Platform (MICROSOFT Entra ID per sviluppatori)
- Panoramica di Microsoft Authentication Library (MSAL)
- Guida introduttiva: Registrare un'applicazione con Microsoft Identity Platform
- Guida introduttiva: Configurare un'applicazione client per accedere alle API Web
- Informazioni sulle esperienze di consenso dell'applicazione Microsoft Entra ID
- Informazioni sul consenso dell'utente e dell'amministratore
- Oggetti applicazione ed entità servizio in Microsoft Entra ID
- Cloud nazionali
- Esempi di codice MSAL
- Libreria client Spring Boot Starter di Microsoft Entra ID per Java
- Microsoft Authentication Library per Java (MSAL4J)
- MSAL4J Wiki
- Token ID
- Token di accesso in Microsoft Identity Platform
Passaggi successivi
Per altre informazioni e altre opzioni di distribuzione, vedere gli articoli seguenti: