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
- Un account Azure con una sottoscrizione attiva. Crea un account gratuitamente.
- Un tenant di Microsoft Entra. Per altre informazioni, vedere come ottenere un tenant di Microsoft Entra.
- Python 3 +
Passaggio 1: Registrare l'applicazione
Seguire questa procedura per registrare l'applicazione nell'interfaccia di amministrazione di Microsoft Entra:
- Accedere al centro di amministrazione di Microsoft Entra come almeno un Amministratore di applicazioni 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 Identity>Applications>App registrations e selezionare Nuova registrazione.
- Immettere un Nome per l'applicazione, ad esempio python-webapp.
- In Tipi di account supportati, selezionare solo gli account in questa directory organizzativa.
- In URI di reindirizzamento, seleziona la piattaforma Web.
- Immettere un URI di reindirizzamento di
http://localhost:5000/getAToken
. È possibile modificare questo valore in un secondo momento. - 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:
- Nella pagina panoramica dell'app , prendere nota del valore dell'ID (client) dell'applicazione per utilizzo futuro.
- In Gestisciselezionare il & certificati certificati e nella sezione segreti client di selezionare Nuovo segreto client.
- Immettere una descrizione per il segreto client, lasciare la scadenza predefinita e selezionare Aggiungi.
- 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:
- In Gestisciselezionare autorizzazioni API >Aggiungere un'autorizzazione.
- Assicurarsi che sia selezionata la scheda API Microsoft.
- Nella sezione API Microsoft di uso comune selezionare Microsoft Graph.
- Nella sezione Autorizzazioni delegate, assicurarsi che User.Read sia selezionato. Se necessario, usare la casella di ricerca.
- 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
Aprire l'applicazione scaricata in un IDE e passare alla cartella radice dell'app di esempio.
cd flask-web-app
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 unhttps://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.
- Imposta il valore di
Passaggio 6: Eseguire l'app di esempio
Creare un ambiente virtuale per l'app:
- Windows
- macOS/Linux
py -m venv .venv .venv\scripts\activate
Installare i requisiti usando
pip
:pip install -r requirements.txt
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
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.
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.
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.
- Viene visualizzata la schermata seguente che indica che è stato eseguito l'accesso all'applicazione.
Come funziona
Il diagramma seguente illustra il funzionamento dell'app di esempio:
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.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: