Partager via


Tutoriel : Préparer votre application Android (Kotlin) pour l’authentification

C’est le deuxième tutoriel de la série de tutoriels qui montre comment ajouter la bibliothèque d’authentification Microsoft (MSAL) pour Android et macOS à votre application Android (Kotlin). MSAL permet aux applications Android d’authentifier les utilisateurs auprès de Microsoft Entra.

Dans ce didacticiel, vous allez :

  • Ajoutez des dépendances MSAL.
  • Ajouter une configuration

Prérequis

Ajoutez des dépendances MSAL

Pour ajouter des dépendances MSAL dans votre projet Android, procédez comme suit :

  1. Ouvrez votre projet dans Android Studio ou créez un projet.

  2. Ouvrez le build.gradle de votre application et ajoutez les dépendances suivantes :

    allprojects {
    repositories {
        //Needed for com.microsoft.device.display:display-mask library
        maven {
            url 'https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1'
            name 'Duo-SDK-Feed'
        }
        mavenCentral()
        google()
        }
    }
    //...
    
    dependencies { 
        implementation 'com.microsoft.identity.client:msal:5.+'
        //...
    }
    

    Dans la configuration de build.gradle, des référentiels sont définis pour les dépendances du projet. Elle inclut une URL du référentiel Maven pour la bibliothèque de com.microsoft.device.display:display-mask d’Azure DevOps. En outre, elle utilise des référentiels Maven Central et Google. La section des dépendances spécifie l’implémentation de la bibliothèque MSAL version 5 et potentiellement d’autres dépendances.

  3. Dans Android Studio, sélectionnez Fichier>Synchroniser le projet avec les fichiers Gradle.

Ajouter une configuration

Vous passez les identificateurs de tenant (locataire) nécessaires, par exemple l’ID d’application (client), au kit SDK MSAL via un paramètre de configuration JSON.

Suivez ces étapes pour créer un fichier config :

  1. Dans le volet de projet d’Android Studio, accédez à app\src\main\res.

  2. Cliquez avec le bouton droit sur res, puis sélectionnez Nouveau>Répertoire. Entrez raw en tant que nouveau nom de répertoire, puis sélectionnez OK.

  3. Dans app\src\main\res\raw, créez un fichier JSON appelé auth_config_ciam_auth.json.

  4. Dans le fichier auth_config_ciam_auth.json, ajoutez les configurations MSAL suivantes :

    {
      "client_id" : "Enter_the_Application_Id_Here",
      "authorization_user_agent" : "DEFAULT",
      "redirect_uri" : "Enter_the_Redirect_Uri_Here",
      "account_mode" : "SINGLE",
      "authorities" : [
        {
          "type": "CIAM",
          "authority_url": "https://Enter_the_Tenant_Subdomain_Here.ciamlogin.com/Enter_the_Tenant_Subdomain_Here.onmicrosoft.com/"
        }
      ]
    }
    

    Le fichier de configuration JSON spécifie différents paramètres pour une application Android. Il inclut l’ID client, l’agent utilisateur de l’autorisation, l’URI de redirection et le mode du compte. En outre, il définit une autorité pour l’authentification, en spécifiant le type et l’URL de l’autorité.

    Remplacez les espaces réservés suivants par les valeurs de tenant que vous avez obtenues à partir du centre d’administration Microsoft Entra :

    • 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.
  5. Ouvrez le fichier /app/src/main/AndroidManifest.xml.

  6. Dans AndroidManifest.xml, ajoutez la spécification de données suivante à un filtre d’intention :

    <data
        android:host="ENTER_YOUR_PROJECT_PACKAGE_NAME_HERE"
        android:path="/ENTER_YOUR_SIGNATURE_HASH_HERE"
        android:scheme="msauth" />
    

    Recherchez l’espace réservé :

    • ENTER_YOUR_PROJECT_PACKAGE_NAME_HERE et remplacez-la par le nom du package de projet Android.
    • ENTER_YOUR_SIGNATURE_HASH_HERE et remplacez-la par le hachage de signature que vous avez généré précédemment quand vous avez ajouté l’URL de redirection de la plateforme.

Utiliser un domaine d’URL personnalisé (facultatif)

Utilisez un domaine personnalisé pour personnaliser entièrement l’URL d’authentification. Du point de vue des utilisateurs, ces derniers restent sur votre domaine pendant le processus d’authentification, au lieu d’être redirigés vers le nom de domaine ciamlogin.com.

Procédez de la manière suivante pour utiliser un domaine personnalisé :

  1. Utilisez les étapes décrites dans Activer des domaines d’URL personnalisés pour les applications dans des locataires externes afin d’activer un domaine d’URL personnalisé pour votre locataire externe.

  2. Ouvrez le fichier auth_config_ciam_auth.json :

    1. Mettez à jour la valeur de la propriété authority_url sur https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Here. Remplacez Enter_the_Custom_Domain_Here par votre domaine d’URL personnalisé et Enter_the_Tenant_ID_Here par votre ID de locataire. Si vous ne disposez pas de votre ID de locataire, découvrez comment consulter les détails de votre locataire.
    2. Ajoutez une propriété knownAuthorities avec une valeur [Entrer_le_domaine_personnalisé_ici].

Une fois les modifications apportées à votre fichier auth_config_ciam_auth.json, si votre domaine d’URL personnalisé est login.contoso.com et que votre ID de locataire est aaaabbbb-0000-cccc-1111-dddd2222eeee, votre fichier doit ressembler à l’extrait de code suivant :

{
    "client_id" : "Enter_the_Application_Id_Here",
    "authorization_user_agent" : "DEFAULT",
    "redirect_uri" : "Enter_the_Redirect_Uri_Here",
    "account_mode" : "SINGLE",
    "authorities" : [
    {
        "type": "CIAM",
        "authority_url": "https://login.contoso.com/aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "knownAuthorities": ["login.contoso.com"]
    }
    ]
}

Créer une instance du Kit de développement logiciel (SDK) MSAL

Pour initialiser l’instance du Kit de développement logiciel (SDK) MSAL, utilisez le code suivant :

private suspend fun initClient(): ISingleAccountPublicClientApplication = withContext(Dispatchers.IO) {
    return@withContext PublicClientApplication.createSingleAccountPublicClientApplication(
        this@MainActivity,
        R.raw.auth_config_ciam_auth
    )
}

Le code initialise de façon asynchrone une application cliente publique avec un seul compte. Il utilise le fichier de configuration d’authentification fourni et s’exécute sur le répartiteur d’E/S.

Veillez à inclure les instructions import. Android Studio doit inclure automatiquement les instructions import.

Étapes suivantes

Tutoriel : Connecter des utilisateurs dans une application mobile Android (Kotlin)