Partager via


Scénario : application web (application serveur) appelant des API web

Découvrez comment créer une application web qui connecte des utilisateurs authentifiés par AD FS 2019 et acquiert des jetons à l’aide de la bibliothèque MSAL pour appeler des API web.

Avant de lire cet article, vous devez connaître les concepts d’AD FS et le flux d’octroi du code d’autorisation.

Vue d’ensemble

Vue d’ensemble d’une application web appelant une API web.

Dans ce flux, une authentification est ajoutée à l’application web (Server App), qui peut alors connecter des utilisateurs et appeler une API web. Dans l’application web, utilisez la méthode d’acquisition de jeton AcquireTokenByAuthorizationCode de MSAL pour appeler l’API web. Vous utilisez le flux du code d’autorisation, en stockant le jeton acquis dans le cache de jeton. En cas de besoin, le contrôleur acquiert ensuite des jetons à partir du cache, en mode silencieux. MSAL actualise le jeton si nécessaire.

Les applications web qui appellent des API web présentent les caractéristiques suivantes :

  • sont des applications clientes confidentielles ;
  • qui ont inscrit un secret (secret partagé d’application, certificat ou compte AD) auprès d’AD FS. Ce secret est transmis lors de l’appel à AD FS pour obtenir un jeton.

Pour découvrir les étapes nécessaires à inscrire une application web dans AD FS et la configurer de manière à acquérir des jetons pour appeler une API web, nous allons utiliser un exemple disponible ici.

Conditions préalables

  • Outils clients GitHub
  • AD FS 2019 (ou version ultérieure) configuré et en cours d’exécution
  • Visual Studio 2013 ou une version ultérieure

Inscription d’application dans AD FS

Cette section montre comment inscrire l’application web comme client confidentiel et l’API web comme partie de confiance dans AD FS.

  1. Dans Gestion AD FS, cliquez avec le bouton droit sur Groupes d’applications et sélectionnez Ajouter un groupe d’applications.

  2. Dans l’Assistant Groupe d’applications, entrez WebAppToWebApi comme Nom, et sélectionnez Application serveur accédant à une API web sous Applications client-serveur. Cliquez sur Suivant.

    Capture d’écran de la page d’accueil de l’Assistant Ajout d’un groupe d’applications mettant en évidence le modèle Application serveur accédant à une API web.

  3. Copiez la valeur d’Identificateur du client. Celle-ci sera utilisée ultérieurement comme valeur pour ida:ClientId dans le fichier Web.config des applications. Entrez ce qui suit pour URI de redirection :https://localhost:44326.. Cliquez sur Ajouter. Cliquez sur Suivant.

    Capture d’écran de la page Application serveur de l’Assistant Ajout d’un groupe d’applications montrant les bonnes valeurs d’identificateur client et d’URI de redirection.

  4. Sur l’écran Configurer les informations d’identification de l’application, cochez Générer un secret partagé et copiez le secret. Ce secret sera utilisé ultérieurement comme valeur pour ida:ClientSecret dans le fichier Web.config des applications. Cliquez sur Suivant.

    Capture d’écran de la page Configurer les informations d’identification de l’application de l’Assistant Ajout d’un groupe d’applications montrant la sélection de l’option Générer un secret partagé et mettant en évidence le secret partagé généré.

  5. Sur l’écran Configurer l’API web, entrez Identificateur :https://webapi.. Cliquez sur Add. Cliquez sur Suivant. Cette valeur sera utilisée ultérieurement pour ida:GraphResourceId dans le fichier Web.config des applications.

    Capture d’écran de la page Configurer l’API web de l’Assistant Ajout d’un groupe d’applications montrant l’identificateur correct.

  6. Sur l’écran Appliquer la stratégie de contrôle d’accès, sélectionnez Autoriser tout le monde, puis cliquez sur Suivant.

    Capture d’écran de la page Choisir une stratégie de contrôle d’accès de l’Assistant Ajout d’un groupe d’applications mettant en évidence l’option Autoriser tout le monde.

  7. Sur l’écran Configurer les autorisations de l’application, assurez-vous que openid et user_impersonation sont sélectionnés, puis cliquez sur Suivant.

    Capture d’écran de la page Configurer les autorisations de l’application de l’Assistant Ajout d’un groupe d’applications montrant la sélection des options openid et user_impersonation.

  8. Sur l’écran Résumé, cliquez sur Suivant.

  9. Sur la page Terminé, cliquez sur Fermer.

Configuration du code

Cette section montre comment configurer une application web ASP.NET qui connecte un utilisateur et récupère un jeton pour appeler l’API web.

  1. Téléchargez l’exemple.

  2. Ouvrez l’exemple à l’aide de Visual Studio.

  3. Ouvrez le fichier Web.config. Modifiez les éléments suivants :

    • ida:ClientId - saisissez la valeur Identificateur du client du point 3 de la section Inscription de l'application d'AD FS.

    • ida:ClientSecret - saisissez la valeur Secret du point 4 de la section Inscription de l'application d'AD FS.

    • ida:RedirectUri - saisissez la valeur URI de redirection du point 3 de la section Inscription de l'application d'AD FS.

    • ida:Authority - tapez https://[votre nom d’hôte AD FS]/adfs. Par exemple : https://adfs.contoso.com/adfs

    • ida:Resource - saisissez la valeur Identificateur du point 5 de la section Inscription de l'application d'AD FS.

      Capture d’écran du fichier Web.config montrant les valeurs modifiées.

Tester l’exemple

Cette section montre comment tester l’exemple configuré.

  1. Une fois les modifications apportées au code, regénérez la solution.

  2. En haut de Visual Studio, vérifiez qu’Internet Explorer est sélectionné, puis cliquez sur la flèche verte.

    Capture d’écran de l’interface utilisateur de Visual Studio mettant en évidence l’option IIS Express (Internet Explorer).

  3. Sur la page d’accueil, cliquez sur Connexion.

    Capture d’écran de la page d’accueil mettant en évidence l’option Se connecter.

  4. Vous serez redirigé vers la page de connexion AD FS. Connectez-vous.

    Capture d’écran de la page Connexion.

  5. Une fois la connexion établie, cliquez sur Jeton d’accès.

    Capture d’écran de la page d’accueil mettant en évidence l’option Jeton d’accès.

  6. En cliquant sur Jeton d'accès, vous obtenez les informations relatives au jeton d'accès en appelant l'API Web.

    Capture d’écran de la page Jeton d’accès montrant les informations du jeton d’accès.

Étapes suivantes

Flux OpenID Connect/OAuth avec AD FS et scénarios d’application