Condividi tramite


Guida rapida: Autenticare gli utenti e chiamare Microsoft Graph da un'app Web Python Flask

In questa guida introduttiva si scarica ed esegue un esempio di app Web Python Flask che illustra come autenticare gli utenti e chiamare l'API Microsoft Graph. Gli utenti dell'organizzazione Microsoft Entra possono accedere all'applicazione.

Prerequisiti

Passaggio 1: Registrare l'applicazione

Seguire questa procedura per registrare l'applicazione nell'interfaccia di amministrazione di Microsoft Entra:

  1. Accedere al centro di amministrazione di Microsoft Entra come almeno un Amministratore di applicazioni cloud .
  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 Identity>Applications>App registrations e selezionare Nuova registrazione.
  4. Immettere un Nome per l'applicazione, ad esempio python-webapp.
  5. In Tipi di account supportati, selezionare solo gli account in questa directory organizzativa.
  6. In URI di reindirizzamento, seleziona la piattaforma Web.
  7. Immettere un URI di reindirizzamento di http://localhost:5000/getAToken. È possibile modificare questo valore in un secondo momento.
  8. Selezionare Registra.

Passaggio 2: Aggiungere un segreto del client

L'app di esempio usa un segreto client per dimostrare la propria identità quando richiede token. Seguire questa procedura per creare un segreto client per l'app Web Python:

  1. Nella pagina panoramica dell'app , prendere nota del valore dell'ID (client) dell'applicazione per utilizzo futuro.
  2. In Gestisciselezionare il & certificati certificati e nella sezione segreti client di selezionare Nuovo segreto client.
  3. Immettere una descrizione per il segreto client, lasciare la scadenza predefinita e selezionare Aggiungi.
  4. Salvare il valore del segreto client in una posizione sicura. Ti serve questo valore per configurare il codice, e non sarà possibile recuperarlo in seguito.

Quando si creano credenziali per un'applicazione client riservata, Microsoft consiglia di usare un certificato anziché un segreto client prima di spostare l'applicazione in un ambiente di produzione. Per altre informazioni su come usare un certificato, vedere queste istruzioni.

Passaggio 3: Aggiungere un ambito

Poiché questa app accede agli utenti, è necessario aggiungere autorizzazioni delegate:

  1. In Gestisciselezionare autorizzazioni API >Aggiungere un'autorizzazione.
  2. Assicurarsi che sia selezionata la scheda API Microsoft.
  3. Nella sezione API Microsoft di uso comune selezionare Microsoft Graph.
  4. Nella sezione Autorizzazioni delegate, assicurarsi che User.Read sia selezionato. Se necessario, usare la casella di ricerca.
  5. Selezionare Aggiungi autorizzazioni.

Passaggio 4: Scaricare l'app di esempio

Scaricare l'esempio di codice Python o clonare il repository:

git clone https://github.com/Azure-Samples/ms-identity-docs-code-python/

Passaggio 5: Configurare l'app di esempio

  1. Aprire l'applicazione scaricata in un IDE e passare alla cartella radice dell'app di esempio.

    cd flask-web-app
    
  2. Creare un file .env nella cartella radice del progetto usando .env.sample come guida.

    # The following variables are required for the app to run.
    CLIENT_ID=<Enter_your_client_id>
    CLIENT_SECRET=<Enter_your_client_secret>
    AUTHORITY=<Enter_your_authority_url>
    
    • Imposta il valore di CLIENT_ID all'ID applicazione (client) per l'applicazione registrata, disponibile nella pagina di panoramica.
    • Impostare il valore di CLIENT_SECRET al segreto del client che hai creato nei Certificati e & Segreti per l'applicazione registrata.
    • Impostare il valore di AUTHORITY su un https://login.microsoftonline.com/<TENANT_GUID>. L'ID directory (tenant) è disponibile nella pagina di panoramica della registrazione dell'app.

    Le variabili di ambiente a cui si fa riferimento in app_config.pye vengono mantenute in un file di separato per evitare il controllo del codice sorgente. Il file fornito .gitignore impedisce l'archiviazione del file .env.

Passaggio 6: Eseguire l'app di esempio

  1. Creare un ambiente virtuale per l'app:

    py -m venv .venv
    .venv\scripts\activate
    
  2. Installare i requisiti usando pip:

    pip install -r requirements.txt
    
  3. Eseguire l'app dalla riga di comando. Verificare che l'app sia in esecuzione sulla stessa porta dell'URI di reindirizzamento configurato in precedenza.

    flask run --debug --host=localhost --port=5000
    
  4. Copiare l'URL https visualizzato nel terminale, ad esempio https://localhost:5000e incollarlo in un browser. È consigliabile usare una sessione privata o in incognito del browser.

  5. Seguire i passaggi e immettere i dettagli necessari per accedere con l'account Microsoft. È necessario specificare un indirizzo di posta elettronica e una password per l'accesso.

  6. L'applicazione richiede l'autorizzazione per mantenere l'accesso ai dati a cui è stato concesso l'accesso e per accedere e leggere il profilo, come illustrato. Selezionare Accetta.

Diagramma che mostra l'app di esempio che richiede il consenso per accedere alle autorizzazioni necessarie.

  1. Viene visualizzata la schermata seguente che indica che è stato eseguito l'accesso all'applicazione.

Diagramma che mostra come l'app di esempio ha eseguito correttamente l'accesso a un utente.

Come funziona

Il diagramma seguente illustra il funzionamento dell'app di esempio:

Diagramma che mostra come funziona l'applicazione di esempio generata da questa guida introduttiva.

  1. L'applicazione usa il pacchetto identity per ottenere un token di accesso da Microsoft Identity Platform. Questo pacchetto è basato su Microsoft Authentication Library (MSAL) per Python per semplificare l'autenticazione e l'autorizzazione nelle app Web.

  2. Il token di accesso ottenuto nel passaggio precedente viene usato come token di connessione per autenticare l'utente quando si chiama l'API Microsoft Graph.

Passaggi successivi

Scopri di più costruendo un'app web Python che accede gli utenti e chiama un'API web protetta nella seguente serie di esercitazioni in più parti: