Aller au contenu principal

Appareils de confiance MFA

Les appareils de confiance MFA permettent aux utilisateurs d’éviter les demandes répétées de MFA sur un navigateur qu’ils considèrent comme fiable. Après une vérification ou une configuration MFA éligible, les utilisateurs peuvent choisir de faire confiance au navigateur sur une page distincte Faire confiance à cet appareil à la fin de la connexion ou de l’inscription. Logto stocke alors un justificatif à durée limitée dans un cookie de première partie. Lors d’une connexion ultérieure, un justificatif valide peut satisfaire l’étape de vérification MFA sans interaction de l’utilisateur.

Un appareil de confiance n’est pas un nouveau facteur MFA et ne modifie pas le moment où Logto exige le MFA. Il ne peut satisfaire que l’étape MFA dans un flux de connexion. Il ne peut pas satisfaire la vérification d’identité, la vérification récente, la récupération de compte, la gestion des facteurs MFA ou toute autre opération sensible sur le compte.

Fonctionnement des appareils de confiance

Lorsqu’une connexion atteint l’étape de vérification MFA, Logto :

  1. Évalue la politique MFA existante pour décider si le MFA est requis.
  2. Vérifie si les appareils de confiance sont activés pour le locataire et autorisés par chaque organisation à laquelle l’utilisateur appartient.
  3. Valide le cookie du navigateur par rapport à un enregistrement actif côté serveur pour l’utilisateur identifié.
  4. Termine automatiquement le MFA lorsque le justificatif est valide. Sinon, Logto efface un justificatif invalide et poursuit le flux MFA classique.

Faire confiance à un appareil lors de la connexion ou de l’inscription

L’expérience de connexion intégrée présente Faire confiance à cet appareil comme une page distincte à la fin d’un flux de connexion ou d’inscription éligible, après la complétion du profil requise et les étapes MFA. Faire confiance au navigateur est un choix explicite sur cette page, distinct de la vérification ou de la configuration MFA.

La page n’apparaît que lorsque les appareils de confiance sont activés pour le locataire, autorisés par chaque organisation à laquelle l’utilisateur appartient, et que l’interaction actuelle contient une preuve MFA éligible :

  • Vérification MFA réussie avec une application d’authentification OTP activée, une clé d’accès (WebAuthn), un code de vérification par e-mail ou un code de vérification par SMS.
  • Liaison réussie d’une application d’authentification ou d’une clé d’accès lors de la configuration MFA, y compris lors de l’inscription.

La page n’est pas affichée lors de la réinitialisation du mot de passe ou lorsque l’interaction ne comporte pas de preuve MFA éligible. La vérification par code de secours ou un justificatif d’appareil de confiance existant seul ne sont pas suffisants, donc la page n’est pas affichée à chaque connexion ou inscription. Un choix précédent Ignorer peut également masquer la page, comme décrit ci-dessous.

Sur la page, les utilisateurs peuvent choisir :

  • Faire confiance à cet appareil pendant N jours : opter pour la durée de confiance configurée. Logto crée l’enregistrement d’appareil de confiance et le justificatif cookie uniquement après le succès complet de l’interaction.
  • Ignorer : continuer sans créer d’appareil de confiance. Ignorer cette page ne saute aucune vérification ou configuration MFA requise.

Lorsqu’un utilisateur sélectionne Ignorer, Logto stocke un cookie d’exclusion distinct, limité à ce locataire et à cet utilisateur dans le navigateur actuel. Sa durée de vie correspond à la durée de confiance configurée au moment de l’ignorance. Tant que le navigateur conserve ce cookie, les connexions ultérieures ne réaffichent pas la page. Après expiration ou suppression, un flux éligible ultérieur peut réafficher la page. Le cookie d’exclusion ne confère pas la confiance à l’appareil et ne satisfait pas le MFA.

Faire confiance à l’appareil après avoir sélectionné Ignorer:

Si un utilisateur sélectionne Ignorer et souhaite ensuite faire confiance au navigateur actuel, la méthode recommandée consiste à supprimer le cookie d’exclusion correspondant pour le domaine Logto via les paramètres du navigateur ou les outils de développement. Son nom commence par __Host-logto-device-trust-opt-out-.

Alternativement, supprimez tous les cookies pour le domaine Logto.

Après l’une ou l’autre option, reconnectez-vous, complétez la vérification ou la configuration MFA éligible, puis choisissez Faire confiance à cet appareil pendant N jours lorsque la page apparaît.

La création d’un appareil de confiance et les mises à jour de métadonnées après connexion sont faites au mieux, donc un échec n’entraîne pas l’échec d’une interaction d’authentification par ailleurs réussie.

Configurer la politique des appareils de confiance

Politique globale

Accédez à Console > Authentification multi-facteurs (MFA) et configurez Appareils de confiance :

  • Activez ou désactivez les appareils de confiance pour le locataire. La politique est désactivée par défaut.
  • Définissez une durée de confiance entière de 1 à 365 jours. La valeur par défaut est 30 jours.

La durée est fixée lors de la création d’un appareil de confiance. L’utilisation de l’appareil n’étend pas sa date d’expiration, et la modification de la durée n’affecte que les appareils créés par la suite.

La désactivation de la politique globale empêche les appareils de confiance existants de satisfaire le MFA, mais ne les supprime pas. Si vous réactivez la politique, les enregistrements non expirés ou non supprimés peuvent redevenir utilisables.

Restrictions au niveau de l’organisation

Une organisation peut autoriser ou interdire les appareils de confiance pour ses membres. Ce paramètre ne peut que restreindre la politique au niveau du locataire :

  • Une organisation ne peut pas activer les appareils de confiance si la politique globale est désactivée.
  • Si une organisation à laquelle l’utilisateur appartient interdit les appareils de confiance, le justificatif d’appareil de confiance de l’utilisateur ne peut pas satisfaire le MFA, que cette organisation exige le MFA ou non.
  • Les organisations n’ont pas de durée de confiance distincte. La durée globale s’applique.

Interdire les appareils de confiance pour une organisation suspend leur utilisation pour les membres concernés. Cela ne supprime pas leurs enregistrements et n’empêche pas les utilisateurs ou administrateurs de les lister ou de les supprimer.

La réutilisation d’un appareil de confiance nécessite que le contexte du navigateur conserve et renvoie un cookie de première partie persistant pour le même point de terminaison Logto. Cela représente un profil de navigateur, pas un appareil physique.

Les WebViews, navigateurs système, onglets personnalisés, modes privés, navigateurs sans cookies et autres contextes éphémères ne peuvent utiliser les appareils de confiance que si leur stockage de cookies conserve le justificatif. Si le cookie n’est pas disponible lors d’une connexion ultérieure, Logto poursuit le flux MFA classique au lieu d’échouer l’authentification. Différents navigateurs, profils de navigateur, domaines Logto, locataires et utilisateurs ne partagent pas les justificatifs d’appareils de confiance.

remarque:

Logto n’utilise pas l’empreinte du navigateur et ne détecte pas à l’avance si un client conservera le cookie. Les applications natives et les flux de connexion personnalisés doivent considérer la création d’appareils de confiance comme une meilleure tentative et maintenir le flux MFA classique disponible.

Gérer les appareils de confiance

Seuls les enregistrements actifs dont expiresAt est dans le futur sont listés. Les noms des appareils sont dérivés du dernier agent utilisateur, tandis que le pays et la ville sont des métadonnées approximatives issues du dernier contexte de requête disponible. Les adresses IP brutes ne sont pas affichées ni retournées par les API publiques.

Gestion par l’administrateur

Dans Console > Gestion des utilisateurs, ouvrez un utilisateur pour voir et supprimer ses appareils de confiance. La suppression d’un appareil de confiance n’affecte que les connexions futures ; elle ne termine pas les sessions actives de l’utilisateur.

Vous pouvez également utiliser la Management API :

  • GET /api/users/{userId}/trusted-devices liste tous les appareils de confiance actifs pour un utilisateur.
  • DELETE /api/users/{userId}/trusted-devices/{trustedDeviceId} supprime un appareil de confiance appartenant à l’utilisateur.

La réponse de la liste inclut id, userAgent, country, city, createdAt, lastUsedAt et expiresAt.

curl https://[tenant-id].logto.app/api/users/[user-id]/trusted-devices \
-H "Authorization: Bearer [management-api-access-token]"

curl -X DELETE \
https://[tenant-id].logto.app/api/users/[user-id]/trusted-devices/[trusted-device-id] \
-H "Authorization: Bearer [management-api-access-token]"

Découvrez comment s’authentifier avec la Management API.

Gestion en libre-service via le Centre de compte

Dans Console > Connexion & compte > Centre de compte, configurez le champ Appareils de confiance :

  • Désactivé : les utilisateurs ne peuvent pas lister ou supprimer les appareils de confiance.
  • Lecture seule : les utilisateurs peuvent lister les appareils de confiance mais ne peuvent pas les supprimer.
  • Modification : les utilisateurs peuvent lister et supprimer les appareils de confiance.

Le Centre de compte préconstruit affiche les appareils de confiance actifs sur sa page de sécurité et marque le navigateur actuel lorsque son justificatif cookie complet est valide. La suppression du navigateur actuel efface son cookie d’appareil de confiance mais maintient la session de connexion active. La suppression de l’enregistrement d’un autre navigateur ne peut pas effacer immédiatement le cookie de ce navigateur ; le cookie obsolète est rejeté et effacé lors de sa prochaine présentation.

Pour un centre de compte personnalisé, demandez la portée urn:logto:scope:trusted_devices et utilisez l’Account API avec un enregistrement de vérification d’identité valide :

  • GET /api/my-account/trusted-devices liste les appareils de confiance actifs de l’utilisateur connecté et ajoute isCurrent à chaque élément.
  • DELETE /api/my-account/trusted-devices/{trustedDeviceId} supprime un appareil de confiance appartenant à l’utilisateur connecté. La suppression n’est disponible que pour les applications de première partie.
curl https://[tenant-id].logto.app/api/my-account/trusted-devices \
-H "Authorization: Bearer [account-api-access-token]" \
-H "logto-verification-id: [verification-record-id]"

curl -X DELETE \
https://[tenant-id].logto.app/api/my-account/trusted-devices/[trusted-device-id] \
-H "Authorization: Bearer [account-api-access-token]" \
-H "logto-verification-id: [verification-record-id]"

Consultez la référence Account API et le guide de vérification de sécurité pour le flux d’autorisation et de vérification.

Modèle de sécurité

Le justificatif d’appareil de confiance est un justificatif opaque au porteur composé de deux parties : un identifiant d’enregistrement et un secret aléatoire cryptographiquement de 32 octets.

  • En production, Logto le stocke dans un cookie réservé à l’hôte avec le préfixe __Host-, les attributs HttpOnly, Secure, SameSite=Lax et Path=/. Le JavaScript applicatif ne peut pas le lire.
  • Le serveur ne stocke que le hachage SHA-256 du secret et compare les justificatifs avec une vérification à durée constante.
  • Chaque recherche de justificatif est limitée au locataire et à l’utilisateur et nécessite que expiresAt soit dans le futur.
  • L’expiration est fixée à la création. Un nettoyage opportuniste peut supprimer les lignes expirées ultérieurement, mais le moment du nettoyage n’est jamais utilisé comme contrôle de sécurité.
  • La suppression explicite supprime immédiatement l’enregistrement côté serveur. Un cookie copié ou obsolète ne peut pas passer la validation après la suppression de l’enregistrement.

Les secrets et hachages des justificatifs ne sont jamais exposés via l’interface utilisateur, les API publiques, les journaux d’audit ou les webhooks. L’identifiant public de l’appareil n’est pas un identifiant d’appareil physique et n’est pas suffisant pour s’authentifier. Comme le cookie est un justificatif au porteur, copier le cookie complet peut rejouer la confiance pour le même locataire et utilisateur jusqu’à expiration ou suppression de l’enregistrement ; les appareils de confiance ne fournissent pas d’attestation matérielle de l’appareil.

Journaux d’audit et webhooks

Les journaux d’audit spécifiques aux appareils de confiance incluent :

  • TrustedDevice.Created : un enregistrement d’appareil de confiance et un justificatif cookie ont été créés après une interaction réussie.
  • TrustedDevice.Used : un justificatif d’appareil de confiance a satisfait le MFA et la connexion s’est terminée avec succès.

Vous pouvez vous abonner à ces webhooks de mutation de données :

  • TrustedDevice.Created : un enregistrement d’appareil de confiance a été créé.
  • TrustedDevice.Deleted : un utilisateur ou un administrateur a supprimé un enregistrement d’appareil de confiance.

Les données d’événement contiennent l’id de l’appareil de confiance, le userId et expiresAt. Elles n’incluent pas le justificatif cookie, le hachage du secret ni l’IP de la requête. Il n’y a pas de webhook pour l’utilisation réussie afin d’éviter un volume d’événements élevé, et les changements de politique n’émettent pas d’événements de cycle de vie des appareils de confiance car ils ne modifient pas les enregistrements.

L’expiration naturelle n’a pas de webhook TrustedDevice.Expired. L’expiration se produit avec le temps qui passe plutôt qu’avec une mutation d’application, et le nettoyage physique peut avoir lieu plus tard. Utilisez la valeur expiresAt de TrustedDevice.Created si votre intégration doit déduire la date d’expiration attendue.

L’expiration naturelle ne crée pas non plus de journal d’audit spécifique aux appareils de confiance.

Voir types d’événements de journal d’audit et événements webhook pour les catalogues d’événements.

Notes sur le cycle de vie

  • Une déconnexion normale ne supprime pas les appareils de confiance.
  • L’ajout, la suppression ou la réinitialisation des facteurs MFA ne supprime pas les appareils de confiance.
  • La suppression d’un appareil de confiance ne termine pas les sessions actives.
  • La suppression de l’utilisateur supprime ses enregistrements d’appareils de confiance via le cycle de vie des données utilisateur.
  • Il n’y a pas de limite de nombre d’appareils de confiance ni d’éviction automatique.