Validation de l'adresse e-mail

L'API Email Verification 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 et envoient le formulaire. Le site vérifie ensuite le jeton de validation d'adresse e-mail signé depuis le navigateur avec le fournisseur, sans envoyer d'e-mail ni interrompre le parcours utilisateur.

Lorsqu'ils collectent une adresse e-mail lors de l'inscription, de la connexion, du règlement, de l'abonnement à une newsletter ou de la récupération d'un compte, les sites 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 perturbation augmente le taux d'abandon et d'interruption de session pour les utilisateurs humains et les agents automatisés. Les utilisateurs rencontrent souvent des difficultés avec les méthodes de validation existantes, comme les e-mails différés, les liens expirés ou les codes non reconnus.

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

La validation de l'adresse e-mail est 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'adresse 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 par e-mail par défaut.
  • Limitez les 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émo :

Points à prendre en compte pour les essais Origin Trial

Les essais Origin Trial sont des tests permettant de recueillir des commentaires. Votre avis est donc essentiel si vous participez en tant que partie de confiance 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é d'essai Origin Trial pour chaque réponse en incluant le jeton d'essai Origin Trial. Cela vous permet de limiter la fonctionnalité à un segment spécifique de vos utilisateurs, comme une population de test A/B. Si vous disposez d'un groupe d'utilisateurs pour les tests bêta ou l'aperçu anticipé, vous pouvez ou devez activer la fonctionnalité pour eux. 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 émetteur est en cours de développement. Vous devez vous attendre à des modifications incompatibles avec les versions antérieures, ainsi qu'à des mises à jour de l'expérience utilisateur Chrome.

Nous publierons d'autres informations sur le blog et sur la liste de diffusion evp-announce@chromium.org au fur et à mesure de l'avancement du développement.

Processus de validation de l'adresse e-mail

Les sections suivantes expliquent les termes clés et les étapes du protocole à suivre lorsque vous utilisez l'API Email Verification.

Termes clés

Voici les principaux termes de l'API Email Verification :

  • Validateur : site qui collecte l'adresse e-mail et souhaite la valider. Le vérificateur est également appelé partie de confiance.
  • Fournisseur de messagerie : service fournissant l'adresse e-mail de l'utilisateur, par exemple gmail.com.
  • Émetteur : service qui gère le compte pour l'adresse 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 faire la distinction entre les deux, 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 des adresses e-mail
  1. Présentation du formulaire : la partie de confiance fournit 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 d'une adresse e-mail : lorsque l'utilisateur saisit une adresse e-mail (en sélectionnant une suggestion de saisie automatique, ou en saisissant ou collant une adresse, 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 qu'aucune session active n'existe, le navigateur arrête la validation sans inviter l'utilisateur à effectuer une action.
  4. Émission de jetons : le navigateur découvre le 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 (RFC 9421) avec les cookies de session first party de l'émetteur et l'adresse e-mail cible pour recevoir un jeton de validation d'adresse e-mail signé (EVT).
  5. Association de clé et envoi : le navigateur associe le EVT signé à l'origine de la partie de confiance et au formulaire nonce dans un jeton JWT d'association de clé (KB-JWT). Lorsque l'utilisateur envoie le formulaire, Chrome renseigne l'entrée masquée avec le jeton combiné (<EVT>~<KB-JWT>) et affiche une petite notification informant l'utilisateur que son fournisseur de messagerie a validé son adresse.
  6. Valider les revendications et la base de connaissances : le serveur de la partie de confiance 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 de confiance 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. Valider l'EVT et le finaliser : la partie de confiance valide la signature EVT de l'émetteur à l'aide de la JWKS publique du fournisseur. Si aucun jeton n'est reçu ou si une étape de validation échoue, le site revient à son processus de confirmation par 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 adresses e-mail validées :

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

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. Elle permet à l'utilisateur de ne pas avoir à 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 concernés, comme les formulaires de connexion, d'inscription à la newsletter, de création de compte et de récupération de mot de passe. L'EVP n'est déclenché 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 par e-mail par défaut. Cela signifie également qu'il n'y a pas de détection de fonctionnalité pour l'API. Le site de validation 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. Il ne permet pas de vérifier que votre e-mail est bien 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.