Aggiungere l'autenticazione con l'account Microsoft Entra a un'app Web Spring
Questo articolo illustra come sviluppare un'app Web Spring che supporta l'accesso account Microsoft Entra. Dopo aver completato tutti i passaggi di questo articolo, l'app Web verrà reindirizzata alla pagina di accesso di Microsoft Entra quando è stato eseguito l'accesso anonimo. Lo screenshot seguente mostra la pagina di accesso di Microsoft Entra:
Prerequisiti
Per completare i passaggi descritti in questo articolo sono necessari i prerequisiti seguenti:
- Un Kit di Sviluppo Java (JDK) supportato. Per altre informazioni sui JDK disponibili per lo sviluppo in Azure, vedere supporto Java in Azure e Azure Stack.
- Apache Maven, versione 3.0 o successiva.
- Una sottoscrizione di Azure. Se non hai un abbonamento Azure, puoi creare un account gratuito .
Importante
Per completare i passaggi descritti in questo articolo, sono necessari Spring Boot di versione 2.5 o successiva.
Creare un'app con Spring Initializr
Passare a https://start.spring.io/.
Specifica che vuoi generare un progetto Maven
con Java , inserisci i nomi delGroup e dell'Artifact per la tua applicazione.Aggiungere dipendenze per Spring Web, ID Microsoft Entrae client OAuth2.
Nella parte inferiore della pagina selezionare il pulsante GENERA.
Quando richiesto, scaricare il progetto in un percorso nel computer locale.
Creare un'istanza di Microsoft Entra
Creare l'istanza di Active Directory
Se si è l'amministratore di un'istanza esistente, è possibile ignorare questo processo.
Accedere a https://portal.azure.com.
Selezionare Tutti i servizi, quindi Identitye quindi Microsoft Entra ID.
Immettere il nome dell'organizzazione e il nome di dominio iniziale . Copia l'URL completo della tua directory. L'URL verrà usato per aggiungere account utente più avanti in questa esercitazione. Ad esempio:
azuresampledirectory.onmicrosoft.com
.)Copia l'URL completo della directory. L'URL verrà usato per aggiungere account utente più avanti in questa esercitazione. (ad esempio:
azuresampledirectory.onmicrosoft.com
.).Al termine, selezionare Crea. La creazione della nuova risorsa richiederà alcuni minuti.
Al termine, selezionare il collegamento visualizzato per accedere alla nuova directory.
Copiare l'ID tenant . Si userà il valore ID per configurare il file application.properties più avanti in questa esercitazione.
Aggiungere una registrazione di un'applicazione per l'app Spring Boot
Dal menu del portale, selezionare Registrazione delle appe quindi selezionare Registrazione di un'applicazione.
Specifica l'applicazione e quindi seleziona Registra.
Quando viene visualizzata la pagina per la registrazione dell'app, copiare l'ID applicazione (client)
e l'ID Directory (tenant) . Questi valori verranno usati per configurare le application.properties file più avanti in questa esercitazione.Selezionare Certificati & segreti nel riquadro di navigazione. Quindi, seleziona Nuovo segreto del client.
Aggiungere una Descrizione e selezionare la durata nell'elenco scadenza. Selezionare Aggiungi. Il valore per la chiave verrà compilato automaticamente.
Copiare e salvare il valore del segreto client per configurare il file application.properties file più avanti in questa esercitazione. Non sarà possibile recuperare questo valore in un secondo momento.
Nella pagina principale per la registrazione dell'app selezionare Autenticazionee selezionare Aggiungi una piattaforma. Selezionare quindi Applicazioni Web.
Per una nuova URI di reindirizzamento, immettere
http://localhost:8080/login/oauth2/code/
e quindi selezionare Configura.Se hai modificato il file di pom.xml per usare una versione di Microsoft Entra starter precedente alla 3.0.0: sotto concessione implicita e flussi ibridi, selezionare i token ID (usati per i flussi impliciti e ibridi), poi selezionare Salva.
Aggiungi un account utente alla directory e assegnalo a un ruolo dell'applicazione
Nella pagina Panoramica di Active Directory, selezionare Utentie quindi selezionare Nuovo utente.
Quando viene visualizzato il pannello Utente, inserire il nome utente e Nome. Selezionare quindi Crea.
Nota
È necessario specificare l'URL della directory menzionato prima in questo tutorial quando si immette il nome utente. Per esempio:
test-user@azuresampledirectory.onmicrosoft.com
Nella pagina principale per la registrazione dell'app, selezionare Ruoli app, quindi selezionare Crea un ruolo per l'app. Fornire i valori per i campi del modulo, selezionare Vuoi abilitare questo ruolo dell'app?, quindi selezionare Applica.
Nella pagina Panoramica della directory Microsoft Entra, seleziona Applicazioni aziendali.
Selezionare Tutte le applicazioni, quindi selezionare l'applicazione a cui è stato aggiunto il ruolo dell'app in un passaggio precedente.
Selezionare Utenti e gruppie quindi selezionare Aggiungi Utente/gruppo.
In Utentiselezionare Nessuno selezionato. Seleziona l'utente creato in precedenza, seleziona , poi seleziona Assegna. Se in precedenza sono stati creati più ruoli nell'app, selezionare un ruolo.
Tornare al pannello utenti
, selezionare l'utente di test e selezionare Reimposta password e copiare la password. La password verrà usata quando si accede all'applicazione più avanti in questa esercitazione.
Configurare e compilare l'app
Estrarre i file dall'archivio del progetto creato e scaricato in precedenza in questo tutorial in una directory.
Passare alla cartella src/main/resources
nel progetto, quindi aprire il file application.properties in un editor di testo.Specificare le impostazioni per la registrazione dell'app usando i valori creati in precedenza. Per esempio:
# Enable related features. spring.cloud.azure.active-directory.enabled=true # Specifies your Active Directory ID: spring.cloud.azure.active-directory.profile.tenant-id=<tenant-ID> # Specifies your App Registration's Application ID: spring.cloud.azure.active-directory.credential.client-id=<client-ID> # Specifies your App Registration's secret key: spring.cloud.azure.active-directory.credential.client-secret=<client-secret>
Dove:
Parametro Descrizione spring.cloud.azure.active-directory.enabled
Abilitare le funzionalità fornite da spring-cloud-azure-starter-active-directory spring.cloud.azure.active-directory.profile.tenant-id
Contiene l'ID directory di Active Directory precedente. spring.cloud.azure.active-directory.credential.client-id
Contiene l'ID applicazione dalla registrazione della tua app che hai completato in precedenza. spring.cloud.azure.active-directory.credential.client-secret
Contiene il valore dalla chiave di registrazione dell'app che hai completato in precedenza. Salvare e chiudere il file application.properties.
Creare una cartella denominata controller nella cartella di origine Java per l'applicazione. Ad esempio: src/main/java/com/wingtiptoys/security/controller.
Creare un nuovo file Java denominato
HelloController.java nella cartella controllere aprirlo in un editor di testo. Immettere il codice seguente, quindi salvare e chiudere il file:
package com.wingtiptoys.security; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.security.access.prepost.PreAuthorize; @RestController public class HelloController { @GetMapping("Admin") @ResponseBody @PreAuthorize("hasAuthority('APPROLE_Admin')") public String Admin() { return "Admin message"; } }
Compilare e testare l'app
Aprire un prompt dei comandi e passare alla cartella in cui si trova il file pom.xml dell'app.
Compilare l'applicazione Spring Boot con Maven ed eseguirla. Per esempio:
mvn clean package mvn spring-boot:run
Dopo che l'applicazione è stata compilata e avviata da Maven, aprire
http://localhost:8080/Admin
in un Web browser. Verrà richiesto un nome utente e una password.Nota
Potrebbe essere richiesto di modificare la password se si tratta del primo account di accesso per un nuovo account utente.
Dopo aver eseguito correttamente l'accesso, verrà visualizzato il testo di esempio "Messaggio di amministratore" dal controller.
Sommario
In questa esercitazione è stata creata una nuova applicazione Web Java usando Microsoft Entra starter, è stato configurato un nuovo tenant di Microsoft Entra, è stata registrata una nuova applicazione nel tenant e quindi è stata configurata l'applicazione per l'uso delle annotazioni e delle classi Spring per proteggere l'app Web.
Vedere anche
- Per informazioni sulle nuove opzioni dell'interfaccia utente, vedere Nuova guida alla registrazione delle app del portale di Azure
Passaggi successivi
Per altre informazioni su Spring e Azure, passare al Centro documentazione di Spring in Azure.