Partager via


Démarrage rapide : acquérir un jeton et appeler l’API Microsoft Graph à partir d’une application console Python à l’aide de l’identité de l’application

Bienvenue ! Ce n’est probablement pas la page que vous attendiez. Pendant que nous travaillons sur un correctif, ce lien devrait vous permettre d’accéder au bon article :

Démarrage rapide : acquérir un jeton et appeler Microsoft Graph à partir d'une application démon Python

Nous vous prions de nous excuser pour le désagrément et nous vous remercions de votre patience.

Dans ce guide de démarrage rapide, vous téléchargez et exécutez un exemple de code qui montre comment une application Python peut obtenir un jeton d’accès à l’aide de l’identité de l’application pour appeler l’API Microsoft Graph et afficher une liste des utilisateurs dans l’annuaire. L’exemple de code montre comment un travail sans assistance ou un service Windows peut s’exécuter avec l’identité d’une application, au lieu de l’identité d’un utilisateur.

Prérequis

Pour exécuter cet exemple, vous avec besoin de ce qui suit :

Télécharger et configurer l’application de démarrage rapide

Étape 1 : Configurer votre application dans le portail Azure

Pour que l’exemple de code de ce guide de démarrage rapide fonctionne, créez un secret client et ajoutez l’autorisation d’application User.Read.All de l’API Graph.

Déjà configuré Votre application est configurée avec ces attributs.

Étape 2 : Télécharger le projet Python

Remarque

Enter_the_Supported_Account_Info_Here

Utilisateur standard

Si vous êtes un utilisateur standard de votre client, demandez à un Administrateur général de vous accorder le consentement administrateur pour votre application. Pour ce faire, donnez l’URL suivante à votre administrateur :

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

Étape 4 : Exécuter l'application

Vous devez installer les dépendances de cet exemple une seule fois.

pip install -r requirements.txt

Ensuite, exécutez l’application via l’invite de commandes ou la console :

python confidential_client_secret_sample.py parameters.json

Vous devriez voir sur la sortie de la console un fragment JSON représentant une liste d'utilisateurs dans votre répertoire Microsoft Entra.

Important

Cette application de démarrage rapide utilise un secret client pour s’identifier en tant que client confidentiel. Le secret client étant ajouté en texte brut à vos fichiers projet, il est recommandé, pour des raisons de sécurité, d’utiliser un certificat au lieu d’un secret client avant de considérer l’application comme application de production. Pour plus d’informations sur la façon d’utiliser un certificat, consultez ces instructions dans le référentiel GitHub dédié à cet exemple, mais dans le second dossier 2-Call-MsGraph-WithCertificate.

Plus d’informations

MSAL Python

MSAL Python est la bibliothèque utilisée pour connecter les utilisateurs et demander des jetons permettant d’accéder à une API protégée par la plateforme d’identités Microsoft. Comme vous l’avez vu, ce guide de démarrage rapide demande des jetons à l’aide de l’identité de l’application au lieu d’autorisations déléguées. Le flux d’authentification utilisé dans ce cas est désigné sous le nom de flux d’informations d’identification du client OAuth. Pour plus d’informations sur l’utilisation de MSAL Python avec des applications démon, voir cet article.

Vous pouvez installer MSAL Python en exécutant la commande pip suivante.

pip install msal

Initialisation MSAL

Vous pouvez ajouter la référence de MSAL en ajoutant le code suivant :

import msal

Ensuite, initialisez MSAL à l’aide du code suivant :

app = msal.ConfidentialClientApplication(
    config["client_id"], authority=config["authority"],
    client_credential=config["secret"])
Où : Description
config["secret"] Est le secret client créé pour l’application dans le portail Azure.
config["client_id"] Est l’ID d’application (client) de l’application inscrite dans le portail Azure. Vous pouvez retrouver cette valeur dans la page Vue d’ensemble de l’application dans le portail Azure.
config["authority"] Point de terminaison STS pour l’utilisateur à authentifier. Généralement https://login.microsoftonline.com/{tenant} pour un cloud public, où {tenant} est le nom ou l’ID de votre client.

Pour plus d’informations, consultez la documentation de référence sur ConfidentialClientApplication.

Demande de jetons

Pour demander un jeton à l’aide de l’identité d’application, utilisez la méthode 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"])
Où : Description
config["scope"] Contient les étendues demandées. Pour les clients confidentiels, utilisez un format similaire à {Application ID URI}/.default. Ce format indique que les étendues demandées sont celles qui sont définies de manière statique dans l’objet application défini dans le portail Azure (pour Microsoft Graph, {Application ID URI} pointe vers https://graph.microsoft.com). Pour les API web personnalisées, {Application ID URI} est défini sous la section Exposer une API dans Inscription d’applications sur le portail Azure.

Pour plus d’informations, consultez la documentation de référence sur AcquireTokenForClient.

Aide et support

Si vous avez besoin d’aide, si vous souhaitez signaler un problème ou si vous voulez en savoir plus sur vos options de support, consultez Aide et support pour les développeurs.

Étapes suivantes

Pour en savoir plus sur les applications démon, consultez la page de destination du scénario.