Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Locataires d’employés
Locataires externes (En savoir plus)
Dans ce tutoriel, vous allez ajouter microsoft Authentication Library (MSAL) pour Android à votre application Android. MSAL permet aux applications Android d’authentifier les utilisateurs auprès de Microsoft Entra.
Dans ce tutoriel, vous allez :
- Ajouter une dépendance MSAL
- Ajouter une configuration
- Créer une instance du Kit de développement logiciel (SDK) MSAL
Conditions préalables
- Un locataire d’employés. Vous pouvez utiliser votre répertoire par défaut ou configurer un nouveau locataire.
- 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 d’annuaire (locataire)
- Un projet Android. Si vous n’avez pas de projet Android, créez-le.
Ajouter un URI de redirection
Vous devez configurer des URI de redirection spécifiques dans votre inscription d’application pour garantir la compatibilité avec l’exemple de code téléchargé. Ces URI sont essentiels pour rediriger les utilisateurs vers l’application une fois qu’ils se connectent correctement.
Sous Gérer, sélectionnez Authentification>Ajouter une plateforme>Android.
Entrez le nom du package de votre projet en fonction du type d’exemple que vous avez téléchargé ci-dessus.
- Exemple Java :
com.azuresamples.msalandroidapp
- Exemple Kotlin :
com.azuresamples.msalandroidkotlinapp
- Exemple Java :
Dans la section Hachage de signature de la page Configurer votre application Android, sélectionnez Création d’un hachage de signature de développement, puis copiez la commande KeyTool vers votre ligne de commande.
- Keytool.exe est installé en même temps que le kit de développement Java (JDK). Vous devez également installer l’outil OpenSSL pour exécuter la commande KeyTool. Pour plus d’informations, consultez la documentation Android sur la génération d’une clé.
Entrez l'empreinte de la signature générée par KeyTool.
Sélectionnez Configurer et enregistrez la Configuration MSAL qui apparaît dans la page Configuration Android pour pouvoir l’entrer plus tard quand vous devrez configurer votre application.
Cliquez sur Terminé.
Ajouter une dépendance MSAL et des bibliothèques pertinentes à votre projet
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
build.gradle
configuration, les référentiels sont définis pour les dépendances de 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, il utilise les référentiels Maven Central et Google. La section dépendances spécifie l’implémentation de MSAL version 5 et potentiellement d’autres dépendances.Dans Android Studio, sélectionnez Projet>de synchronisation de fichiers avec Gradle Files.
Ajouter une configuration
Vous transmettez les identificateurs de locataire requis, tels que l’ID d’application (client), au SDK MSAL via un paramètre de configuration JSON.
Procédez comme suit pour créer un fichier de configuration :
Dans le volet de projet d’Android Studio, accédez à app\src\main\res.
Cliquez avec le bouton droit sur res, puis choisissez 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_single_account.json
, puis collez la configuration MSAL que vous avez enregistrée.Sous l’URI de redirection, collez :
"account_mode" : "SINGLE",
Votre fichier de configuration doit ressembler à l’exemple suivant :
{ "client_id": "00001111-aaaa-bbbb-3333-cccc4444", "authorization_user_agent": "WEBVIEW", "redirect_uri": "msauth://com.azuresamples.msalandroidapp/00001111%cccc4444%3D", "broker_redirect_uri_registered": true, "account_mode": "SINGLE", "authorities": [ { "type": "AAD", "audience": { "type": "AzureADandPersonalMicrosoftAccount", "tenant_id": "common" } } ] }
Comme ce tutoriel montre uniquement comment configurer une application en mode compte unique, consultez Le mode compte unique ou multiple et la configuration de votre application pour plus d’informations
Nous vous recommandons d’utiliser « WEBVIEW ». Si vous souhaitez configurer « authorization_user_agent » comme « BROWSER » dans votre application, vous devez effectuer les mises à jour suivantes. a) Mettez à jour auth_config_single_account.json avec "authorization_user_agent": "Browser". b) Mettez à jour AndroidManifest.xml. Dans l’application, accédez à app>src>main>AndroidManifest.xml, ajoutez l’activité
BrowserTabActivity
en tant qu’enfant de l’élément<application>
. Cette entrée permet à Microsoft Entra ID de rappeler votre application une fois l’authentification terminée :<!--Intent filter to capture System Browser or Authenticator calling back to our app after sign-in--> <activity android:name="com.microsoft.identity.client.BrowserTabActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="msauth" android:host="Enter_the_Package_Name" android:path="/Enter_the_Signature_Hash" /> </intent-filter> </activity>
- Utilisez le Nom du package pour remplacer la valeur
android:host=.
. Il doit ressembler àcom.azuresamples.msalandroidapp
. - Utilisez le Hachage de signature pour remplacer la valeur
android:path=
. Assurez-vous qu'il y a un début/
au début de votre hachage de signature. Il doit ressembler à/aB1cD2eF3gH4+iJ5kL6-mN7oP8q=
.
Vous pouvez également trouver ces valeurs dans le panneau Authentification de l’inscription de votre application.
- Utilisez le Nom du package pour remplacer la valeur
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 :
PublicClientApplication.createSingleAccountPublicClientApplication(
getContext(),
R.raw.auth_config_single_account,
new IPublicClientApplication.ISingleAccountApplicationCreatedListener() {
@Override
public void onCreated(ISingleAccountPublicClientApplication application) {
// Initialize the single account application instance
mSingleAccountApp = application;
loadAccount();
}
@Override
public void onError(MsalException exception) {
// Handle any errors that occur during initialization
displayError(exception);
}
}
);
Ce code crée une application cliente publique de compte unique à l’aide du fichier de configuration auth_config_single_account.json. Une fois l'application créée avec succès, elle affecte l'instance à mSingleAccountApp
et appelle la méthode loadAccount()
. Si une erreur se produit pendant la création, elle gère l’erreur en appelant la méthode displayError(exception).
Veillez à inclure les instructions d'importation. Android Studio devrait inclure automatiquement les instructions d'importation pour vous.