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
- Android Studio
- Si vous ne l’avez pas encore fait, suivez les instructions de Tutoriel : Inscrire et configurer une application mobile Android (Kotlin) et inscrivez une application dans votre locataire externe.
- Un projet Android. Si vous n’avez pas de projet Android, créez-le.
Ajoutez des dépendances MSAL
Pour ajouter des dépendances MSAL dans votre projet Android, procédez comme suit :
Ouvrez votre projet dans Android Studio ou créez un projet.
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 decom.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.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 :
Dans le volet de projet d’Android Studio, accédez à app\src\main\res.
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.Dans app\src\main\res\raw, créez un fichier JSON appelé
auth_config_ciam_auth.json
.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 estcontoso.onmicrosoft.com
, utilisezcontoso
. Si vous ne connaissez pas votre sous-domaine de tenant, découvrez comment lire les détails de votre tenant.
Ouvrez le fichier /app/src/main/AndroidManifest.xml.
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é :
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.
Ouvrez le fichier auth_config_ciam_auth.json :
- Mettez à jour la valeur de la propriété
authority_url
sur https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Here. RemplacezEnter_the_Custom_Domain_Here
par votre domaine d’URL personnalisé etEnter_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. - Ajoutez une propriété
knownAuthorities
avec une valeur [Entrer_le_domaine_personnalisé_ici].
- Mettez à jour la valeur de la propriété
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)