Partage via


Configurer une application mobile qui appelle des API web

S’applique à : cercle vert avec un symbole de coche blanc qui indique que le contenu suivant s’applique aux locataires du personnel. Locataires de main-d’œuvre (en savoir plus)

Après avoir créé votre application, vous allez apprendre à configurer le code à l’aide des paramètres d’inscription de l’application. Les applications mobiles présentent des complexités supplémentaires liées à l’ajustement dans leur infrastructure de création.

Prerequisites

  • Un compte Azure avec un abonnement actif. Créez un compte gratuitement. Ce compte doit disposer des autorisations nécessaires pour gérer les applications. Utilisez l’un des rôles suivants nécessaires pour inscrire l’application :
    • Administrateur d’application
    • Développeur d’applications
  • Inscrivez une nouvelle application dans le Centre d’administration Microsoft Entra, configurée pour les comptes dans cet annuaire organisationnel uniquement. Pour plus d’informations, reportez-vous à l'enregistrement d'une application. Enregistrez les valeurs suivantes à partir de la page Vue d’ensemble de l’application pour une utilisation ultérieure :
    • ID d’application (client)
    • ID de l’annuaire (locataire)

Ajouter un URI de redirection de plateforme

Pour spécifier votre type d’application à votre inscription d’application, procédez comme suit :

  1. Sous Gérer, sélectionnez Authentification>Ajouter une plateforme>iOS/macOS.
  2. Entrez votre ID d’offre groupée, puis sélectionnez Configurer. L’URI de redirection est calculé pour vous.

Si vous préférez configurer manuellement l'URI de redirection, utilisez le manifeste de l'application. Voici le format recommandé pour le manifeste :

  • iOS : msauth.<BUNDLE_ID>://auth
    • Par exemple, entrez msauth.com.yourcompany.appName://auth.
  • Android : msauth://<PACKAGE_NAME>/<SIGNATURE_HASH>
    • Vous pouvez générer le hachage de la signature Android à l'aide de la clé de mise en production ou de la clé de débogage par le biais de la commande KeyTool.

Activer le flux de client public

Si votre application utilise exclusivement l'authentification par nom d'utilisateur/mot de passe, il n'est pas nécessaire d'inscrire un URI de redirection pour votre application. Ce flux effectue un aller-retour vers la plateforme d'identités Microsoft. Votre application ne sera pas rappelée sur un URI spécifique. Toutefois, vous devez activer le flux 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.

Bibliothèques Microsoft prenant en charge des applications mobiles

Les bibliothèques Microsoft suivantes prennent en charge les applications mobiles :

Plateforme Projet sur
GitHub
Package Bien démarrer
démarré
Connexion des utilisateurs Accès aux API web Disponibilité générale ou
Préversion publique1
Android (Java) MSAL pour Android MSAL Démarrage rapide La bibliothèque peut demander des jetons d’ID pour la connexion de l’utilisateur. La bibliothèque peut demander des jetons d’accès pour les API web protégées. GA
Android (Kotlin) MSAL pour Android MSAL La bibliothèque peut demander des jetons d’ID pour la connexion de l’utilisateur. La bibliothèque peut demander des jetons d’accès pour les API web protégées. GA
iOS (Swift/Obj-C) MSAL pour iOS et macOS MSAL Didacticiel La bibliothèque peut demander des jetons d’ID pour la connexion de l’utilisateur. La bibliothèque peut demander des jetons d’accès pour les API web protégées. GA

1Les termes du contrat de licence universelle pour les services en ligne s’appliquent aux bibliothèques en préversion publique.

Instancier l’application

Android

Les applications mobiles utilisent la classe PublicClientApplication. Voici comment l’instancier :

PublicClientApplication sampleApp = new PublicClientApplication(
                    this.getApplicationContext(),
                    R.raw.auth_config);

iOS

Les applications mobiles sur iOS doivent instancier la classe MSALPublicClientApplication. Pour instancier la classe, utilisez le code suivant.

NSError *msalError = nil;

MSALPublicClientApplicationConfig *config = [[MSALPublicClientApplicationConfig alloc] initWithClientId:@"<your-client-id-here>"];
MSALPublicClientApplication *application = [[MSALPublicClientApplication alloc] initWithConfiguration:config error:&msalError];
let config = MSALPublicClientApplicationConfig(clientId: "<your-client-id-here>")
if let application = try? MSALPublicClientApplication(configuration: config){ /* Use application */}

Des propriétés MSALPublicClientApplicationConfig supplémentaires peuvent remplacer l’autorité par défaut, spécifier un URI de redirection ou modifier le comportement de mise en cache des jetons MSAL.

UWP

Cette section explique comment instancier l’application pour les applications UWP.

Instancier l’application

Dans UWP, la façon la plus simple d’instancier l’application consiste à utiliser le code suivant. Dans ce code, ClientId est le GUID de votre application inscrite.

var app = PublicClientApplicationBuilder.Create(clientId)
                                        .Build();

Des méthodes With<Parameter> supplémentaires définissent le parent de l’interface utilisateur, remplacent l’autorité par défaut, spécifient un nom et une version de client pour la télémétrie, spécifient un URI de redirection et spécifient la fabrique HTTP à utiliser. La fabrique HTTP peut être utilisée, par exemple, pour gérer les proxies et pour spécifier la télémétrie et la journalisation.

Les sections ci-dessous fournissent plus d’informations sur l’instanciation de l’application.

Spécifier l’interface utilisateur, la fenêtre ou l’activité parente

Sur Android, transmettez l’activité parente avant d’effectuer l’authentification interactive. Sur iOS, lorsque vous utilisez un répartiteur, transmettez ViewController. De la même façon sur UWP, vous pouvez transmettre la fenêtre parente. Vous la transmettez lorsque vous acquérez le jeton. Toutefois, lorsque vous créez l’application, vous pouvez également spécifier un rappel comme délégué qui retourne UIParent.

IPublicClientApplication application = PublicClientApplicationBuilder.Create(clientId)
  .ParentActivityOrWindowFunc(() => parentUi)
  .Build();

Sur Android, nous vous recommandons d’utiliser CurrentActivityPlugin. Le code de générateur PublicClientApplication qui en résulte ressemble à l’exemple suivant :

// Requires MSAL.NET 4.2 or above
var pca = PublicClientApplicationBuilder
  .Create("<your-client-id-here>")
  .WithParentActivityOrWindow(() => CrossCurrentActivity.Current)
  .Build();
Rechercher d’autres paramètres de création d’applications

Pour obtenir la liste de toutes les méthodes disponibles sur PublicClientApplicationBuilder, consultez la liste des méthodes.

Pour obtenir une description de toutes les options exposées dans PublicClientApplicationOptions, consultez la documentation de référence.

Tâches pour MSAL pour iOS et macOS

Ces tâches sont nécessaires lorsque vous utilisez MSAL pour iOS et macOS :

Tâches pour UWP

Sur UWP, vous pouvez utiliser des réseaux d’entreprise. Les sections suivantes décrivent les tâches que vous devez effectuer dans le scénario d’entreprise.

Pour plus d’informations, consultez Considérations spécifiques à UWP lors de l’utilisation de MSAL.NET.

Configurer l’application pour utiliser le répartiteur

Sur Android et iOS, les répartiteurs activent :

  • Authentification unique (SSO) : vous pouvez utiliser l’authentification unique pour les appareils inscrits avec Microsoft Entra ID. Lorsque vous utilisez la SSO, vos utilisateurs n’ont pas besoin de se connecter à chaque application.
  • Identification des appareils : ce paramètre active les stratégies d’accès conditionnel qui sont liées aux appareils Microsoft Entra. Le processus d’authentification utilise le certificat de l’appareil qui a été créé lorsque l’appareil a été joint à l’espace de travail.
  • Vérification de l’identification de l’application : Lorsqu’une application appelle le répartiteur, elle transmet son URL de redirection. Le répartiteur la vérifie ensuite.

Activer le répartiteur pour MSAL pour Android

Pour plus d’informations sur l’activation d’un répartiteur sur Android, consultez Authentification répartie sur Android.

Activer le répartiteur pour MSAL pour iOS et macOS

L’authentification répartie est activée par défaut pour les scénarios Microsoft Entra dans MSAL pour iOS et macOS.

Les sections suivantes fournissent des instructions pour configurer votre application pour la prise en charge de l’authentification répartie pour iOS et macOS. Certaines étapes diffèrent dans les deux ensembles d’instructions.

Authentification répartie pour MSAL pour iOS et macOS

L’authentification répartie est activée par défaut pour les scénarios Microsoft Entra.

Étape 1 : Mettre à jour AppDelegate pour gérer le rappel

Quand MSAL pour iOS et macOS appelle le répartiteur, celui-ci rappelle votre application via la méthode openURL. MSAL attendant la réponse du répartiteur, votre application doit coopérer pour rappeler MSAL. Configurez cette capacité en mettant à jour le fichier AppDelegate.m pour écraser la méthode, comme le montre le code suivant.

- (BOOL)application:(UIApplication *)app
            openURL:(NSURL *)url
            options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
    return [MSALPublicClientApplication handleMSALResponse:url
                                         sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]];
}
    func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {

        guard let sourceApplication = options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String else {
            return false
        }

        return MSALPublicClientApplication.handleMSALResponse(url, sourceApplication: sourceApplication)
    }

Si vous avez adopté UISceneDelegate sur iOS 13 ou une version ultérieure, placez le rappel MSAL dans le scene:openURLContexts: de UISceneDelegate à la place. MSAL handleMSALResponse:sourceApplication: ne doit être appelé qu’une seule fois pour chaque URL.

Pour plus d’informations, consultez la documentation d’Apple.

Étape 2 : Inscrire un schéma d’URL

MSAL pour iOS et macOS utilise des URL pour appeler le répartiteur, avant de retourner la réponse du répartiteur à votre application. Pour terminer l’aller-retour, inscrivez un schéma d’URL pour votre application dans le fichier Info.plist.

Pour inscrire un schéma pour votre application :

  1. Ajoutez le préfixe msauth à votre modèle d’URL personnalisée.

  2. Ajoutez l’identificateur de votre offre groupée à la fin de votre schéma. Suivez ce modèle :

    $"msauth.(BundleId)"

    Ici, BundleId identifie de façon unique votre appareil. Par exemple, si BundleId est yourcompany.xforms, votre schéma d’URL est msauth.com.yourcompany.xforms.

    Ce schéma d’URL fera partie de l’URI de redirection qui identifie de façon unique votre application lorsqu’il reçoit la réponse du répartiteur. Assurez-vous que l’URI de redirection au format msauth.(BundleId)://auth est inscrit pour votre application.

    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>msauth.[BUNDLE_ID]</string>
            </array>
        </dict>
    </array>
    

Étape 3 : Ajouter LSApplicationQueriesSchemes

Ajoutez LSApplicationQueriesSchemes pour autoriser les appels à l’application Microsoft Authenticator, si elle est installée.

Remarque

Le schéma msauthv3 est nécessaire lorsque votre application est compilée à l’aide de Xcode 11 et versions ultérieures.

Voici un exemple d’ajout de LSApplicationQueriesSchemes :

<key>LSApplicationQueriesSchemes</key>
<array>
  <string>msauthv2</string>
  <string>msauthv3</string>
</array>

Étapes suivantes

Passez à l’article suivant de ce scénario, Acquisition d’un jeton.