E-Mail-Bestätigung

Die Email Verification API ist ein Vorschlag, mit dem der Browser direkt mit dem E‑Mail-Anbieter kommunizieren kann, um zu bestätigen, dass der Nutzer Inhaber der E‑Mail-Adresse ist. Nutzer geben ihre E‑Mail-Adresse ein, senden das Formular und die Website bestätigt das signierte E‑Mail-Bestätigungstoken vom Browser mit dem Anbieter, ohne eine E‑Mail zu senden oder den Nutzerfluss zu unterbrechen.

Wenn Websites bei der Registrierung, Anmeldung, Kasse, Newsletter-Abonnement oder Kontowiederherstellung eine E‑Mail-Adresse erheben, bestätigen sie in der Regel, dass die Person, die das Formular einreicht, die Adresse kontrolliert. Bei bestehenden Bestätigungsmethoden müssen Nutzer Ihre Website verlassen, Apps wechseln, um ihren Posteingang zu prüfen, ein Einmalpasswort kopieren oder auf einen Bestätigungslink klicken. Diese Unterbrechung führt zu mehr Abbrüchen und Sitzungsabbrüchen sowohl bei menschlichen Nutzern als auch bei automatisierten Agents. Nutzer haben oft Probleme mit bestehenden Bestätigungsmethoden, z. B. verzögerten E‑Mails, abgelaufenen Links oder nicht erkannten Codes.

Demo zur Nutzeraufforderung für die E‑Mail-Bestätigung
Demo der Nutzeraufforderung zur E‑Mail-Bestätigung

Die E‑Mail-Bestätigung dient als progressive Verbesserung Ihres bestehenden Ablaufs:

  • Keine Unterbrechung: Die Bestätigung erfolgt im Hintergrund, während der Nutzer das Formular ausfüllt.
  • Keine Funktionserkennung erforderlich: Websites fügen ihren Formularen eine E‑Mail-Eingabe und eine verborgene Token-Eingabe hinzu. Wenn der Browser oder Anbieter die E‑Mail-Bestätigung nicht unterstützt oder die Bestätigung fehlschlägt, greift die Website auf den Standardablauf zur E‑Mail-Bestätigung zurück.
  • Phishing-Risiken minimieren: Es gibt keinen Code zum Kopieren und keine Möglichkeit, den Nutzer auf eine gefälschte Website zu senden.

Sie können den Ablauf in der Demo testen:

  • Aussteller-Demo: Bietet ein simuliertes E‑Mail- Konto und eine angemeldete Sitzung.
  • Bestätiger-Demo: Bestätigen Sie die Demo E‑Mail oder eine beliebige E‑Mail eines teilnehmenden Anbieters.

Überlegungen zum Ursprungstest

Ursprungstests sind Experimente, um Feedback zu erhalten. Ihr Beitrag ist daher entscheidend, wenn Sie als vertrauende Partei oder Identitätsanbieter teilnehmen. Verwenden Sie die folgenden GitHub-Repositories, um Probleme zu melden:

Wenn Sie Fehler in der Chrome-Implementierung finden, melden Sie ein Problem in der folgenden Komponente:

Sie steuern die Funktion des Ursprungstests pro Antwort, indem Sie das Ursprungstest-Token einfügen. So können Sie die Funktion auf ein bestimmtes Segment Ihrer Nutzer beschränken, z. B. auf eine A/B-Testgruppe. Alternativ können Sie die Funktion für eine Betatestgruppe oder eine Gruppe mit frühem Zugriff aktivieren. In diesem Fall prüfen Sie die angegebene E‑Mail-Adresse, bevor Sie das Token ausstellen oder bestätigen.

Für Ursprungstests gelten auch Traffic-Limits, um zu verhindern, dass Websites vor der Einführung auf die Funktion angewiesen sind. Die Aussteller-API wird derzeit entwickelt. Sie sollten mit nicht abwärtskompatiblen Änderungen und Updates der Chrome-Benutzeroberfläche rechnen.

Weitere Updates finden Sie hier im Blog und auf der evp-announce@chromium.org.

Ablauf der E‑Mail-Bestätigung

In den folgenden Abschnitten werden die wichtigsten Begriffe und Protokollschritte bei der Verwendung der E‑Mail-Bestätigung API erläutert.

Wichtige Begriffe

Wichtige Begriffe für die E‑Mail-Bestätigung API sind:

  • Bestätiger: Die Website, die die E‑Mail-Adresse erhebt und bestätigen möchte sie. Der Bestätiger wird auch als vertrauende Partei bezeichnet.
  • E‑Mail-Anbieter: Der Dienst, der die E‑Mail-Adresse des Nutzers bereitstellt, z. B. gmail.com.
  • Aussteller: Der Dienst, der das Konto für die E‑Mail-Adresse des Nutzers verwaltet, z. B. accounts.google.com. Der Aussteller wird auch als Identitäts Anbieter bezeichnet.

In einigen Fällen arbeiten der E‑Mail-Anbieter und der Aussteller von derselben Domain aus. Es ist jedoch wichtig, zwischen ihnen zu unterscheiden, da die Email Verification API die aktive Sitzung im Browser mit dem Identitätsanbieter als Bestätigungsmethode verwendet. Um beispielsweise example@gmail.com zu bestätigen, muss der Nutzer im selben Browser mit diesem Konto in google.com angemeldet sein.

Protokollablauf

Architektur des Ablaufs der E‑Mail-Bestätigung
Architektur des E‑Mail-Bestätigungsablaufs
  1. Formularpräsentation: Die vertrauende Partei stellt ein HTML-Formular mit einer <input type="email"> und einer verborgenen Eingabe bereit, die mit autocomplete="email-verification-token" und einer eindeutigen nonce pro Instanz gekennzeichnet ist.
  2. E‑Mail-Eingabe: Wenn der Nutzer eine E‑Mail-Adresse eingibt, entweder durch Auswahl eines Vorschlags zum automatischen Ausfüllen oder durch Eingabe oder Einfügen und Verlassen des Felds (blur), löst der Browser die Bestätigung im Hintergrund aus.
  3. Erkennung und Sitzung: Der Browser fragt den DNS-TXT-Eintrag für _email-verification.<email-domain> ab, um den autorisierten Ausstellerursprung des Anbieters zu ermitteln. Anschließend wird geprüft, ob der Nutzer eine aktive Sitzung mit der Konfiguration des Ausstellers .well-known/web-identity und den FedCM-Konten Endpunkten hat. Wenn die Domain keinen EVP-Eintrag veröffentlicht oder keine aktive Sitzung vorhanden ist, beendet der Browser die Bestätigung, ohne den Nutzer aufzufordern.
  4. Tokenausstellung: Der Browser ermittelt den issuance_endpoint des Anbieters aus .well-known/email-verification, erstellt ein kurzlebiges Schlüsselpaar und sendet eine HTTP-POST-Anfrage mit HTTP-Nachrichtensignaturen (RFC 9421) mit den Erstanbieter-Sitzungscookies und der Ziel-E‑Mail-Adresse des Ausstellers, um ein signiertes E‑Mail-Bestätigungstoken (EVT) zu erhalten.
  5. Schlüsselbindung und Senden: Der Browser bindet das signierte EVT an den Ursprung der vertrauenden Partei und die nonce des Formulars in einem Key Binding JWT (KB-JWT) und zeigt eine kleine Benachrichtigung an, in der der Nutzer darüber informiert wird, dass sein E‑Mail Anbieter seine Adresse bestätigt hat. Wenn der Nutzer das Formular sendet, füllt Chrome die verborgene Eingabe mit dem kombinierten Token (<EVT>~<KB-JWT>) aus.
  6. Ansprüche und KB bestätigen: Der Server der vertrauenden Partei parst das <EVT>~<KB-JWT> Token, bestätigt die erwarteten Ansprüche (email, email_verified, aud, nonce, iat, und exp) und bestätigt die Signatur der Schlüssel bindung anhand des kurzlebigen öffentlichen Schlüssels in cnf.jwk.
  7. DNS und öffentliche Schlüssel: Die vertrauende Partei fragt den _email-verification.<email-domain> DNS-TXT-Eintrag ab, um zu bestätigen, dass er mit dem iss-Anspruch des Tokens übereinstimmt. Anschließend ruft sie die Metadaten und öffentlichen Schlüssel des Ausstellers aus .well-known/email-verification von jwks_uri ab.
  8. EVT bestätigen und abschließen: Die vertrauende Partei bestätigt die EVT Signatur des Ausstellers mit dem öffentlichen JWKS des Anbieters. Wenn kein Token empfangen wird oder ein Bestätigungsschritt fehlschlägt, greift die Website auf den bestehenden Ablauf zur E‑Mail-Bestätigung zurück.

Wenn ein Nutzer zum ersten Mal eine E‑Mail-Adresse bestätigt, zeigt Chrome eine Berechtigungsaufforderung an (ein Dialogfeld auf dem Desktop oder eine Ansicht am unteren Rand auf Android), bevor ein Token angefordert wird. Wenn diese Berechtigung erteilt wird, wird sie für jede E‑Mail-Adresse auf allen teilnehmenden Websites gespeichert.

Chrome-Einstellungen

Nutzer können ihre bestätigten E‑Mail-Adressen verwalten:

  • Auf dem Desktop unter Einstellungen > Automatisches Ausfüllen und Passwörter > Kontaktdaten > Bestätigte E‑Mail-Adresse oder öffnen Sie chrome://settings/contactInfo.
  • Auf Android unter Einstellungen > Adressen und mehr > Bestätigte E‑Mail-Adresse.

Nutzer können die Funktion vollständig deaktivieren oder einzelne bestätigte E‑Mail-Adressen verwalten.

Überlegungen zu Anwendungsfällen

Die E‑Mail-Bestätigung ist eine progressive Verbesserung Ihres bestehenden Ablaufs, bei der Nutzer Ihre Website nicht verlassen müssen, um ein Einmalpasswort abzurufen oder auf einen Link zu klicken. Websites können die Felder für die E‑Mail-Bestätigung allen relevanten Formularen hinzufügen, z. B. Anmeldungen, Newsletter-Registrierungen, Kontoerstellung und Passwortwiederherstellung. Die E‑Mail-Bestätigung wird nur ausgelöst, wenn der Browser sie unterstützt. Wenn beim Senden kein Code empfangen wird oder einer der Bestätigungsschritte fehlschlägt, können Sie auf den Standardablauf zur E‑Mail-Bestätigung zurückgreifen. Das bedeutet auch, dass es keine Funktionserkennung für die API gibt. Die Bestätiger-Website behandelt das EVT als optional und verarbeitet es, wenn es in der Anfrage vorhanden ist.

Die E‑Mail-Bestätigung bestätigt, dass der Nutzer eine aktive Sitzung beim Anbieter seiner E‑Mail-Adresse hat. Sie bestätigt nicht, dass Ihre E‑Mail den Nutzer erreicht hat. Möglicherweise möchten Sie weiterhin vorhandene Willkommens- oder Onboarding-E‑Mails senden und den Nutzer auffordern, seine Spam-Einstellungen zu prüfen.