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

É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 :

  1. Connectez-vous au Centre d’administration de Microsoft Entra au minimum en tant qu’Administrateur d’application cloud.
  2. 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.
  3. Accédez à Identité>Applications>Inscriptions d’applications, puis sélectionnez Nouvelle inscription.
  4. Entrez un Nom pour votre application, tel que python-webapp.
  5. Sous Types de comptes pris en charge, sélectionnez Comptes dans cet annuaire organisationnel uniquement.
  6. Sous URI de redirection, choisissez Web pour la plateforme.
  7. Entrez l’URI de http://localhost:5000/getAToken. Vous pouvez modifier cette valeur ultérieurement.
  8. 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 :

  1. Dans la page Vue d’ensemble, notez la valeur de ID d’application (client) pour une utilisation ultérieure.
  2. Sous Gérer, sélectionnez Certificats et secrets, puis dans la section Secrets client, sélectionnez Nouveau secret client.
  3. Tapez une description pour la clé secrète client, laissez l’expiration par défaut, puis sélectionnez Ajouter.
  4. 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 :

  1. Sous Gérer, sélectionnez Autorisations de l’API>Ajouter une autorisation.
  2. Vérifiez ensuite que l’onglet API Microsoft est sélectionné.
  3. Dans la section API Microsoft couramment utilisées, sélectionnez Microsoft Graph.
  4. Dans la section Permissions déléguées, vérifiez que User.Read est sélectionné. Utilisez la zone de recherche au besoin.
  5. 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

  1. 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
    
  2. 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 à un https://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 .

Étape 6 : Exécuter l’application exemple

  1. Créez un environnement virtuel pour l’application :

    py -m venv .venv
    .venv\scripts\activate
    
  2. Installez les exigences à l’aide de :pip

    pip install -r requirements.txt
    
  3. 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
    
  4. 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.

  5. 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.

  6. 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.

Diagramme montrant l’exemple d’application demandant un consentement pour accéder aux autorisations requises.

  1. La capture d’écran suivante s’affiche, indiquant que vous êtes connecté à l’application.

Diagramme montrant comment l’exemple d’application a correctement connecté un utilisateur.

Fonctionnement

Le diagramme suivant montre comment fonctionne l’exemple d’application :

Diagramme montrant le fonctionnement de l’exemple d’application généré par ce guide de démarrage rapide.

  1. 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.

  2. 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 :