Partager via


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

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

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 iOS afin d’utiliser votre propre ID externe Microsoft Entra pour les détails relatifs au locataire du client.
  • Exécuter et cloner l’exemple d’application mobile iOS.

Prérequis

  • Xcode.

  • Un 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 iOS pour avoir une API web ASP.NET Core protégée fonctionnelle. Veillez à effectuer les étapes suivantes :

    • Inscrire une application d’API web.
    • Configurer les étendues d’API.
    • Configurer les rôles d’application.
    • Configurer les revendications facultatives.
    • Cloner ou télécharger l’exemple d’API web.
    • Configurer et exécuter l’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 sélectionnez l’option iOS / macOS.
  3. Entrez l’ID de bundle de votre projet. Si vous avez téléchargé l’exemple de code, cette valeur est com.microsoft.identitysample.ciam.MSALiOS.
  4. Sélectionnez Configurer et enregistrez la Configuration MSAL qui apparaît dans la page Configuration iOS / macOS pour pouvoir l’entrer plus tard quand vous devrez configurer votre application.
  5. 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.

Une fois que vous avez inscrit votre application, celle-ci reçoit l’autorisation User.Read. Toutefois, comme le locataire est un locataire externe, les utilisateurs clients ne peuvent pas eux-mêmes consentir à cette autorisation. En qualité d’administrateur, vous devez consentir à ces autorisations au nom de tous les utilisateurs du client :

  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.

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

Accorder des autorisations d’API web à l’exemple d’application iOS

Une fois que vous avez inscrit votre application cliente, l’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}.

Clonez un échantillon d’application mobile iOS

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-ios-sample.git
    

Configurez l’échantillon d’application mobile iOS

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

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

  2. Ouvrez le fichier /MSALiOS/Configuration.swift.

  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 par la valeur kRedirectUri 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_Protected_API_Full_URL_Here et remplacez par l’URL de votre API web. Enter_the_Protected_API_Full_URL_Here devrait inclure l’URL de base (l’URL de l’API web déployée) et le point de terminaison (/api/todolist) de notre API web ASP.NET.
    • Enter_the_Protected_API_Scopes_Here et remplacez par les étendues enregistrées dans Accorder des autorisations d’API web à l’exemple d’application iOS.
    • 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.

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

Exécuter un exemple d’application iOS et appeler l’API web

Pour générer et exécuter votre application, procédez comme suit  :

  1. Pour générer et exécuter votre code, sélectionnez Exécuter depuis le menu Produit dans Xcode. Après une génération réussie, Xcode lance l’échantillon d’application dans le simulateur.
  2. Sélectionnez Acquérir un jeton de manière interactive pour demander un jeton d’accès.
  3. 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é.