Distribuire app Java Spring Boot in App Azure Spring
Questo articolo illustra come distribuire un'app Java Spring Boot con l'accesso da parte dell'account Microsoft Entra in Azure Spring Apps.
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
Se si distribuisce 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.
Plug-in Maven per App Spring di Azure. Se Maven non è lo strumento di sviluppo preferito, vedere le esercitazioni simili seguenti che usano altri strumenti:
Preparare il progetto Spring
Per preparare il progetto, seguire questa procedura:
Usare il comando Maven seguente per compilare il progetto:
mvn clean package
Eseguire il progetto di esempio in locale usando il comando seguente:
mvn spring-boot:run
Configurare il plug-in Maven
Eseguire il comando seguente nella radice del progetto per configurare l'app usando il plug-in Maven per Azure Spring Apps:
mvn 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 delle sottoscrizioni in cui si vuole creare l'istanza di Azure Spring Apps, che per impostazione predefinita corrisponde alla prima sottoscrizione nell'elenco. Per usare il numero predefinito, premere INVIO.
- Immettere il nome di App Spring di Azure: immettere il nome per l'istanza di spring apps che si vuole creare. Per usare il nome predefinito, premere INVIO.
- Immettere il nome del gruppo di risorse: immettere il nome del gruppo di risorse in cui si vuole creare l'istanza di spring apps. Per usare il nome predefinito, premere INVIO.
- SKU: selezionare lo SKU da usare per l'istanza di spring apps. Per usare il numero predefinito, premere INVIO.
- Immettere il nome dell'app (demo): specificare un nome dell'app. Se si vuole usare l'ID artefatto predefinito del progetto, premere INVIO.
- Runtime: selezionare il runtime che si vuole usare per l'istanza di spring apps. In questo caso, è consigliabile usare il numero predefinito, quindi premere INVIO.
- Esporre l'accesso pubblico per questa app (boot-for-azure): premere y.
- Confermare di salvare tutte le configurazioni precedenti: premere y. Se si preme n, la configurazione non viene salvata nel file pom .
L'esempio seguente mostra l'output del processo di distribuzione:
Summary of properties:
Subscription id : 12345678-1234-1234-1234-123456789101
Resource group name : rg-ms-identity-spring-boot-webapp
Azure Spring Apps name : cluster-ms-identity-spring-boot-webapp
Runtime Java version : Java 11
Region : eastus
Sku : Standard
App name : ms-identity-spring-boot-webapp
Public access : true
Instance count/max replicas : 1
CPU count : 1
Memory size(GB) : 2
Confirm to save all the above configurations (Y/n):
[INFO] Configurations are saved to: /home/user/ms-identity-msal-java-samples/4-spring-web-app/1-Authentication/sign-in/pom. xml
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:57 min
[INFO] Finished at: 2024-02-14T13:50:44Z
[INFO] ------------------------------------------------------------------------
Dopo aver confermato le scelte, il plug-in aggiunge l'elemento e le impostazioni del plug-in necessari al file di pom.xml del progetto per configurare l'app per l'esecuzione in Azure Spring Apps.
La parte pertinente del file pom.xml dovrebbe essere simile all'esempio seguente:
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-spring-apps-maven-plugin</artifactId>
<version>1.19.0</version>
<configuration>
<subscriptionId>12345678-1234-1234-1234-123456789101</subscriptionId>
<resourceGroup>rg-ms-identity-spring-boot-webapp</resourceGroup>
<clusterName>cluster-ms-identity-spring-boot-webapp</clusterName>
<region>eastus</region>
<sku>Standard</sku>
<appName>ms-identity-spring-boot-webapp</appName>
<isPublic>true</isPublic>
<deployment>
<cpu>1</cpu>
<memoryInGB>2</memoryInGB>
<instanceCount>1</instanceCount>
<runtimeVersion>Java 11</runtimeVersion>
<resources>
<resource>
<directory>${project.basedir}/target</directory>
<includes>
<include>*.jar</include>
</includes>
</resource>
</resources>
</deployment>
</configuration>
</plugin>
È possibile modificare le configurazioni per Azure Spring Apps direttamente nel file pom.xml . Alcune configurazioni comuni sono elencate nella tabella seguente:
Proprietà | Richiesto | Descrizione |
---|---|---|
subscriptionId |
false | ID della sottoscrizione. |
resourceGroup |
true | Gruppo di risorse di Azure per l'istanza di Azure Spring Apps. |
clusterName |
true | Nome del cluster di Azure Spring Apps. Se si usa una sottoscrizione e un gruppo di risorse in cui è già distribuita un'istanza di Azure Spring Apps, è anche possibile usare questo cluster esistente per la distribuzione. |
appName |
true | Nome dell'app in Azure Spring Apps. |
region |
false | Area in cui ospitare l'istanza di Azure Spring Apps. Il valore predefinito è eastus . Per le aree valide, vedere Aree supportate. |
sku |
false | Piano tariffario per l'istanza di Azure Spring Apps. Il valore predefinito è Basic , adatto solo per gli ambienti di sviluppo e test. |
runtime |
false | Configurazione dell'ambiente di runtime. Per altre informazioni, vedere Dettagli di configurazione. |
deployment |
false | Configurazione della distribuzione. Per altre informazioni, vedere Dettagli di configurazione. |
Per l'elenco completo delle configurazioni, vedere la documentazione di riferimento sul plug-in. Tutti i plug-in Azure Maven condividono un set comune di configurazioni. Per queste configurazioni, vedere Configurazioni comuni. Per le configurazioni specifiche di Azure Spring Apps, vedere Azure Spring Apps: Configuration Details (App Azure Spring: Dettagli configurazione).
Assicurarsi di salvare i clusterName
valori e appName
per usarli in un secondo momento.
Preparare l'app per la distribuzione
Quando si distribuisce l'applicazione in Azure Spring Apps, l'URL di reindirizzamento viene modificato nell'URL di reindirizzamento dell'istanza dell'app distribuita in Azure Spring Apps. 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. Ad esempio, se si scegliecluster-ms-identity-spring-boot-webapp
per l'istanza di Azure Spring Apps nel passaggio precedente ems-identity-spring-boot-webapp
per il nome dell'app, è ora necessario usarehttps://cluster-ms-identity-spring-boot-webapp-ms-identity-spring-boot-webapp.azuremicroservices.io
per ilpost-logout-redirect-uri
valore .post-logout-redirect-uri: https://<cluster-name>-<app-name>.azuremicroservices.io
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 in un repository Git, è anche possibile che si verifichi un rischio.
Come passaggio di sicurezza aggiuntivo, è possibile archiviare questo valore in Azure Key Vault e caricare il segreto da Key Vault per renderlo disponibile nell'applicazione.
Aggiornare la registrazione dell'app Microsoft Entra ID
Poiché l'URI di reindirizzamento cambia nell'app distribuita in Azure Spring Apps, è 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://<cluster-name>-<app-name>.azuremicroservices.io/login/oauth2/code/
Seleziona Salva.
Distribuire l'app
Usare il comando seguente per distribuire l'app:
mvn 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-x-xxxxxxxxxx-xxxxx Status:Running Reason:null DiscoverStatus:UNREGISTERED
[INFO] InstanceName:demo-default-x-xxxxxxxxx-xxxxx Status:Terminating Reason:null DiscoverStatus:UNREGISTERED
[INFO] Getting public url of app(demo)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-demo.azuremicroservices.io
Convalidare l'app
Al termine della distribuzione, accedere all'applicazione con l'URL dell'applicazione di output. 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 Azure Spring Apps 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 di 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: