Avvio rapido: Eseguire l’accesso degli utenti e chiamare l'API Microsoft Graph da un'app Web Java.
In questa guida di avvio rapido si scarica e si esegue un esempio di codice di un'applicazione Web Java che consente agli utenti di accedere e chiamare l'API Microsoft Graph. Gli utenti di qualsiasi organizzazione di Microsoft Entra possono accedere all'applicazione.
Per un'illustrazione, vedere Funzionamento dell'esempio.
Prerequisiti
Per eseguire questo esempio, sono necessari:
- Java Development Kit (JDK) 8 o versione successiva.
- Maven.
Registrare e scaricare l'app della guida introduttiva
Suggerimento
I passaggi descritti in questo articolo possono variare leggermente in base al portale di partenza.
Per avviare l'applicazione della guida di avvio rapido sono disponibili due opzioni: rapida (opzione 1) e manuale (opzione 2).
Opzione 1: Registrare e configurare automaticamente l'app e quindi scaricare il codice di esempio
- Passare all'esperienza di avvio rapido Interfaccia di amministrazione di Microsoft Entra - Registrazioni app almeno come amministratore applicazioni cloud.
- Immettere un nome per l'applicazione e quindi fare clic su Registra.
- Seguire le istruzioni nell'esperienza di avvio rapido del portale per scaricare il codice dell'applicazione configurato automaticamente.
Opzione 2: Registrare e configurare manualmente l'applicazione e il codice di esempio
Passaggio 1: Registrare l'applicazione
Per registrare l'applicazione e aggiungere manualmente le informazioni di registrazione dell'app, seguire questa procedura:
- Accedere all'Interfaccia di amministrazione di Microsoft Entra almeno come Amministratore applicazione cloud.
- Se si ha accesso a più tenant, usare l'icona Impostazioni nel menu in alto per passare al tenant in cui si vuole registrare l'applicazione dal menu Directory e sottoscrizioni.
- Passare a Identità>Applicazioni>Registrazioni app e selezionare Nuova registrazione.
- In Nome immettere un nome per l'applicazione, ad esempio java-webapp. Questo nome può essere visualizzato dagli utenti dell'app. Puoi modificarlo in un secondo momento.
- Selezionare Registra.
- Nella pagina Panoramica prendere nota dei valori di ID applicazione (client) e ID della directory (tenant). Questi valori saranno necessari più avanti.
- In Gestisci selezionare Autenticazione.
- Selezionare Aggiungi una piattaforma>Web.
- Nella sezione URI di reindirizzamento immettere
https://localhost:8443/msal4jsample/secure/aad
. - Seleziona Configura.
- Nella sezione Web, sotto URI di reindirizzamento, immettere
https://localhost:8443/msal4jsample/graph/me
come secondo URI di reindirizzamento. - In Gestisci, selezionare Certificati e segreti. Nella sezione Segreti client seleziona Nuovo segreto client.
- Digitare una descrizione della chiave (ad esempio segreto app), lasciare la scadenza predefinita e selezionare Aggiungi.
- Prendere nota delValore del segreto client. in quanto sarà necessario più avanti.
Passaggio 2: Scaricare il codice d’esempio
Scaricare il codice di esempio
Passaggio 3: Configurare il codice di esempio
Estrarre il file ZIP in una cartella locale.
Facoltativo. Se si usa un ambiente di sviluppo integrato, aprire l'esempio al suo interno.
Aprire il file application.properties. È disponibile nella cartella src/main/resources/. Sostituire i valori nei campi
aad.clientId
,aad.authority
eaad.secretKey
rispettivamente con i valori di ID applicazione, ID tenant e segreto client. Il risultato è analogo al seguente:aad.clientId=Enter_the_Application_Id_here aad.authority=https://login.microsoftonline.com/Enter_the_Tenant_Info_Here/ aad.secretKey=Enter_the_Client_Secret_Here aad.redirectUriSignin=https://localhost:8443/msal4jsample/secure/aad aad.redirectUriGraph=https://localhost:8443/msal4jsample/graph/me aad.msGraphEndpointHost="https://graph.microsoft.com/"
Nel codice precedente:
Enter_the_Application_Id_here
è l'ID dell'applicazione registrata.Enter_the_Client_Secret_Here
corrisponde al valore di Segreto client creato in Certificati e segreti per l'applicazione registrata.Enter_the_Tenant_Info_Here
è il valore dell'ID directory (tenant) dell'applicazione registrata.
- Per usare HTTPS con localhost, specificare le proprietà
server.ssl.key
. Per generare un certificato autofirmato, usare l'utilità keytool (inclusa in JRE).
Ecco un esempio:
keytool -genkeypair -alias testCert -keyalg RSA -storetype PKCS12 -keystore keystore.p12 -storepass password
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=password
server.ssl.key-alias=testCert
- Inserire il file dell'archivio chiavi generato nella cartella resources.
Passaggio 4: Eseguire il codice di esempio
Per eseguire il progetto, eseguire una delle operazioni seguenti:
- Eseguirlo direttamente dall'IDE usando il server Spring Boot incorporato.
- Creare un pacchetto in un file WAR usando Maven e quindi distribuirlo in una soluzione contenitore J2EE come Apache Tomcat.
Esecuzione del progetto da un IDE
Per eseguire l'applicazione Web da un ambiente IDE, selezionare Esegui, quindi passare alla home page del progetto. Per questo esempio, l'URL dell'home page standard è https://localhost:8443.
Nella pagina iniziale selezionare il pulsante Accedi per reindirizzare gli utenti a Microsoft Entra ID e richiedere le credenziali.
Una volta autenticati, gli utenti vengono reindirizzati a
https://localhost:8443/msal4jsample/secure/aad
. Ora sono connessi e nella pagina vengono visualizzate le informazioni sull'account utente. L'interfaccia utente di esempio include i pulsanti seguenti:- Disconnetti: disconnette l'utente corrente dall'applicazione e lo reindirizza alla home page.
- Mostra informazioni utente: acquisisce un token per Microsoft Graph e chiama Microsoft Graph con una richiesta che contiene il token, che restituisce informazioni di base sull'utente connesso.
Esecuzione del progetto da Tomcat
Se si vuole distribuire l'esempio Web in Tomcat, apportare alcune modifiche al codice sorgente.
Aprire ms-identity-java-webapp/src/main/java/com.microsoft.azure.msalwebsample/MsalWebSampleApplication.
Eliminare tutto il codice sorgente e sostituirlo con il codice seguente:
package com.microsoft.azure.msalwebsample; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication public class MsalWebSampleApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(MsalWebSampleApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MsalWebSampleApplication.class); } }
La porta HTTP predefinita di Tomcat è 8080, ma è necessaria una connessione HTTPS sulla porta 8443. Per configurare questa impostazione:
Passare a tomcat/conf/server.xml.
Cercare il tag
<connector>
e sostituire il connettore esistente con questo:<Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="8443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="C:/Path/To/Keystore/File/keystore.p12" keystorePass="KeystorePassword" clientAuth="false" sslProtocol="TLS"/>
Aprire una finestra del prompt dei comandi. Passare alla cartella radice di questo esempio (in cui si trova il file
pom.xml
) ed eseguiremvn package
per compilare il progetto.- Questo comando genererà un file
msal-web-sample-0.1.0.war
nella directory/targets
. - Rinominare questo file in
msal4jsample.war
. - Distribuire il file WAR usando Tomcat o un'altra soluzione contenitore J2EE.
- Per distribuire il file
msal4jsample.war
copiarlo nella directory/webapps/
di installazione di Tomcat e quindi avviare il server Tomcat.
- Per distribuire il file
- Questo comando genererà un file
Dopo aver distribuito il file, passare a
https://localhost:8443/msal4jsample
usando un browser.
Importante
L'applicazione di questa guida di avvio rapido usa un segreto client per identificarsi come client riservato. Poiché il segreto client viene aggiunto come testo normale ai file di progetto, per motivi di sicurezza è consigliabile usare un certificato anziché un segreto client prima di usare l'applicazione in un ambiente di produzione. Per altre informazioni sull'utilizzo di un certificato, vedere Credenziali del certificato per l'autenticazione dell'applicazione.
Ulteriori informazioni
Funzionamento dell'esempio
Ottenere MSAL
MSAL per Java (MSAL4J) è la libreria Java usata per far accedere gli utenti e richiedere i token usati per accedere a un'API protetta da Microsoft Identity Platform.
Aggiungere MSAL4J all'applicazione usando Maven o Gradle per gestire le dipendenze apportando le modifiche seguenti al file pom.xml (Maven) o build.gradle (Gradle) dell'applicazione.
In pom.xml:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>msal4j</artifactId>
<version>1.0.0</version>
</dependency>
In build.gradle:
compile group: 'com.microsoft.azure', name: 'msal4j', version: '1.0.0'
Inizializzare MSAL
Aggiungere un riferimento a MSAL per Java aggiungendo il codice seguente all'inizio del file in cui verrà usato MSAL4J:
import com.microsoft.aad.msal4j.*;
Assistenza e supporto
Se è necessaria assistenza, si vuole segnalare un problema o si vogliono ottenere informazioni sulle opzioni di supporto, vedere Assistenza e supporto per gli sviluppatori.
Passaggi successivi
Per una descrizione più dettagliata della creazione di app Web per l'accesso degli utenti in Microsoft Identity Platform, vedere la serie di scenari in più parti: