Démarrage rapide : Connecter les utilisateurs et appeler Microsoft Graph à partir d'une application web Python Flask
Dans ce guide de démarrage rapide, vous téléchargez et exécutez un exemple d’application web Python Flask qui montre comment authentifier les utilisateurs et appeler l’API Microsoft Graph. Les utilisateurs de votre organisation Microsoft Entra peuvent se connecter à l’application.
Prérequis
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Un locataire Microsoft Entra. Pour plus d’informations, consultez Comment obtenir un locataire Microsoft Entra.
- Python 3+
É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.
Procédez comme suit pour inscrire votre application dans le centre d’administration Microsoft Entra :
- Connectez-vous au Centre d’administration de Microsoft Entra au minimum en tant qu’Administrateur d’application cloud.
- 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, tel que python-webapp.
- Sous Types de comptes pris en charge, sélectionnez Comptes dans cet annuaire organisationnel uniquement.
- Sous URI de redirection, choisissez Web pour la plateforme.
- Entrez l’URI de
http://localhost:5000/getAToken
. Vous pouvez modifier cette valeur ultérieurement. - Sélectionnez Inscrire.
Étape 2 : Ajouter une clé secrète client
L’exemple d’application utilise un secret client pour prouver son identité quand il demande des jetons. Suivez ces étapes pour créer un secret client pour votre application web Python :
- Dans la page Vue d’ensemble, notez la valeur de ID d’application (client) pour une utilisation ultérieure.
- Sous Gérer, sélectionnez Certificats et secrets, puis dans la section Secrets client, sélectionnez Nouveau secret client.
- Tapez une description pour la clé secrète client, laissez l’expiration par défaut, puis sélectionnez Ajouter.
- Dans un emplacement sécurisé, enregistrez la valeur de la clé secrète client. Vous avez besoin de cette valeur pour configurer le code et vous ne pourrez pas la récupérer ultérieurement.
Lors de la création d’informations d’identification pour une application cliente confidentielle, Microsoft vous recommande d’utiliser un certificat au lieu d’un secret client avant de faire passer l’application à un environnement de production. Pour savoir plus en détails comment utiliser un certificat, voir ces instructions.
Étape 3 : Ajouter une étendue
Comme cette application connecte les utilisateurs, vous devez ajouter des permissions déléguées :
- Sous Gérer, sélectionnez Autorisations de l’API>Ajouter une autorisation.
- Vérifiez ensuite que l’onglet API Microsoft est sélectionné.
- Dans la section API Microsoft couramment utilisées, sélectionnez Microsoft Graph.
- Dans la section Permissions déléguées, vérifiez que User.Read est sélectionné. Utilisez la zone de recherche au besoin.
- Sélectionnez Ajouter des autorisations.
Étape 4 : Télécharger l’application exemple
Téléchargez l’exemple de code Python ou clonez le référentiel :
git clone https://github.com/Azure-Samples/ms-identity-docs-code-python/
Étape 5 : Configurer l’application exemple
Ouvrez l’application que vous avez téléchargée dans un IDE et accédez au dossier racine de l’exemple d’application.
cd flask-web-app
Créez un fichier .env dans le dossier racine du projet en vous servant de .env.sample comme guide.
# 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>
- Définissez la valeur de
CLIENT_ID
sur l’ID de répertoire (locataire) de l’application inscrite, disponible à la page de présentation. - Définissez la valeur de
CLIENT_SECRET
sur la clé secrète client que vous avez créée dans Certificats et secrets pour l’application inscrite. - Affectez la valeur
AUTHORITY
à unhttps://login.microsoftonline.com/<TENANT_GUID>
. L’ID d’annuaire (locataire) est disponible dans la page Vue d’ensemble de l’inscription de l’application.
Les variables d’environnement sont référencées dans app_config.py et conservées dans un fichier .env distinct pour les préserver du contrôle de code source. Le fichier .gitignore fourni empêche l’enregistrement du fichier .env .
- Définissez la valeur de
Étape 6 : Exécuter l’application exemple
Créez un environnement virtuel pour l’application :
py -m venv .venv .venv\scripts\activate
Installez les exigences à l’aide de :
pip
pip install -r requirements.txt
Exécutez l’application depuis la ligne de commande. Vérifiez que votre application s’exécute sur le même port que l’URI de redirection que vous avez configuré précédemment.
flask run --debug --host=localhost --port=5000
Copiez l’URL HTTPS qui s’affiche dans le terminal (par exemple, https://localhost:5000), et collez-la dans un navigateur. Nous vous recommandons d’utiliser une session de navigateur privée ou incognito.
Effectuez les étapes et entrez les informations nécessaires pour vous connecter avec votre compte Microsoft. Vous êtes invité à fournir une adresse e-mail et un mot de passe pour vous connecter.
L’application demande l’autorisation de conserver l’accès aux données auxquelles vous lui avez donné accès, de vous connecter et de lire votre profil, comme illustré. Cliquez sur Accepter.
- La capture d’écran suivante s’affiche, indiquant que vous êtes connecté à l’application.
Fonctionnement
Le diagramme suivant montre comment fonctionne l’exemple d’application :
L’application utilise le package
identity
pour acquérir un jeton d’accès depuis la plateforme d’identités Microsoft. Ce package repose sur la bibliothèque MSAL (Microsoft Authentication Library) pour Python afin de simplifier l’authentification et l’autorisation dans les applications web.Le jeton d’accès que vous obtenez dans l’étape précédente est utilisé comme jeton du porteur pour authentifier l’utilisateur lorsque l’API Microsoft Graph est appelée.
Étapes suivantes
Continuez à apprendre en créant une application web Python qui connecte les utilisateurs et appelle une API web protégée dans cette série de tutoriels en plusieurs parties :