Guida introduttiva: Accedere agli utenti e chiamare l'API Microsoft Graph da un'app Web Node.js

Questa guida introduttiva usa un esempio Node.js'app Web per illustrare come accedere gli utenti usando il flusso del codice di autorizzazione e chiamare l'API Microsoft Graph. L'esempio usa il nodo MSAL per gestire l'autenticazione.

Prerequisiti

Registrare l'applicazione e gli identificatori del record

Per completare la registrazione indicare il nome dell'applicazione e specificare i tipi di account supportati. Dopo la registrazione, nel riquadro Panoramica dell'applicazione vengono visualizzati gli identificatori necessari nel codice sorgente dell'applicazione.

  1. Accedi all'Interfaccia di amministrazione di Microsoft Entra.

  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 Identità>Applicazioni>Registrazioni app e selezionare Nuova registrazione.

  4. Immettere un nome per l'applicazione, ad esempio identity-client-web-app.

  5. Per Tipi di account supportati selezionare Account solo in questa directory dell'organizzazione. Per informazioni sui diversi tipi di account selezionare l'opzione Suggerimenti per la scelta.

  6. Selezionare Registra.

    Screenshot che mostra come immettere un nome e selezionare il tipo di account nell'interfaccia di amministrazione di Microsoft Entra.

  7. Al termine della registrazione viene visualizzato il riquadro Panoramica dell'applicazione. Registrare l'ID directory (tenant) e l'ID applicazione (client) da usare nel codice sorgente dell'applicazione.

    Screenshot che mostra i valori dell'identificatore nella pagina di panoramica dell'interfaccia di amministrazione di Microsoft Entra.

    Nota

    I Tipi di account supportati possono essere modificati facendo riferimento a Modificare gli account supportati da un'applicazione.

Aggiungere un URI di reindirizzamento della piattaforma e creare un segreto client

Per specificare il tipo di app durante la registrazione dell'app seguire i passaggi seguenti:

  1. In Gestisci selezionare Autenticazione.
  2. Nella pagina Configurazioni della piattaforma, selezionare Aggiungere una piattaforma, quindi selezionare l'opzione Web.
  3. Per gli URI di reindirizzamento immettere http://localhost:3000/auth/redirect.
  4. In URL di disconnessione front-channel immettere https://localhost:5001/signout-callback-oidc per la disconnessione.
  5. Selezionare Configura per salvare le modifiche.
  6. In Gestisci selezionare Certificati e segreti>Nuovo segreto client. Scegliere una descrizione e quindi selezionare Aggiungi.
  7. Prendere nota del valore di Segreto client per usarlo successivamente. Questo valore viene visualizzato una sola volta.

Clonare o scaricare l'applicazione di esempio

Per ottenere l'applicazione di esempio, è possibile clonarla da GitHub o scaricarla come file .zip.

  • Per clonare l'esempio, aprire un prompt dei comandi, passare alla posizione in cui si vuole creare il progetto e immettere il comando seguente:

    git clone https://github.com/Azure-Samples/ms-identity-node.git
    
  • Scaricare il file .zip. Estrarlo in un percorso di file in cui la lunghezza del nome è inferiore a 260 caratteri.

Configurare il progetto

Estrarre il progetto, aprire la cartella ms-identity-node-main e quindi aprire il file .env nella cartella App. Sostituire i valori precedenti come indicato di seguito:

Variabile Descrizione Esempi
Enter_the_Cloud_Instance_Id_Here L’istanza del cloud di Azure in cui è registrata l'applicazione https://login.microsoftonline.com/ (includere la barra finale in avanti)
Enter_the_Tenant_Info_here ID tenant o dominio primario contoso.microsoft.com oppure aaaabbbb-0000-cccc-1111-dddd2222eeee
Enter_the_Application_Id_Here ID client dell'applicazione registrata 00001111-aaaa-2222-bbbb-3333cccc4444
Enter_the_Client_Secret_Here Segreto client dell'applicazione registrata A1b-C2d_E3f.H4i,J5k?L6m!N7o-P8q_R9s.T0u
Enter_the_Graph_Endpoint_Here Istanza cloud dell'API Microsoft Graph che verrà chiamata dall'app https://graph.microsoft.com/ (includere la barra finale in avanti)
Enter_the_Express_Session_Secret_Here Stringa casuale di caratteri usata per firmare il cookie di sessione rapida A1b-C2d_E3f.H4...

Il file dovrà essere simile al seguente:

CLOUD_INSTANCE=https://login.microsoftonline.com/
TENANT_ID=aaaabbbb-0000-cccc-1111-dddd2222eeee
CLIENT_ID=00001111-aaaa-2222-bbbb-3333cccc4444
CLIENT_SECRET=A1b-C2d_E3f.H4...

REDIRECT_URI=http://localhost:3000/auth/redirect
POST_LOGOUT_REDIRECT_URI=http://localhost:3000

GRAPH_API_ENDPOINT=https://graph.microsoft.com/

EXPRESS_SESSION_SECRET=6DP6v09eLiW7f1E65B8k

Eseguire l'applicazione ed eseguire l'accesso

Eseguire il progetto usando Node.js.

  1. Per avviare il server, eseguire i comandi seguenti nella directory del progetto:

    cd App
    npm install
    npm start
    
  2. Vai a http://localhost:3000/.

  3. Selezionare Accedi per avviare il processo di accesso.

    Al primo accesso viene richiesto di fornire il proprio consenso per consentire all'applicazione di eseguire l’accesso e accedere al profilo. Una volta completato l’accesso, si verrà reindirizzati alla home page dell'applicazione.

Ulteriori informazioni

Funzionamento dell'esempio

L'esempio ospita un server Web in localhost, porta 3000. Quando un Web browser accede a questo indirizzo, l'app esegue il rendering della home page. Quando l'utente seleziona Accedi, l'app reindirizza il browser alla schermata di accesso di Microsoft Entra tramite l'URL generato dalla libreria MSAL Node. Dopo il consenso dell'utente, il browser reindirizza l'utente alla home page dell'applicazione, insieme a un token ID e un token di accesso.

MSAL Node

Con la libreria MSAL Node è possibile concedere l'accesso agli utenti e richiedere i token usati per accedere a un'API protetta da Microsoft Identity Platform. È possibile scaricare l'ultima versione usando Node.js Package Manager (npm):

npm install @azure/msal-node

Passaggio successivo

Per ulteriori informazioni compilare un'app Web ASP.NET Core che esegue l’accesso degli utenti nella serie di esercitazioni in più parti seguenti: