Validation de l'adresse e-mail

L'API de validation de l'adresse e-mail est une proposition qui permet au navigateur de communiquer directement avec le fournisseur de messagerie pour vérifier que l'utilisateur est bien le propriétaire de l'adresse e-mail. Les utilisateurs saisissent leur adresse e-mail, envoient le formulaire, et le site valide le jeton de validation d'e-mail signé du navigateur auprès du fournisseur sans envoyer d'e-mail ni interrompre le flux de l'utilisateur.

Lorsque les sites collectent une adresse e-mail lors de l'inscription, de la connexion, du paiement, de l'abonnement à une newsletter ou de la récupération de compte, ils confirment généralement que la personne qui envoie le formulaire contrôle l'adresse. Les méthodes de validation existantes obligent les utilisateurs à quitter votre site, à changer d'application pour consulter leur boîte de réception, à copier un code OTP ou à cliquer sur un lien de validation. Cette interruption augmente le taux d'abandon des utilisateurs humains et des agents automatisés. Les utilisateurs rencontrent souvent des problèmes avec les méthodes de validation existantes, comme des e-mails retardés, des liens expirés ou des codes non reconnus.

Démonstration de l'invite utilisateur pour la validation de l'adresse e-mail
Démonstration de l'invite utilisateur de validation de l'adresse e-mail

La validation de l'adresse e-mail agit comme une amélioration progressive de votre flux existant :

  • Aucune interruption : la validation s'effectue en arrière-plan pendant que l'utilisateur remplit le formulaire.
  • Aucune détection de fonctionnalité requise : les sites ajoutent une entrée d'e-mail et une entrée de jeton masquée à leurs formulaires. Si le navigateur ou le fournisseur ne sont pas compatibles avec la validation de l'adresse e-mail, ou si la validation échoue, le site revient à son flux de confirmation d'e-mail par défaut.
  • Réduction des risques d'hameçonnage : aucun code à copier ni possibilité d'envoyer l'utilisateur vers un faux site.

Vous pouvez tester le flux dans la démonstration :

Points à prendre en compte pour l'essai Origin Trial

Les essais Origin Trial sont des expériences visant à recueillir des commentaires. Votre contribution est donc essentielle si vous participez en tant que partie utilisatrice ou fournisseur d'identité. Pour signaler des problèmes, utilisez les dépôts GitHub suivants :

Si vous rencontrez des bugs dans l'implémentation Chrome, signalez un problème dans le composant suivant :

Vous contrôlez la fonctionnalité de l'essai Origin Trial par réponse en incluant le jeton de l'essai Origin Trial. Cela vous permet de limiter la fonctionnalité à un segment spécifique de vos utilisateurs, par exemple une population de test A/B. Vous pouvez également activer la fonctionnalité pour un groupe d'utilisateurs bêta ou d'aperçu anticipé. Dans ce cas, vérifiez l'adresse e-mail fournie avant d'émettre ou de valider le jeton.

Les essais Origin Trial sont également soumis à des limites de trafic afin de minimiser le nombre de sites qui s'appuient sur la fonctionnalité avant son lancement. L'API de l'émetteur est en cours de développement. Vous devez vous attendre à des modifications non rétrocompatibles ainsi qu'à des mises à jour de l'expérience utilisateur Chrome.

Pour en savoir plus sur les développements, consultez le blog et la evp-announce@chromium.org liste de diffusion.

Flux de validation de l'adresse e-mail

Les sections suivantes expliquent les termes clés et les étapes du protocole lors de l'utilisation de l'API de validation de l'adresse e-mail.

Termes clés

Voici les termes clés de l'API Email Verification :

  • Validateur : site qui collecte l'adresse e-mail et souhaite la valider. Le validateur est également appelé "partie utilisatrice".
  • Fournisseur de messagerie : service fournissant l'adresse e-mail de l'utilisateur, par exemple gmail.com.
  • Émetteur : service qui gère le compte de l'e-mail de l'utilisateur, par exemple accounts.google.com. L'émetteur est également appelé "fournisseur d'identité".

Dans certains cas, le fournisseur de messagerie et l'émetteur opèrent à partir du même domaine. Toutefois, il est important de les distinguer, car l'API Email Verification utilise la session active dans le navigateur avec le fournisseur d'identité comme méthode de validation. Par exemple, pour valider example@gmail.com, l'utilisateur doit être connecté à google.com avec ce compte dans le même navigateur.

Flux de protocole

Architecture du flux de validation de l'adresse e-mail
Architecture du flux de validation de l'adresse e-mail
  1. Présentation du formulaire : la partie utilisatrice diffuse un formulaire HTML contenant un <input type="email"> et une entrée masquée marquée avec autocomplete="email-verification-token" et un nonce unique par instance.
  2. Saisie de l'e-mail : lorsque l'utilisateur saisit une adresse e-mail (en sélectionnant une suggestion de saisie automatique, en saisissant ou en collant du texte, puis en quittant le champ (blur))), le navigateur déclenche la validation en arrière-plan.
  3. Découverte et session : le navigateur interroge l'enregistrement TXT DNS pour _email-verification.<email-domain> afin de découvrir l'origine de l'émetteur autorisé du fournisseur, puis vérifie si l'utilisateur dispose d'une session active à l'aide de la configuration .well-known/web-identity de l'émetteur et des points de terminaison des comptes FedCM. Si le domaine ne publie pas d'enregistrement EVP ou s'il n'existe aucune session active, le navigateur arrête la validation sans inviter l'utilisateur.
  4. Émission de jeton : le navigateur découvre l'issuance_endpoint du fournisseur à partir de .well-known/email-verification, crée une paire de clés éphémères et envoie une requête HTTP POST à l'aide des signatures de messages HTTP (document RFC 9421) avec les cookies de session propriétaires de l'émetteur et l'adresse e-mail cible pour recevoir un jeton de validation de l'adresse e-mail signé (EVT).
  5. Liaison de clé et envoi : le navigateur lie l'EVT signé à l' origine de la partie utilisatrice et au nonce du formulaire dans un JWT de liaison de clé (KB-JWT) , puis affiche une petite notification informant l'utilisateur que son fournisseur de messagerie a validé son adresse. Lorsque l'utilisateur envoie le formulaire, Chrome remplit l'entrée masquée avec le jeton combiné (<EVT>~<KB-JWT>).
  6. Validation des revendications et de la liaison de clé : le serveur de la partie utilisatrice analyse le jeton <EVT>~<KB-JWT>, valide les revendications attendues (email, email_verified, aud, nonce, iat et exp) et vérifie la signature de liaison de clé par rapport à la clé publique éphémère dans cnf.jwk.
  7. DNS et clés publiques : la partie utilisatrice interroge l'enregistrement TXT DNS _email-verification.<email-domain> pour confirmer qu'il correspond à la revendication iss du jeton, puis récupère les métadonnées .well-known/email-verification et les clés publiques de l'émetteur à partir de jwks_uri.
  8. Validation de l'EVT et finalisation : la partie utilisatrice valide la EVT signature de l'émetteur à l'aide du JWKS public du fournisseur. Si aucun jeton n'est reçu ou si une étape de validation échoue, le site revient à son processus de confirmation d'e-mail existant.

La première fois qu'un utilisateur valide une adresse e-mail, Chrome affiche une invite d'autorisation (une boîte de dialogue sur ordinateur ou une feuille inférieure sur Android) avant de demander un jeton. Si elle est accordée, cette autorisation est mémorisée par adresse e-mail sur les sites participants.

Paramètres de Google Chrome

Les utilisateurs peuvent gérer leurs e-mails validés :

  • Sur ordinateur, sous Paramètres > Saisie automatique et mots de passe > Coordonnées > E-mail validé (ou ouvrez chrome://settings/contactInfo)
  • Sur Android, sous Paramètres > Adresses et plus > E-mail validé

Les utilisateurs peuvent désactiver complètement la fonctionnalité ou gérer les adresses e-mail validées individuellement.

Points à prendre en compte pour les cas d'utilisation

La validation de l'adresse e-mail est une amélioration progressive de votre flux existant qui évite à l'utilisateur de quitter votre site pour récupérer un code OTP ou cliquer sur un lien. Les sites peuvent ajouter les champs de validation de l'adresse e-mail à tous les formulaires pertinents, tels que les connexions, les inscriptions à des newsletters, la création de comptes et la récupération de mots de passe. L'EVP ne se déclenche que si le navigateur le prend en charge. Si aucun code n'est reçu lors de l'envoi ou si l'une des étapes de validation échoue, vous pouvez revenir à votre flux de confirmation d'e-mail par défaut. Cela signifie également qu'il n'y a pas de détection de fonctionnalité pour l'API. Le site du validateur traite l'EVT comme facultatif et le traite s'il est présent dans la requête.

La validation de l'adresse e-mail confirme que l'utilisateur dispose d'une session active auprès du fournisseur de son adresse e-mail. Elle ne vérifie pas que votre e-mail est parvenu à l'utilisateur. Vous pouvez toujours envoyer des e-mails de bienvenue ou d'intégration existants, et vous pouvez ou devez inviter l'utilisateur à vérifier ses paramètres de spam.