Avvio rapido: Eseguire l’accesso degli utenti e chiamare l'API Microsoft Graph da un'app Web Python Flask

In questo avvio rapido è possibile scaricare ed un esempio di app Web Python Flask che dimostra come autenticare gli utenti e chiamare l'API Microsoft Graph. Gli utenti dell'organizzazione di Microsoft Entra possono accedere all'applicazione.

Prerequisiti

Passaggio 1: Registrare l'applicazione

Suggerimento

I passaggi descritti in questo articolo possono variare leggermente in base al portale di partenza.

Seguire questi passaggi per registrare l'applicazione nell'interfaccia di amministrazione di Microsoft Entra:

  1. Accedere all'Interfaccia di amministrazione di Microsoft Entra almeno come Amministratore applicazione 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 Identità>Applicazioni>Registrazioni app e selezionare Nuova registrazione.
  4. Immettere un Nome per l'applicazione, ad esempio python-webapp.
  5. In Tipi di account supportati selezionare Account solo in questa directory organizzativa.
  6. In URI di reindirizzamento selezionare Web per la piattaforma.
  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 client

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

  1. Nella pagina Panoramica dell'app prendere nota del valore del campo ID applicazione (client) per uso successivo.
  2. In Gestisci selezionare Certificati e segreti e nella sezione Segreti client 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. Questo valore è necessario per configurare il codice e non è possibile recuperarlo in un secondo momento.

Quando si creano le credenziali per un'applicazione client riservata, Microsoft consiglia di usare un certificato al posto di un segreto client prima di spostare l'applicazione in un ambiente di produzione. Per altre informazioni sull'uso di un certificato, vedere queste istruzioni.

Passaggio 3: Aggiungere un ambito

Poiché questa app esegue l’accesso degli utenti, è necessario aggiungere le autorizzazioni delegate:

  1. In Gestisci selezionare Autorizzazioni API>Aggiungi un'autorizzazione.
  2. Verificare che la scheda API Microsoft sia selezionata.
  3. Nella sezione API Microsoft più usate selezionare Microsoft Graph.
  4. Nella sezione Autorizzazioni delegate verificare che User.Read sia selezionato. Se necessario, usare la casella di ricerca.
  5. Selezionare Aggiungi autorizzazioni.

Passaggio 4: Scaricare l'app di esempio

Scaricare il codice di esempio di 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>
    
    • Impostare il valore di CLIENT_ID in ID applicazione (client) per l'applicazione registrata, disponibile nella pagina di panoramica.
    • Impostare il valore di CLIENT_SECRET nel segreto client creato in Certificati e segreti per l'applicazione registrata.
    • Impostare il valore di AUTHORITY su https://login.microsoftonline.com/<TENANT_GUID>. L' ID della directory (tenant) è disponibile nella pagina di panoramica della registrazione delle app.

    Le variabili di ambiente, a cui si fa riferimento in app_config.py, vengono conservate in un file .env separato per evitare il controllo del codice sorgente. Il file .gitignore fornito impedisce al file .env di essere archiviato.

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:5000 e incollarlo in un browser. Si consiglia di usare una sessione del browser privata o in incognito.

  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 eseguire l’accesso e leggere il profilo, come mostrato. Selezionare Accetto.

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

  1. Viene visualizzata il ritaglio di schermata seguente per indica che è stato eseguito l'accesso all'applicazione.

Il diagramma mostra come l'app di esempio ha completato l'accesso di un utente.

Funzionamento

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

Diagramma che mostra come funziona l'app di esempio generata da questa guida di avvio rapido.

  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

Per altre informazioni compilare un'app Web Python che esegue l’accesso degli utenti e chiama un'API Web protetta nella serie di esercitazioni in più parti seguente: