Partager via


Connecter des utilisateurs et appeler une API web protégée dans un exemple d’application Android (Kotlin)

Ce guide montre comment configurer un exemple d’application mobile Android pour connecter des utilisateurs et appeler une API web ASP.NET Core.

Dans cet article, vous effectuez les tâches suivantes :

  • Inscrire une application dans le centre d’administration Microsoft Entra.
  • Ajouter une URL de redirection de plateforme.
  • Activer les flux de clients publics.
  • Mettre à jour le fichier d’exemple de code de configuration Android afin d’utiliser votre propre ID externe Microsoft Entra pour les détails relatifs au tenant du client.
  • Exécuter et tester l’exemple d’application mobile Android.
  • Appeler une API web protégée.

Prérequis

  • Android Studio.

  • Locataire externe. Si vous n’en avez pas, inscrivez-vous à un essai gratuit.

  • Une inscription d’API qui expose au moins une étendue (autorisations déléguées) et un rôle d’application (autorisation d’application) tel que ToDoList.Read. Si ce n’est déjà fait, suivez les instructions pour appeler une API dans un exemple d’application mobile Android pour avoir une API web ASP.NET Core protégée fonctionnelle. Veillez à effectuer les étapes suivantes :

    • Inscrire une application d’API web
    • Configurer des étendues d’API
    • Configurer les rôles d’application
    • Configurer des revendications facultatives
    • Cloner ou télécharger l’exemple d’API web
    • Configurer et exécuter un exemple d’API web

Inscrire une application

ID externe Microsoft Entra doit être informé de l’existence de l’application que vous créez pour permettre à votre application de connecter des utilisateurs avec Microsoft Entra. L’inscription d’application établit une relation de confiance entre l’application et Microsoft Entra. Lorsque vous enregistrez une application, l'ID externe génère un identifiant unique appelé ID d'application (client), une valeur utilisée pour identifier votre application lors de la création de demandes d'authentification.

Les étapes suivantes vous montrent comment inscrire votre application dans le centre d’administration Microsoft Entra :

  1. Connectez-vous au centre d’administration de Microsoft Entra au minimum en tant que Développeur d’application.

  2. Si vous avez accès à plusieurs tenants, utilisez l’icône Paramètres dans le menu supérieur pour basculer vers votre tenant externe depuis le menu Répertoires + abonnements.

  3. Accédez à Identité>Applications>Inscriptions d’applications.

  4. Sélectionnez + Nouvelle inscription.

  5. Dans la page Inscrire une application qui s’affiche ;

    1. Dans Nom, entrez un nom d’application explicite qui va être présenté aux utilisateurs de l’application, par exemple ciam-client-app.
    2. Sous Types de comptes pris en charge, sélectionnez Comptes dans cet annuaire organisationnel uniquement.
  6. Sélectionnez Inscription.

  7. Le volet Vue d’ensemble de l’application s’affiche après une inscription réussie. Enregistrez l’ID d’application (client) à utiliser dans le code source de votre application.

Ajouter une URL de redirection de plateforme

Pour spécifier le type de votre application dans votre inscription d’application, effectuez les étapes suivantes :

  1. Sous Gérer, sélectionnez Authentification.
  2. Dans la page Configurations de plateforme, sélectionnez Ajouter une plateforme, puis l’option Android.
  3. Entrez le nom du package de votre projet. Si vous avez téléchargé l’exemple de code, cette valeur est com.azuresamples.msaldelegatedandroidkotlinsampleapp.
  4. Dans la section Hachage de signature du volet Configurer votre application Android, sélectionnez Génération d’un hachage de signature de développement. Il est différent pour chaque environnement de développement. Copiez et exécutez la commande KeyTool pour votre système d’exploitation dans votre terminal.
  5. Entrez le Hachage de signature généré par KeyTool.
  6. Sélectionnez Configurer.
  7. Copiez la configuration MSAL à partir du volet Configuration Android et enregistrez-la pour la configuration d’application ultérieure.
  8. Cliquez sur Terminé.

Activer le flux de client public

Pour identifier votre application en tant que client public, procédez comme suit :

  1. Sous Gérer, sélectionnez Authentification.

  2. Sous Paramètres avancés, pour Autoriser les flux clients publics, sélectionnez Oui.

  3. Cliquez sur Enregistrer pour enregistrer vos modifications.

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

  2. Sous Gérer, sélectionnez Autorisations de l’API. Depuis la liste Autorisations configurées, l’autorisation User.Read a été attribuée à votre application. Toutefois, comme le tenant est un tenant externe, les utilisateurs consommateurs eux-mêmes ne peuvent pas consentir à cette autorisation. En qualité d’administrateur, vous devez consentir à ces autorisations au nom de tous les utilisateurs du tenant :

    1. Sélectionnez Accorder le consentement administrateur pour <nom de votre locataire>, puis sélectionnez Oui.
    2. Sélectionnez Actualiser, puis vérifiez que Accordé pour <nom de votre locataire> s’affiche sous État pour les deux étendues.

Accorder des autorisations d’API web à 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 :

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

  2. Sous Gérer, sélectionnez Autorisations de l’API.

  3. Sous Autorisations configurées, sélectionnez Ajouter une autorisation.

  4. Sélectionnez l’onglet API utilisées par mon organisation.

  5. Dans la liste des API, sélectionnez l’API, par exemple ciam-ToDoList-api.

  6. Sélectionnez l’option Autorisations déléguées.

  7. Dans la liste des autorisations, sélectionnez ToDoList.Read, ToDoList.ReadWrite (utilisez la zone de recherche si nécessaire).

  8. Sélectionnez le bouton Ajouter des autorisations.

  9. À ce stade, vous avez attribué les autorisations correctement. Toutefois, comme le locataire est celui d’un client, les utilisateurs consommateurs eux-mêmes ne peuvent pas donner leur consentement à ces autorisations. Pour résoudre ceci, en tant qu’administrateur, vous devez consentir à ces autorisations au nom de tous les utilisateurs du locataire :

    1. Sélectionnez Accorder le consentement administrateur pour <nom de votre locataire>, puis sélectionnez Oui.

    2. Sélectionnez Actualiser, puis vérifiez que Accordé pour <nom de votre locataire> s’affiche sous État pour les deux autorisations.

  10. 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} ou api://{clientId}/{ToDoList.ReadWrite}.

Cloner un exemple d’application mobile Android

Pour obtenir l’exemple d’application, vous pouvez le cloner à partir de GitHub ou le télécharger sous la forme d’un fichier .zip.

  • Pour cloner l’exemple, ouvrez une invite de commandes, 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-browser-delegated-android-sample
    

Configurer l’exemple d’application mobile Android

Pour activer l’authentification et l’accès aux ressources d’API web, configurez l’exemple en suivant ces étapes :

  1. Dans Android Studio, ouvrez le projet que vous avez cloné.

  2. Ouvrez le fichier /app/src/main/res/raw/auth_config_ciam.json.

  3. Recherchez l’espace réservé :

    • Enter_the_Application_Id_Here et remplacez-le par l’ID d’application (client) de l’application inscrite précédemment.
    • Enter_the_Redirect_Uri_Here et remplacez-le par la valeur redirect_uri dans le fichier de configuration MSAL (Microsoft Authentication Library) que vous avez téléchargé précédemment lorsque vous avez ajouté l’URL de redirection de plateforme.
    • Enter_the_Tenant_Subdomain_Here par le sous-domaine de l’annuaire (locataire). Par exemple, si votre domaine principal du locataire est contoso.onmicrosoft.com, utilisez contoso. Si vous ne connaissez pas votre sous-domaine de tenant, découvrez comment lire les détails de votre tenant.
  4. Ouvrez le fichier /app/src/main/AndroidManifest.xml.

  5. Recherchez l’espace réservé :

    • ENTER_YOUR_SIGNATURE_HASH_HERE et remplacez-le par le Hachage de signature que vous avez généré précédemment lorsque vous avez ajouté l’URL de redirection de plateforme.
  6. Ouvrez le fichier /app/src/main/java/com/azuresamples/msaldelegatedandroidkotlinsampleapp/MainActivity.kt.

  7. Recherchez la propriété nommée WEB_API_BASE_URL et définissez l’URL sur votre API web.

  8. Recherchez la propriété nommée scopes et définissez les étendues enregistrées dans Accorder des autorisations d’API web à l’exemple d’application Android.

    private const val scopes = "" // Developers should set the respective scopes of their web API here. For example, private const val scopes = "api://{clientId}/{ToDoList.Read} api://{clientId}/{ToDoList.ReadWrite}"
    

Vous avez configuré l’application qui est maintenant prête à être exécutée.

Exécuter et tester l’exemple d’application mobile Android

Pour générer et exécuter votre application, suivez ces étapes :

  1. Dans la barre d’outils, sélectionnez votre application dans le menu Configurations d’exécution.

  2. 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 Android physique.

  3. Sélectionnez le bouton Run.

  4. Sélectionnez Acquérir un jeton de manière interactive pour demander un jeton d’accès.

  5. Sélectionnez API – Effectuer une opération GET pour appeler l’API web ASP.NET Core précédemment configurée. Un appel réussi à l’API web retourne HTTP 200, tandis que HTTP 403 signifie un accès non autorisé.