> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-actions-triggers-prototype.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Trousse SDK Guardian pour Android

> Décrit comment installer, configurer et utiliser les options de la trousse SDK Gardien Auth0 pour Android.

La [trousse SDK Guardian pour Android](https://github.com/auth0/Guardian.Android) vous aide à créer des applications Android avec la fonctionnalité Guardian, offrant un accès sécurisé à l’authentification multifacteur (<Tooltip href="/docs/fr-ca/glossary?term=multifactor-authentication" tip="Authentification multifacteur (MFA)
Processus d’authentification de l’utilisateur qui utilise un facteur en plus du nom d’utilisateur et du mot de passe, tel qu’un code par SMS." cta="Voir le glossaire">MFA</Tooltip>) avec des notifications poussées. Avec cette boîte à outils, vous pouvez créer votre propre version personnalisée de l’application Guardian qui correspond à l’image de votre organization. Pour en savoir plus, consultez [Configurer les notifications poussées pour la MFA](https://auth0.com/docs/secure/multi-factor-authentication/multi-factor-authentication-factors/configure-push-notifications-for-mfa#configure-push-notifications-for-apple-using-apn-).

Une version d’API Android supérieure ou égale à 15 est requise pour utiliser la trousse SDK Guardian pour Android.

## Installer la trousse SDK Guardian pour Android

Guardian est disponible sur [Maven Central](http://search.maven.org/) et [JCenter](https://bintray.com/auth0/android/guardian).

1. Pour utiliser Guardian, ajoutez ces lignes à votre fichier de dépendances `build.gradle` :
   `implementation ’com.auth0.android:guardian:0.4.0’`
   Vous pouvez vérifier la version la plus récente sous l’onglet [Lancements](https://github.com/auth0/GuardianSDK.Android/releases) du répertoire, dans [Maven](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22com.auth0.android%22%20AND%20a%3A%22guardian%22), ou dans [JCenter](https://bintray.com/auth0/android/guardian).
2. Assurez-vous de synchroniser votre projet avec le fichier Gradle après avoir ajouté votre dépendance Gradle.

### Activer les notifications poussées de Guardian

1. Allez à [Dashboard > Sécurité > Authentification multifacteur > Notifications poussées via Gardien Auth0.](https://manage.auth0.com/#/security/mfa/guardian)
2. Basculez le commutateur vers le haut pour l’activer.

<Frame>
  <img src="https://mintcdn.com/docs-dev-actions-triggers-prototype/mxRp7IkiVukPESZw/docs/images/fr-ca/cdy7uua7fh8z/6PKSyH99GJ2CalJoG38sfZ/fbe7229dcc6f7d303a582520001b3dc1/Amazon_SNS.png?fit=max&auto=format&n=mxRp7IkiVukPESZw&q=85&s=c298ddc5ef51fc5005dd7fa189f834d1" alt="Auth0 Dashboard > Security > Multi-factor Auth > Guardian > Custom > Amazon SNS" data-og-width="884" width="884" data-og-height="543" height="543" data-path="docs/images/fr-ca/cdy7uua7fh8z/6PKSyH99GJ2CalJoG38sfZ/fbe7229dcc6f7d303a582520001b3dc1/Amazon_SNS.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/docs-dev-actions-triggers-prototype/mxRp7IkiVukPESZw/docs/images/fr-ca/cdy7uua7fh8z/6PKSyH99GJ2CalJoG38sfZ/fbe7229dcc6f7d303a582520001b3dc1/Amazon_SNS.png?w=280&fit=max&auto=format&n=mxRp7IkiVukPESZw&q=85&s=62a205704d60abbf3153bb648f3fe0fc 280w, https://mintcdn.com/docs-dev-actions-triggers-prototype/mxRp7IkiVukPESZw/docs/images/fr-ca/cdy7uua7fh8z/6PKSyH99GJ2CalJoG38sfZ/fbe7229dcc6f7d303a582520001b3dc1/Amazon_SNS.png?w=560&fit=max&auto=format&n=mxRp7IkiVukPESZw&q=85&s=2e61f9dd5a5a1bbf1936e05b0e0f44b1 560w, https://mintcdn.com/docs-dev-actions-triggers-prototype/mxRp7IkiVukPESZw/docs/images/fr-ca/cdy7uua7fh8z/6PKSyH99GJ2CalJoG38sfZ/fbe7229dcc6f7d303a582520001b3dc1/Amazon_SNS.png?w=840&fit=max&auto=format&n=mxRp7IkiVukPESZw&q=85&s=600379ad28ca08dfeb6af606d3bbbe7f 840w, https://mintcdn.com/docs-dev-actions-triggers-prototype/mxRp7IkiVukPESZw/docs/images/fr-ca/cdy7uua7fh8z/6PKSyH99GJ2CalJoG38sfZ/fbe7229dcc6f7d303a582520001b3dc1/Amazon_SNS.png?w=1100&fit=max&auto=format&n=mxRp7IkiVukPESZw&q=85&s=8b68df6c4f8af69bf12158b8a75a994f 1100w, https://mintcdn.com/docs-dev-actions-triggers-prototype/mxRp7IkiVukPESZw/docs/images/fr-ca/cdy7uua7fh8z/6PKSyH99GJ2CalJoG38sfZ/fbe7229dcc6f7d303a582520001b3dc1/Amazon_SNS.png?w=1650&fit=max&auto=format&n=mxRp7IkiVukPESZw&q=85&s=72673d62973d0ac3f17688a99801edee 1650w, https://mintcdn.com/docs-dev-actions-triggers-prototype/mxRp7IkiVukPESZw/docs/images/fr-ca/cdy7uua7fh8z/6PKSyH99GJ2CalJoG38sfZ/fbe7229dcc6f7d303a582520001b3dc1/Amazon_SNS.png?w=2500&fit=max&auto=format&n=mxRp7IkiVukPESZw&q=85&s=83b3c88c734ca277e5980c8f99e58f74 2500w" />
</Frame>

3. [Configurer les notifications poussées](https://auth0.com/docs/secure/multi-factor-authentication/multi-factor-authentication-factors/configure-push-notifications-for-mfa#configure-push-notifications-for-android-using-fcm).

## Utiliser la trousse SDK

Guardian est la portion centrale de la trousse SDK. Vous devrez créer une instance de cette classe pour l’URL de votre locataire spécifique.

```java lines theme={null}
Uri url = Uri.parse("https://<tenant>.<region>.auth0.com");

Guardian guardian = new Guardian.Builder()
    .url(url)
    .build();
```

ou

```java lines theme={null}
String domain = "<tenant>.<region>.auth0.com";

Guardian guardian = new Guardian.Builder()
    .domain(domain)
    .build();
```

### Inscription

Le lien entre le deuxième facteur (une instance de votre application sur un appareil) et un compte Auth0 est appelé **inscription**.

Vous pouvez créer une inscription à l’aide de la fonction `Guardian.enroll`, mais vous devrez d’abord créer une nouvelle paire de clés RSA pour celle-ci. La clé privée sera utilisée pour signer les demandes d’autorisation ou de rejet d’une connexion. La clé publique sera envoyée pendant le processus d’inscription afin que le serveur puisse vérifier la signature de la demande par la suite.

```java lines theme={null}
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(2048); // you MUST use at least 2048 bit keys
KeyPair keyPair = keyPairGenerator.generateKeyPair();
```

Ensuite, obtenez les informations d’inscription en balayant le code QR de Guardian et utilisez-le pour inscrire le compte :

```java lines theme={null}
Uri enrollmentUriFromQr = ...; // the URI obtained from a Guardian QR code

CurrentDevice device = new CurrentDevice(context, "fcmToken", "deviceName");

Enrollment enrollment = guardian
    .enroll(enrollmentUriFromQr, device, keyPair)
    .execute();
```

Vous pouvez également exécuter la requête dans un thread en arrière-plan :

```java lines theme={null}
guardian
    .enroll(enrollmentUriFromQr, device, keyPair)
    .start(new Callback<Enrollment> {
        @Override
        void onSuccess(Enrollment enrollment) {
            // we have the enrollment data
        }

        @Override
        void onFailure(Throwable exception) {
            // something failed
        }
    });
```

Vous devez fournir les données suivantes :

| Variable     | Description                                                                                                                                                                                                              |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `deviceName` | Nom de l’inscription présentée à l’utilisateur lorsqu’un deuxième facteur d’authentification est requis.                                                                                                                 |
| `fcmToken`   | Jeton pour pour le service de notification poussée FCM (Firebase Cloud Messaging). Consultez [Exemple de registre](https://firebase.google.com/docs/cloud-messaging/android/client#sample-register) pour en savoir plus. |

### Désinscription

Pour désactiver la MFA, vous pouvez supprimer l’inscription :

```java lines theme={null}
guardian
    .delete(enrollment)
    .execute(); // or start(new Callback<> ...)
```

### Autoriser les demandes de connexion

Une fois l’inscription en place, vous recevrez une notification poussée FCM chaque fois que l’utilisateur aura besoin d’une authentification multifacteur (MFA).

Guardian procure une méthode pour analyser les données `Map (Carte) <String, String >` dans le [RemoteMessage](https://firebase.google.com/docs/reference/android/com/google/firebase/messaging/RemoteMessage) reçu du FCM et retourner une instance de `Notification` prête à être utilisée.

```javascript lines theme={null}
// at the FCM listener you receive a RemoteMessage
@Override
public void onMessageReceived(RemoteMessage message) {
    Notification notification = Guardian.parseNotification(message.getData());
    if (notification != null) {
        // you received a Guardian notification, handle it
        handleGuardianNotification(notification);
        return;
    }

    /* handle other push notifications you might be using ... */
}
```

Une fois que vous disposez de l’instance de notification, vous pouvez utiliser la méthode `Allow (Autoriser)` pour approuver la demande d’authentification. Vous aurez également besoin de l’inscription que vous avez obtenue précédemment. S’il y a plusieurs inscriptions, assurez-vous d’utiliser celle qui a le même `id` que la notification (la propriété `enrollmentId`).

```java lines theme={null}
guardian
    .allow(notification, enrollment)
    .execute(); // or start(new Callback<> ...)
```

### Rejeter les demandes de connexion

Pour refuser une demande d’authentification, utilisez plutôt  `reject (rejeter)`. Vous pouvez également ajouter un motif facultatif de rejet, qui sera disponible dans les journaux de Guardian.

```java lines theme={null}
guardian
    .reject(notification, enrollment) // or reject(notification, enrollment, reason)
    .execute(); // or start(new Callback<> ...)
```

### Configurer l’inscription du mot de passe à usage unique seulement sur mobile

Vous pouvez activer les mots de passe à usage unique comme facteur MFA à l’aide du <Tooltip href="/docs/fr-ca/glossary?term=auth0-dashboard" tip="Auth0 Dashboard
Principal produit d’Auth0 pour configurer vos services." cta="Voir le glossaire">Auth0 Dashboard</Tooltip> ou de <Tooltip href="/docs/fr-ca/glossary?term=management-api" tip="Management API
Un produit permettant aux clients d’effectuer des tâches administratives." cta="Voir le glossaire">Management API</Tooltip>. Cette option ne nécessite pas de code QR et permet aux utilisateurs de s’inscrire manuellement.

Pour inviter un utilisateur à s’inscrire, naviguez vers [Auth0 Dashboard > Gestion d’utilisateur > Utilisateurs](https://manage.auth0.com/#/users) et sélectionnez un utilisateur. Ensuite, accédez à son onglet Détails et utilisez la section Authentification multifacteur (MFA) pour envoyer une invitation d’inscription.

#### Connecter une ressource

Vous pouvez connecter une ressource à partir du Auth0 Dashboard ou de la trousse SDK Guardian.

##### Utilisation de Auth0 Dashboard

1. Accédez à l’invite de connexion Auth0 et copiez le code fourni ou une clé codée en base32 similaire obtenue à partir d’une autre source.

   <Frame>
     <img src="https://mintcdn.com/docs-dev-actions-triggers-prototype/adoBdpzp06Dk41-J/docs/images/fr-ca/cdy7uua7fh8z/1yoqiIuERVTwCU8yfx6IM8/6fabccc27455fbc5251928812e12475c/OTP_Challenge_2_-_French.png?fit=max&auto=format&n=adoBdpzp06Dk41-J&q=85&s=5e6e5020c79bdbd8b2df14dd608401a6" alt="An example login prompt displaying a one-time code" width="492" height="680" data-path="docs/images/fr-ca/cdy7uua7fh8z/1yoqiIuERVTwCU8yfx6IM8/6fabccc27455fbc5251928812e12475c/OTP_Challenge_2_-_French.png" />
   </Frame>

2. Après avoir obtenu votre code, ajoutez-le à la trousse SDK Guardian :

**Java**

`public String copiedCode = "{copiedCode}";`

**Kotlin**

`val copiedCode: String = "{copiedCode}"`

##### Installer la trousse SDK Guardian

Premièrement, ajoutez la classe `LoginCodeGenerator`  à votre projet. Ensuite, utilisez `getCode (String copiedCode) pour` générer un code à usage unique à votre application

**Java**

```java lines expandable theme={null}
public class LoginCodeGenerator {

   private static final int TOTP_LENGTH = 6;

   private static final int TOTP_DURATION = 30;

   private static final String TOTP_ALGORITHM = "SHA1";

   public String getCode(String copedCode) {

       byte[] key = new byte[0];

       try {

           key = Base32.decode(copedCode);

       } catch (Base32.DecodingException ex) {

//            handle exception

       }

       TOTP totp = new TOTP(TOTP_ALGORITHM, key, TOTP_LENGTH, TOTP_DURATION);

       return totp.generate();

   }

}
```

**Kotlin**

```kotlin lines expandable theme={null}
class LoginCodeGenerator {

   fun getCode(copiedCode: String): String {

       var key: ByteArray? = ByteArray(0)

       try {

           key = Base32.decode(copiedCode)

       } catch (ex: Base32.DecodingException) {

//            handle exception

       }

       val totp = TOTP(TOTP_ALGORITHM, key, TOTP_LENGTH, TOTP_DURATION)

       return totp.generate()

   }

   companion object {

       private const val TOTP_LENGTH = 6

       private const val TOTP_DURATION = 30

       private const val TOTP_ALGORITHM = "SHA1"

   }

}
```

#### Saisir le code à usage unique

Saisissez le mot de passe à usage unique généré par `getCode()` dans l’invite de connexion Auth0.

<Frame>
  <img src="https://mintcdn.com/docs-dev-actions-triggers-prototype/adoBdpzp06Dk41-J/docs/images/fr-ca/cdy7uua7fh8z/1yoqiIuERVTwCU8yfx6IM8/6fabccc27455fbc5251928812e12475c/OTP_Challenge_2_-_French.png?fit=max&auto=format&n=adoBdpzp06Dk41-J&q=85&s=5e6e5020c79bdbd8b2df14dd608401a6" alt="An example login prompt displaying a one-time code" width="492" height="680" data-path="docs/images/fr-ca/cdy7uua7fh8z/1yoqiIuERVTwCU8yfx6IM8/6fabccc27455fbc5251928812e12475c/OTP_Challenge_2_-_French.png" />
</Frame>

Après avoir sélectionné Continue (Continuer), un message s’affiche indiquant que votre application a été ajoutée comme facteur d’authentification pour votre utilisateur.

#### Se connecter avec votre application

Une fois le facteur inscrit, votre utilisateur peut se connecter à l’aide de votre application. Tout d’abord, choisissez l’application Guardian comme méthode d’authentification.

<Frame>
  <img src="https://mintcdn.com/docs-dev-actions-triggers-prototype/adoBdpzp06Dk41-J/docs/images/fr-ca/cdy7uua7fh8z/1k7IsU9kfP5mrXU2jfGHuT/452742661982cf772868f02040dd682b/MFA_-_Begin_Enrollment.png?fit=max&auto=format&n=adoBdpzp06Dk41-J&q=85&s=138044e677bde51a88e55df2caf43cf2" alt="The authentication method selection screen" width="396" height="819" data-path="docs/images/fr-ca/cdy7uua7fh8z/1k7IsU9kfP5mrXU2jfGHuT/452742661982cf772868f02040dd682b/MFA_-_Begin_Enrollment.png" />
</Frame>

Pour générer le code à usage unique, appelez `getCode(copiedCode: String)`  à l’aide du code copié de l’invite de connexion Auth0.

Ensuite, saisissez le code à usage unique dans l’invite de connexion pour vérifier votre identité.

<Frame>
  <img src="https://mintcdn.com/docs-dev-actions-triggers-prototype/gqbf-XGz7-Z2BrZ6/docs/images/fr-ca/cdy7uua7fh8z/S6uTieLjtuNUrQRMh8uch/143543634427803da8af2f0b7fb4c88d/OTP_Challenge_-_French.png?fit=max&auto=format&n=gqbf-XGz7-Z2BrZ6&q=85&s=324bfb001ae9dce9176360bd021531c4" alt="The Verify Your Identity screen prompting the user for a one-time code" width="494" height="672" data-path="docs/images/fr-ca/cdy7uua7fh8z/S6uTieLjtuNUrQRMh8uch/143543634427803da8af2f0b7fb4c88d/OTP_Challenge_-_French.png" />
</Frame>

## En savoir plus

* [Configuration des notifications poussées pour MFA](/docs/fr-ca/secure/multi-factor-authentication/multi-factor-authentication-factors/configure-push-notifications-for-mfa)
