Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Locataires de main-d’œuvre
Locataires externes (en savoir plus)
Dans ce guide de démarrage rapide, vous allez apprendre à configurer un exemple d’application mobile Android pour appeler une API web ASP.NET Core.
Conditions préalables
- Connecter les utilisateurs dans l'application mobile Android (Kotlin) d'exemple en utilisant l'authentification native.
- Dans le Centre d’administration Microsoft Entra, inscrivez une nouvelle application pour votre API web avec la configuration suivante. Pour obtenir des étapes détaillées, consultez Inscrire une application. Enregistrez l’ID d’application (client) et l’ID d’annuaire (locataire) pour une utilisation ultérieure.
- Nom : ciam-ToDoList-api.
- Types de comptes pris en charge : comptes dans cet annuaire organisationnel uniquement (locataire unique)
Configurer des étendues d’API
Une API doit publier au moins une étendue, également appelée Autorisation déléguée, pour que les applications clientes obtiennent avec succès un jeton d’accès pour un utilisateur. Pour publier une étendue, effectuez les étapes suivantes :
Dans la page Inscriptions des applications, sélectionnez l’application API que vous avez créée (ciam-ToDoList-api) pour ouvrir sa page Vue d’ensemble.
Sous Gérer, sélectionnez Exposer une API.
En haut de la page, en regard de URI d’ID d’application, sélectionnez le lien Ajouter pour générer un URI unique pour cette application.
Acceptez l’URI d’ID d’application proposé, tel que
api://{clientId}
, puis sélectionnez Enregistrer. Lorsque votre application web demande un jeton d’accès pour l’API web, elle ajoute l’URI comme préfixe pour chaque étendue que vous définissez pour l’API.Sous Étendues définies par cette API, sélectionnez Ajouter une étendue.
Entrez les valeurs suivantes qui définit l’accès en lecture à l’API, puis sélectionnez Ajouter une étendue pour sauvegarder vos modifications :
Propriété Valeur Nom de l’étendue ToDoList.Read Qui peut donner son consentement Administrateurs uniquement Nom d’affichage du consentement administrateur Lire la liste des tâches de l’utilisateur à l’aide de « ToDoListApi » Description du consentement de l'administrateur Autoriser l’application à lire la liste de tâches de l’utilisateur à l’aide de « TodoListApi ». État Activé Sélectionnez à nouveau Ajouter une étendue, puis entrez les valeurs suivantes qui définissent une portée d'accès en lecture et en écriture à l'API. Sélectionnez Ajouter une étendue pour enregistrer vos changements :
Propriété Valeur Nom de l’étendue ToDoList.ReadWrite Qui peut donner son consentement Administrateurs uniquement Nom d’affichage du consentement administrateur Lire et écrire la liste ToDo de l’utilisateur à l’aide de « ToDoListApi » Description du consentement de l'administrateur Permet à l’application de lire et écrire la liste ToDo de l’utilisateur à l’aide de « ToDoListApi » État Activé
Découvrez-en plus sur le principe du privilège minimum lors de la publication d’autorisations pour une API web.
Configurer les rôles d’application
Une API doit publier au moins un rôle d'application pour les applications, également appelé autorisation d'application, pour que les applications clientes obtiennent un jeton d'accès en leur propre nom. Les autorisations d’application sont le type d’autorisations que les API doivent publier lorsqu’elles souhaitent permettre aux applications clientes de s’authentifier correctement en tant qu’elles-mêmes et qu’elles n’ont pas besoin de connecter des utilisateurs. Pour publier une autorisation d'application, procédez comme suit :
Dans la page Inscriptions d’applications, sélectionnez l’application que vous avez créée (par exemple, ciam-ToDoList-api) pour ouvrir sa page Vue d’ensemble.
Sous Gérer, sélectionnez Rôles d’applications.
Sélectionnez Créer un rôle d'application, puis saisissez les valeurs suivantes, puis sélectionnez Appliquer pour enregistrer vos modifications :
Propriété Valeur Nom complet ToDoList.Read.All Types de membres autorisés Applications Valeur ToDoList.Read.All Descriptif Autoriser l'application à lire la liste de tâches de chaque utilisateur à l'aide de 'TodoListApi' Voulez-vous activer le rôle de cette application ? Maintenez cette option cochée Sélectionnez à nouveau Créer un rôle d'application, puis saisissez les valeurs suivantes pour le deuxième rôle d'application, puis sélectionnez Appliquer pour enregistrer vos modifications :
Propriété Valeur Nom complet ToDoList.ReadWrite.All Types de membres autorisés Applications Valeur ToDoList.ReadWrite.All Descriptif Autoriser l’application à lire et écrire la liste ToDo de chaque utilisateur à l’aide de « TodoListApi » Voulez-vous activer le rôle de cette application ? Maintenez cette option cochée
Configurer des revendications facultatives
Vous pouvez ajouter la revendication facultative idtyp pour aider l’API web à déterminer si un jeton est un jeton d’application ou une application + jeton utilisateur . Bien que vous puissiez utiliser une combinaison de revendications de scp et de rôles dans le même but, la revendication idtyp est le moyen le plus simple de distinguer un jeton d'application d'un jeton d'application + utilisateur. Par exemple, la valeur de cette revendication est app lorsque le jeton est un jeton d'application uniquement.
Accorder des autorisations d’API à l’exemple d’application Android
Une fois que vous avez inscrit votre application cliente et votre API web et que vous avez exposé l’API en créant des étendues, vous pouvez configurer les autorisations du client sur l’API en effectuant les étapes suivantes :
Dans la page Inscriptions d’applications, sélectionnez l’application que vous avez créée (par exemple, ciam-client-app) pour ouvrir sa page Vue d'ensemble.
Sous Gérer, sélectionnez les autorisations d'API .
Sous Autorisations configurées, sélectionnez Ajouter une autorisation.
Sélectionnez l’onglet API utilisées par mon organisation.
Dans la liste des API, sélectionnez l’API, par exemple ciam-ToDoList-api.
Sélectionnez l’option Autorisations déléguées.
Dans la liste des autorisations, sélectionnez ToDoList.Read, ToDoList.ReadWrite (utilisez la zone de recherche si nécessaire).
Sélectionnez le bouton Ajouter des autorisations.
À ce stade, vous avez attribué les autorisations correctement. Cependant, étant donné que le locataire est le locataire d'un client, les utilisateurs consommateurs eux-mêmes ne peuvent pas consentir à ces autorisations. Pour résoudre ce problème, vous, en tant qu’administrateur, devez donner votre consentement à ces autorisations pour le compte de tous les utilisateurs du client :
Sélectionnez Accorder le consentement administrateur pour <nom de votre locataire>, puis sélectionnez Oui.
Sélectionnez Actualiser, puis vérifiez que Accordé pour le <nom de votre locataire> apparaît sous État pour les deux autorisations.
Dans la liste Autorisations configurées, sélectionnez les autorisations ToDoList.Read et ToDoList.ReadWrite, une par une, puis copiez l’URI complet de l’autorisation pour l’utiliser ultérieurement. L’URI d’autorisation complet ressemble à
api://{clientId}/{ToDoList.Read}
ouapi://{clientId}/{ToDoList.ReadWrite}
.
Cloner ou télécharger un exemple d’API web
Pour obtenir l’exemple d’application, vous pouvez le cloner à partir de GitHub ou le télécharger en tant que fichier .zip.
Pour cloner l’exemple, ouvrez une invite de commandes et accédez à l’emplacement où vous souhaitez créer le projet, puis entrez la commande suivante :
git clone https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial.git
Téléchargez le fichier zip. Extrayez-le dans un chemin de fichier où la longueur du nom est inférieure à 260 caractères.
Configurer et exécuter un exemple d’API web
Dans votre éditeur de code, ouvrez le fichier
2-Authorization/1-call-own-api-aspnet-core-mvc/ToDoListAPI/appsettings.json
.Trouvez l’espace réservé :
-
Enter_the_Application_Id_Here
et remplacez-le par l’ID d’application (client) de l’API web que vous avez copiée précédemment. -
Enter_the_Tenant_Id_Here
et remplacez-le par l’ID d’annuaire (locataire) que vous avez copié précédemment. -
Enter_the_Tenant_Subdomain_Here
et remplacez-le par le sous-domaine du répertoire (locataire). Par exemple, si le domaine principal de votre locataire estcontoso.onmicrosoft.com
, utilisezcontoso
. Si vous ne disposez pas du nom de votre locataire, découvrez de quelle manière consulter les détails de votre locataire.
-
Vous devez héberger votre API web pour l’exemple d’application Android pour l’appeler. Suivez le guide de démarrage rapide : Déployer une application web ASP.NET pour déployer votre API web.
Configurer un exemple d’application mobile Android pour appeler l’API web
L’exemple vous permet de configurer plusieurs points de terminaison URL et ensembles d’étendues d’API Web. Dans ce cas, vous ne configurez qu’un seul point de terminaison d’URL d’API web et ses étendues associées.
Dans votre Android Studio, ouvrez
/app/src/main/java/com/azuresamples/msalnativeauthandroidkotlinsampleapp/AccessApiFragment.kt
le fichier.Recherchez la propriété nommée
WEB_API_URL_1
et définissez l’URL sur votre API web.private const val WEB_API_URL_1 = "" // Developers should set the respective URL of their web API here
Recherchez la propriété nommée
scopesForAPI1
et définissez les étendues enregistrées dans Accorder des autorisations d’API à l’exemple d’application Android.private val scopesForAPI1 = listOf<String>() // Developers should set the respective scopes of their web API here. For example, private val scopes = listOf<String>("api://{clientId}/{ToDoList.Read}", "api://{clientId}/{ToDoList.ReadWrite}")
Exécuter un exemple d’application Android et appeler l’API web
Pour générer et exécuter votre application, procédez comme suit :
Dans la barre d’outils, sélectionnez votre application dans le menu Exécuter les configurations.
Dans le menu de l’appareil cible, sélectionnez l’appareil sur lequel vous souhaitez exécuter votre application.
Si aucun appareil n’est configuré, vous devez créer un appareil virtuel Android pour utiliser l’émulateur Android ou connecter un appareil physique.
Sélectionnez Bouton Exécuter . L’application s’ouvre sur l’écran de l’e-mail et celui du code secret à usage unique.
Sélectionnez l’onglet API pour tester l’appel d’API. Un appel réussi à l’API web retourne HTTP
200
, tandis que HTTP403
signifie un accès non autorisé.