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.
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.
Nützliche Links
- Spezifikation der E‑Mail-Bestätigung API (WICG) (GitHub-Repository)
- Internet-Draft des E‑Mail-Bestätigungsprotokolls (IETF) (GitHub-Repository)
- E‑Mail-Bestätigung auf der Chrome Platform Status-Seite
- Registrierung für den Ursprungstest zur E‑Mail-Bestätigung
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:
- Browser Email Verification API: WICG/email-verification
- E‑Mail-Bestätigungsprotokoll: dickhardt/email-verification
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
- Formularpräsentation: Die vertrauende Partei stellt ein HTML-Formular mit einer
<input type="email">und einer verborgenen Eingabe bereit, die mitautocomplete="email-verification-token"und einer eindeutigennoncepro Instanz gekennzeichnet ist. - 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. - 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-identityund 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. - Tokenausstellung: Der Browser ermittelt den
issuance_endpointdes 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. - Schlüsselbindung und Senden: Der Browser bindet das signierte
EVTan den Ursprung der vertrauenden Partei und dienoncedes 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. - 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, undexp) und bestätigt die Signatur der Schlüssel bindung anhand des kurzlebigen öffentlichen Schlüssels incnf.jwk. - 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 demiss-Anspruch des Tokens übereinstimmt. Anschließend ruft sie die Metadaten und öffentlichen Schlüssel des Ausstellers aus.well-known/email-verificationvonjwks_uriab. - EVT bestätigen und abschließen: Die vertrauende Partei bestätigt die
EVTSignatur des Ausstellers mit dem öffentlichenJWKSdes 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.