Guida introduttiva: Accedere agli 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:

Registrare e scaricare l'app della guida introduttiva

Suggerimento

I passaggi descritti in questo articolo possono variare leggermente in base al portale da cui si inizia.

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 l'esempio di codice

  1. Passare all'interfaccia di amministrazione di Microsoft Entra : Registrazioni app esperienza di avvio rapido come almeno un'applicazione cloud Amministrazione istrator.
  2. Immettere un nome per l'applicazione e quindi fare clic su Registra.
  3. 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:

  1. Accedere all'interfaccia di amministrazione di Microsoft Entra come almeno un'applicazione cloud Amministrazione istrator.
  2. 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.
  3. Passare a Applicazioni> di identità>Registrazioni app e selezionare Nuova registrazione.
  4. 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.
  5. Selezionare Registra.
  6. Nella pagina Panoramica prendere nota dei valori di ID applicazione (client) e ID della directory (tenant). Questi valori saranno necessari più avanti.
  7. In Gestisci selezionare Autenticazione.
  8. Selezionare Aggiungi una piattaforma>Web.
  9. Nella sezione URI di reindirizzamento immettere https://localhost:8443/msal4jsample/secure/aad.
  10. Seleziona Configura.
  11. Nella sezione Web, sotto URI di reindirizzamento, immettere https://localhost:8443/msal4jsample/graph/me come secondo URI di reindirizzamento.
  12. In Gestisci, selezionare Certificati e segreti. Nella sezione Segreti client seleziona Nuovo segreto client.
  13. Digitare una descrizione della chiave (ad esempio segreto app), lasciare la scadenza predefinita e selezionare Aggiungi.
  14. Prendere nota delValore del segreto client. in quanto sarà necessario più avanti.

Passaggio 2: Scaricare l'esempio di codice

Scaricare il codice di esempio

Passaggio 3: Configurare l'esempio di codice

  1. Estrarre il file ZIP in una cartella locale.

  2. Facoltativo. Se si usa un ambiente di sviluppo integrato, aprire l'esempio al suo interno.

  3. Aprire il file application.properties. È disponibile nella cartella src/main/resources/. Sostituire i valori nei campi aad.clientId, aad.authority e aad.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.
  1. 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
  1. 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.

  1. Nella pagina iniziale selezionare il pulsante Login (Accedi ) per reindirizzare gli utenti all'ID Microsoft Entra e richiedere le credenziali.

  2. 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 reindirizza l'utente 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.

  1. 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);
        }
       }
      
  2. 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"/>
      
  3. Aprire una finestra del prompt dei comandi. Passare alla cartella radice di questo esempio (dove si trova il pom.xml file) ed eseguire mvn package per compilare il progetto.

    • Questo comando genererà un msal-web-sample-0.1.0.war file nella /targets directory.
    • Rinominare questo file in msal4jsample.war.
    • Distribuire il file WAR usando Tomcat o un'altra soluzione contenitore J2EE.
      • Per distribuire il msal4jsample.war file, copiarlo nella /webapps/ directory nell'installazione di Tomcat e quindi avviare il server Tomcat.
  4. 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.

Altre informazioni

Funzionamento dell'esempio

Diagram that shows how the sample app generated by this quickstart works.

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: