Démarrage rapide : acquérir un jeton et appeler Microsoft Graph à partir d'une application démon Python
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 :
Inscrire et télécharger votre application de démarrage rapide
Étape 1 : Inscrivez votre application
Conseil
Les étapes décrites dans cet article peuvent varier légèrement en fonction du portail de départ.
Pour inscrire votre application et ajouter manuellement les informations d’inscription de l’application à votre solution, procédez comme suit :
- Connectez-vous au centre d’administration Microsoft Entra.
- Si vous avez accès à plusieurs tenants, utilisez l’icône Paramètres dans le menu supérieur pour basculer vers le tenant dans lequel vous voulez inscrire l’application à partir du menu Répertoires + abonnements.
- Accédez à Identité>Applications>Inscriptions d’applications, puis sélectionnez Nouvelle inscription.
- Entrez un nom pour votre application (par exemple,
Daemon-console
). Les utilisateurs de votre application peuvent voir ce nom, et vous pouvez le changer ultérieurement. - Sélectionnez Inscription.
- Sous Gérer, sélectionnez Certificats et secrets.
- Sous Secrets du client, sélectionnez Nouveau secret client, entrez un nom, puis sélectionnez Ajouter. Enregistrez la valeur secrète dans un emplacement sûr pour l’utiliser dans une étape ultérieure.
- Sous Gérer, sélectionnez Autorisations de l’API>Ajouter une autorisation. Sélectionnez Microsoft Graph.
- Sélectionnez Autorisations de l’application.
- Sous le nœud Utilisateur, sélectionnez User.Read.All, puis sélectionnez Ajouter des autorisations.
Étape 2 : Télécharger le projet Python
Télécharger le projet de démon Python
Étape 3 : Configurer le projet Python
Extrayez le fichier zip dans un dossier local proche de la racine du disque, par exemple, C:\Azure-Samples.
Accédez au sous-dossier 1-Call-MsGraph-WithSecret.
Modifiez parameters.json et remplacez les valeurs des champs
authority
,client_id
etsecret
par l’extrait de code suivant :"authority": "https://login.microsoftonline.com/Enter_the_Tenant_Id_Here", "client_id": "Enter_the_Application_Id_Here", "secret": "Enter_the_Client_Secret_Here"
Où :
Enter_the_Application_Id_Here
: est l’ID d’application (client) pour l’application que vous avez inscrite.Enter_the_Tenant_Id_Here
: remplacez cette valeur par l’ID du locataire ou le nom du locataire (par exemple, contoso.microsoft.com)Enter_the_Client_Secret_Here
: remplacez cette valeur par le secret client créé à l’étape 1.
Conseil
Pour connaître les valeurs de l’ID d’application (client) et de l’ID d’annuaire (locataire), consultez la page Vue d’ensemble de l’application dans le centre d’administration Microsoft Entra. Pour générer une nouvelle clé, accédez à la page Certificats et secrets.
Utilisateur standard
Si vous êtes un utilisateur standard de votre locataire, 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
Où :
Enter_the_Tenant_Id_Here
: remplacez cette valeur par l’ID du locataire ou le nom du locataire (par exemple, contoso.microsoft.com)Enter_the_Application_Id_Here
– est l’ID d’application (client) de l’application que vous avez inscrite précédemment.
Étape 5 : Exécution de 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 voyez, 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 dépôt GitHub dédié à cet exemple, mais dans le second dossier 2-Call-MsGraph-WithCertificate.
Informations complémentaires
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 terme 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"] |
Secret client créé pour l’application dans le centre d’administration Microsoft Entra. |
config["client_id"] |
ID d’application (client) de l’application inscrite dans le centre d’administration Microsoft Entra. Vous pouvez trouver cette valeur dans la page Vue d’ensemble de l’application dans le Centre d’administration Microsoft Entra. |
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 locataire. |
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 AAD.")
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 centre d’administration Microsoft Entra (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 dans le centre d’administration Microsoft Entra. |
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.