Condividi tramite


Avvio rapido: Acquisire un token e chiamare l'API Microsoft Graph da un'app console Python usando l'identità dell'app

Ti diamo il benvenuto! Questa probabilmente non è la pagina che ci si aspettava. Mentre lavoriamo a una correzione, questo collegamento dovrebbe portare all'articolo corretto:

Avvio rapido: Acquisire un token e chiamare Microsoft Graph da un'app daemon di Python

Ci scusiamo per l'inconveniente e ringraziamo per la pazienza mentre lavoriamo per risolvere il problema.

In questa guida di avvio rapido si scarica e si esegue un esempio di codice che illustra come un'applicazione Python può ottenere un token di accesso usando l'identità dell'app per chiamare l'API Microsoft Graph e visualizzare un elenco di utenti nella directory. L'esempio di codice dimostra come è possibile eseguire un processo o un servizio di Windows automatico con un'identità dell'applicazione invece che con un'identità dell'utente.

Prerequisiti

Per eseguire questo esempio, sono necessari:

Scaricare e configurare l'app della guida introduttiva

Passaggio 1: Configurare l'applicazione nel portale di Azure

Per fare in modo che l'esempio di codice in questo avvio rapido funzioni, creare un segreto client e aggiungere l'autorizzazione dell'applicazione User.Read.All dell'API Graph.

Configurazione già eseguita L'applicazione è configurata con questi attributi.

Passaggio 2: Scaricare il progetto Python

Nota

Enter_the_Supported_Account_Info_Here

Utente standard

Gli utenti standard del tenant devono chiedere a un amministratore globale di concedere il consenso amministratore per l'applicazione. A tale scopo, assegnare l'URL seguente all'amministratore:

https://login.microsoftonline.com/Enter_the_Tenant_Id_Here/adminconsent?client_id=Enter_the_Application_Id_Here

Passaggio 4: Eseguire l'applicazione

Le dipendenze di questo esempio devono essere installate una sola volta.

pip install -r requirements.txt

Eseguire quindi l'applicazione tramite il prompt dei comandi o la console:

python confidential_client_secret_sample.py parameters.json

Nell’output della console dovrebbe essere visualizzato un frammento JSON che rappresenta un elenco di utenti nella directory di Microsoft Entra.

Importante

Questa applicazione della guida introduttiva usa un segreto client per identificarsi come client riservato. Poiché il segreto client viene aggiunto come testo normale ai file di progetto, per motivi di sicurezza è consigliabile usare un certificato anziché un segreto client prima di considerare l'applicazione come applicazione di produzione. Per altre informazioni su come usare un certificato, vedere queste istruzioni nello stesso repository GitHub di questo esempio, ma nella seconda cartella 2-Call-MsGraph-WithCertificate.

Ulteriori informazioni

MSAL Python

MSAL Python è la libreria usata per concedere l'accesso agli utenti e richiedere i token usati per accedere a un'API protetta da Microsoft Identity Platform. Come descritto, questo avvio rapido richiede i token usando l'identità propria dell'applicazione invece delle autorizzazioni delegate. Il flusso di autenticazione usato in questo caso è noto come flusso delle credenziali client OAuth. Per altre informazioni su come usare MSAL Python con le app daemon, vedere questo articolo.

È possibile MSAL Python eseguendo il comando pip seguente.

pip install msal

Inizializzazione della libreria MSAL

È possibile aggiungere il riferimento per la libreria MSAL aggiungendo il codice seguente:

import msal

Inizializzare quindi la libreria MSAL usando il codice seguente:

app = msal.ConfidentialClientApplication(
    config["client_id"], authority=config["authority"],
    client_credential=config["secret"])
Dove: Descrizione
config["secret"] È il segreto client creato per l'applicazione nel portale di Azure.
config["client_id"] ID applicazione (client) dell'applicazione registrata nel portale di Azure. Questo valore è riportato nella pagina Panoramica dell'app nel portale di Azure.
config["authority"] Endpoint del servizio token di sicurezza per l'utente da autenticare. In genere https://login.microsoftonline.com/{tenant} per il cloud pubblico, dove {tenant} è il nome del tenant o l'ID tenant.

Per altre informazioni, vedere la documentazione di riferimento per ConfidentialClientApplication.

Richiesta di token

Per richiedere un token con l'identità dell'app, usare il metodo AcquireTokenForClient:

result = None
result = app.acquire_token_silent(config["scope"], account=None)

if not result:
    logging.info("No suitable token exists in cache. Let's get a new one from Azure AD.")
    result = app.acquire_token_for_client(scopes=config["scope"])
Dove: Descrizione
config["scope"] Contiene gli ambiti richiesti. Per i client riservati, dovrebbe essere usato un formato simile a {Application ID URI}/.default per indicare che gli ambiti che vengono richiesti sono quelli definiti in modo statico nell'oggetto app impostato nel portale di Azure. (per Microsoft Graph, {Application ID URI} punta a https://graph.microsoft.com). Per API Web personalizzate, {Application ID URI} è definito nella sezione Esporre un'API in Registrazioni app.

Per altre informazioni, vedere la documentazione di riferimento per AcquireTokenForClient.

Assistenza e supporto

Se è necessaria assistenza, si vuole segnalare un problema o si vogliono ottenere informazioni sulle opzioni di supporto, vedere Assistenza e supporto per gli sviluppatori.

Passaggi successivi

Per altre informazioni sulle applicazioni daemon, vedere la pagina di destinazione dello scenario.