E-Mail-Bestätigung

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

Wenn eine E‑Mail-Adresse bei der Registrierung, Anmeldung, Kasse, Newsletteranmeldung oder Kontowiederherstellung erhoben wird, bestätigen Websites in der Regel, dass die Person, die das Formular einreicht, die Adresse kontrolliert. Bei bestehenden Bestätigungsmethoden müssen Nutzer Ihre Website verlassen, die App wechseln, um ihren Posteingang zu prüfen, ein Einmalkennwort kopieren oder auf einen Bestätigungslink klicken. Diese Unterbrechung führt zu einem Anstieg der Abbruchraten und des Sitzungsabbruchs sowohl bei menschlichen Nutzern als auch bei automatisierten Agenten. Nutzer haben oft Probleme mit bestehenden Bestätigungsmethoden, z. B. mit verzögerten E‑Mails, abgelaufenen Links oder nicht erkannten Codes.

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

Die E‑Mail-Bestätigung ist eine progressive Erweiterung 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, wird auf der Website der standardmäßige E‑Mail-Bestätigungsprozess verwendet.
  • Phishing-Risiken minimieren: Es gibt keinen Code, der kopiert werden muss, und keine Möglichkeit, den Nutzer auf eine gefälschte Website weiterzuleiten.

Sie können den Ablauf in der Demo testen:

  • Ausstellerdemo: Stellt ein Test-E-Mail-Konto und eine angemeldete Sitzung bereit.
  • Demo für Bestätiger: Bestätigen Sie die Demo-E-Mail-Adresse oder die E-Mail-Adresse eines teilnehmenden Anbieters.

Überlegungen zu Ursprungstests

Ursprungstests sind Experimente, bei denen Feedback gesammelt wird. 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 Ursprungstest-Funktionalität für jede Antwort einzeln, indem Sie das Ursprungstest-Token einfügen. So können Sie die Funktion auf ein bestimmtes Nutzersegment beschränken, z. B. auf eine A/B-Testgruppe. Alternativ können Sie die Funktion für eine Gruppe von Betatestern oder Early Preview-Nutzern aktivieren. Prüfen Sie in diesem Fall die angegebene E-Mail-Adresse, bevor Sie das Token ausstellen oder validieren.

Für Ursprungstests gelten auch Traffic-Limits, um die Anzahl der Websites zu minimieren, die vor der Einführung auf die Funktion angewiesen sind. Die Issuer API befindet sich in der Entwicklung. Sie sollten mit abwärtsinkompatiblen Änderungen und Updates der Chrome-Benutzeroberfläche rechnen.

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

Ablauf der E-Mail-Bestätigung

In den folgenden Abschnitten werden die wichtigsten Begriffe und Protokollschritte bei der Verwendung der Email Verification API erläutert.

Wichtige Begriffe

Wichtige Begriffe für die Email Verification API:

  • Bestätiger: Die Website, auf der die E‑Mail-Adresse erhoben und bestätigt werden soll. Der Prüfer wird auch als Relying Party 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ätsanbieter bezeichnet.

In einigen Fällen sind der E‑Mail-Anbieter und der Aussteller in derselben Domain tätig. Es ist jedoch wichtig, zwischen den beiden zu unterscheiden, da bei der Email Verification API die aktive Sitzung im Browser mit dem Identitätsanbieter als Bestätigungsmethode verwendet wird. Wenn Sie beispielsweise example@gmail.com bestätigen möchten, muss der Nutzer mit diesem Konto im selben Browser in google.com angemeldet sein.

Protokollfluss

Architektur des E-Mail-Bestätigungsprozesses
Architektur des E-Mail-Bestätigungsprozesses
  1. Formularpräsentation: Die vertrauende Partei stellt ein HTML-Formular mit einem <input type="email">, einer mit autocomplete="email-verification-token" gekennzeichneten verborgenen Eingabe und einem eindeutigen nonce pro Instanz bereit.
  2. E-Mail-Adresse eingeben: 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. Ermittlung 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 .well-known/web-identity-Konfiguration und den FedCM-Kontenendpunkten des Ausstellers hat. Wenn für die Domain kein EVP-Eintrag veröffentlicht wird oder keine aktive Sitzung vorhanden ist, wird die Bestätigung im Browser beendet, ohne dass der Nutzer dazu aufgefordert wird.
  4. Tokenausstellung: Der Browser ermittelt die issuance_endpoint des Anbieters aus .well-known/email-verification, erstellt ein temporäres Schlüsselpaar und sendet eine HTTP-POST-Anfrage mit HTTP-Nachrichtensignaturen (RFC 9421) mit den Erstanbieter-Sitzungscookies des Ausstellers und der Ziel-E-Mail-Adresse, um ein signiertes E-Mail-Bestätigungstoken (EVT) zu erhalten.
  5. Schlüsselbindung und Einreichung: Der Browser bindet die signierte EVT an den Ursprung der vertrauenden Partei und das Formular nonce in einem Key Binding JWT (KB-JWT). Wenn der Nutzer das Formular einreicht, füllt Chrome die verborgene Eingabe mit dem kombinierten Token (<EVT>~<KB-JWT>) aus und zeigt eine kleine Benachrichtigung an, in der der Nutzer darüber informiert wird, dass sein E-Mail-Anbieter seine Adresse bestätigt hat.
  6. Ansprüche und Wissensdatenbank validieren: Der Server der vertrauenden Partei parst das <EVT>~<KB-JWT>-Token, validiert die erwarteten Ansprüche (email, email_verified, aud, nonce, iat und exp) und prüft die Signatur der Schlüsselbindung anhand des temporären ö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 .well-known/email-verification-Metadaten und öffentlichen Schlüssel des Ausstellers von jwks_uri ab.
  8. EVT prüfen und abschließen: Die vertrauende Partei prüft die EVT-Signatur des Ausstellers mit dem öffentlichen JWKS des Anbieters. Wenn kein Token empfangen wird oder ein Validierungsschritt fehlschlägt, wird auf der Website der vorhandene E‑Mail-Bestätigungsprozess verwendet.

Wenn ein Nutzer zum ersten Mal eine E-Mail-Adresse bestätigt, wird in Chrome eine Berechtigungsaufforderung angezeigt (ein Dialogfeld auf dem Computer oder eine Ansicht am unteren Rand unter 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 so verwalten:

  • Auf dem Computer unter Einstellungen > Autofill und Passwörter > Kontaktdaten > Bestätigte E-Mail-Adresse (oder chrome://settings/contactInfo öffnen)
  • Unter Android: 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 Erweiterung Ihres bestehenden Ablaufs. Nutzer müssen Ihre Website nicht mehr verlassen, um ein Einmalkennwort abzurufen oder auf einen Link zu klicken. Websites können die Felder für die E‑Mail-Bestätigung in alle relevanten Formulare einfügen, z. B. für Anmeldungen, Newsletteranmeldungen, Kontoerstellungen und Passwortwiederherstellungen. EVP-Trigger werden nur ausgelöst, wenn der Browser sie unterstützt. Wenn bei der Einreichung kein Code empfangen wird oder einer der Validierungsschritte fehlschlägt, können Sie auf Ihren Standard-E‑Mail-Bestätigungsablauf zurückgreifen. Das bedeutet auch, dass es keine Funktionserkennung für die API gibt. Die Prüfwebsite behandelt das EVT als optional und verarbeitet es, wenn es in der Anfrage vorhanden ist.

Bei der E‑Mail-Bestätigung wird bestätigt, dass der Nutzer eine aktive Sitzung beim Anbieter seiner E‑Mail-Adresse hat. Es wird nicht bestätigt, 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 Spameinstellungen zu überprüfen.