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
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.
Dans Gestion AD FS, cliquez avec le bouton droit sur Groupes d’applications et sélectionnez Ajouter un groupe d’applications.
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.
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.
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.
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.
Sur l’écran Appliquer la stratégie de contrôle d’accès, sélectionnez Autoriser tout le monde, puis cliquez sur Suivant.
Sur l’écran Configurer les autorisations de l’application, assurez-vous que openid et user_impersonation sont sélectionnés, puis cliquez sur Suivant.
Sur l’écran Résumé, cliquez sur Suivant.
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.
Téléchargez l’exemple.
Ouvrez l’exemple à l’aide de Visual Studio.
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/adfsida:Resource
- saisissez la valeur Identificateur du point 5 de la section Inscription de l'application d'AD FS.
Tester l’exemple
Cette section montre comment tester l’exemple configuré.
Une fois les modifications apportées au code, regénérez la solution.
En haut de Visual Studio, vérifiez qu’Internet Explorer est sélectionné, puis cliquez sur la flèche verte.
Sur la page d’accueil, cliquez sur Connexion.
Vous serez redirigé vers la page de connexion AD FS. Connectez-vous.
Une fois la connexion établie, cliquez sur Jeton d’accès.
En cliquant sur Jeton d'accès, vous obtenez les informations relatives au jeton d'accès en appelant l'API Web.
Étapes suivantes
Flux OpenID Connect/OAuth avec AD FS et scénarios d’application