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
- Un account Azure con una sottoscrizione attiva. Creare 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
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:
- Accedere all'Interfaccia di amministrazione di Microsoft Entra almeno come Amministratore applicazione 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 Identità>Applicazioni>Registrazioni app e selezionare Nuova registrazione.
- Immettere un Nome per l'applicazione, ad esempio python-webapp.
- In Tipi di account supportati selezionare Account solo in questa directory organizzativa.
- In URI di reindirizzamento selezionare Web per la piattaforma.
- 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 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:
- Nella pagina Panoramica dell'app prendere nota del valore del campo ID applicazione (client) per uso successivo.
- In Gestisci selezionare Certificati e segreti e nella sezione Segreti client 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. 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:
- In Gestisci selezionare Autorizzazioni API>Aggiungi un'autorizzazione.
- Verificare che la scheda API Microsoft sia selezionata.
- Nella sezione API Microsoft più usate selezionare Microsoft Graph.
- Nella sezione Autorizzazioni delegate verificare che User.Read sia selezionato. Se necessario, usare la casella di ricerca.
- 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
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>
- 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
suhttps://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.
- Impostare il valore di
Passaggio 6: Eseguire l'app di esempio
Creare un ambiente virtuale per l’app:
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:5000 e incollarlo in un browser. Si consiglia di usare una sessione del browser privata o in incognito.
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 eseguire l’accesso e leggere il profilo, come mostrato. Selezionare Accetto.
- Viene visualizzata il ritaglio di schermata seguente per indica che è stato eseguito l'accesso all'applicazione.
Funzionamento
Il diagramma seguente mostra 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
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: