Weryfikacja adresu e-mail

Email Verification API to propozycja, która umożliwia przeglądarce bezpośrednią komunikację z dostawcą poczty e-mail w celu sprawdzenia, czy użytkownik jest właścicielem adresu e-mail. Użytkownicy wpisują adres e-mail i przesyłają formularz, a witryna weryfikuje podpisany token weryfikacyjny adresu e-mail z przeglądarki u dostawcy bez wysyłania e-maila ani przerywania procesu użytkownika.

Podczas zbierania adresów e-mail w trakcie rejestracji, logowania, płatności, subskrypcji newslettera lub odzyskiwania konta witryny zwykle potwierdzają, że osoba przesyłająca formularz ma kontrolę nad adresem. Obecne metody weryfikacji wymagają od użytkowników opuszczenia witryny, przełączenia aplikacji w celu sprawdzenia skrzynki odbiorczej, skopiowania kodu OTP lub kliknięcia linku weryfikacyjnego. To zakłócenie zwiększa liczbę porzuceń i sesji zarówno w przypadku użytkowników, jak i automatycznych agentów. Użytkownicy często napotykają problemy z dotychczasowymi metodami weryfikacji, takie jak opóźnione e-maile, wygasłe linki lub nierozpoznane kody.

Demonstracja monitu użytkownika weryfikacji adresu e-mail
Demonstracja promptu użytkownika dotyczącego weryfikacji adresu e-mail

Potwierdzanie adresu e-mail działa jako progresywne ulepszanie dotychczasowego procesu:

  • Brak przerw: weryfikacja odbywa się w tle, gdy użytkownik wypełnia formularz.
  • Nie jest wymagane wykrywanie funkcji: witryny dodają do formularzy pole do wpisywania adresu e-mail i ukryte pole do wpisywania tokena. Jeśli przeglądarka lub dostawca nie obsługuje weryfikacji adresu e-mail albo weryfikacja się nie powiedzie, witryna wraca do domyślnego procesu potwierdzania adresu e-mail.
  • Minimalizowanie ryzyka phishingu: nie ma kodu do skopiowania ani możliwości przekierowania użytkownika do fałszywej witryny.

Możesz przetestować automatyzację w wersji demonstracyjnej:

Wskazówki dotyczące testowania origin

Wersje próbne origin to eksperymenty, które mają na celu zbieranie opinii, więc Twoje zdanie jest bardzo ważne, jeśli uczestniczysz w nich jako strona ufająca lub dostawca tożsamości. Aby zgłosić problemy, skorzystaj z tych repozytoriów GitHub:

Jeśli w implementacji Chrome napotkasz błędy, zgłoś problem w tym komponencie:

Funkcją testowania origin możesz sterować w przypadku każdej odpowiedzi, dołączając token testowania origin. Dzięki temu możesz ograniczyć dostęp do tej funkcji do określonego segmentu użytkowników, np. do grupy testowej A/B. Jeśli masz grupę beta-testerów lub użytkowników, którzy mają wcześniejszy dostęp do funkcji, możesz ją włączyć dla nich. W takim przypadku przed wydaniem lub zweryfikowaniem tokena sprawdź, czy podany adres e-mail jest prawidłowy.

Wersje próbne origin mają też limity ruchu, aby zminimalizować liczbę witryn korzystających z funkcji przed jej wprowadzeniem. Interfejs API wydawcy jest w trakcie opracowywania, więc wraz z aktualizacjami interfejsu Chrome mogą pojawiać się zmiany, które nie są wstecznie kompatybilne.

Więcej informacji o postępach prac znajdziesz na tym blogu oraz na liście adresowej evp-announce@chromium.org.

Proces potwierdzania adresu e-mail

W kolejnych sekcjach wyjaśniamy najważniejsze pojęcia i kroki protokołu podczas korzystania z interfejsu Email Verification API.

Kluczowe terminy

Najważniejsze terminy związane z interfejsem Email Verification API to:

  • Weryfikator: witryna, która zbiera adres e-mail i chce go zweryfikować. Weryfikator jest też nazywany stroną zależną.
  • Dostawca poczty e-mail: usługa, która udostępnia adres e-mail użytkownika, np. gmail.com.
  • Wystawca: usługa, która zarządza kontem e-mail użytkownika, np. accounts.google.com. Wydawca jest też nazywany dostawcą tożsamości.

W niektórych przypadkach dostawca poczty e-mail i wydawca działają w tej samej domenie. Warto jednak je odróżniać, ponieważ interfejs Email Verification API używa aktywnej sesji w przeglądarce z dostawcą tożsamości jako metody weryfikacji. Aby na przykład zweryfikować example@gmail.com, użytkownik musi być zalogowany na google.com na tym koncie w tej samej przeglądarce.

Przebieg protokołu

Architektura procesu weryfikacji adresu e-mail
Architektura procesu weryfikacji adresu e-mail
  1. Wyświetlanie formularza: podmiot ufający wyświetla formularz HTML zawierający element <input type="email"> i ukryte pole wejściowe oznaczone elementem autocomplete="email-verification-token" oraz unikalny element nonce dla każdej instancji.
  2. Wpisanie adresu e-mail: gdy użytkownik wpisze adres e-mail – wybierając sugestię autouzupełniania lub wpisując lub wklejając tekst i opuszczając pole (blur) – przeglądarka uruchamia weryfikację w tle.
  3. Wykrywanie i sesja: przeglądarka wysyła zapytanie do rekordu DNS TXT dla _email-verification.<email-domain>, aby wykryć autoryzowane źródło wystawcy dostawcy, a następnie sprawdza, czy użytkownik ma aktywną sesję, korzystając z konfiguracji .well-known/web-identity wystawcy i punktów końcowych kont FedCM. Jeśli domena nie publikuje rekordu EVP lub nie ma aktywnej sesji, przeglądarka przerywa weryfikację bez wyświetlania monitu dla użytkownika.
  4. Wydawanie tokena: przeglądarka wykrywa issuance_endpoint dostawcy na podstawie .well-known/email-verification, tworzy tymczasową parę kluczy i wysyła żądanie HTTP POST za pomocą podpisów wiadomości HTTP (RFC 9421) z plikami cookie sesji własnej witryny wydawcy i docelowym adresem e-mail, aby otrzymać podpisany token weryfikacji adresu e-mail (EVT).
  5. Powiązanie klucza i przesyłanie: przeglądarka wiąże podpisany EVT z pochodzeniem strony ufającej i formularzem nonce w ramach tokena JWT powiązania klucza (KB-JWT). Gdy użytkownik prześle formularz, Chrome wypełni ukryte pole wejściowe połączonym tokenem (<EVT>~<KB-JWT>) i wyświetli małe powiadomienie informujące użytkownika, że dostawca poczty e-mail zweryfikował jego adres.
  6. Weryfikacja roszczeń i bazy wiedzy: serwer strony ufającej analizuje token <EVT>~<KB-JWT>, weryfikuje oczekiwane roszczenia (email, email_verified, aud, nonce, iat i exp) oraz sprawdza sygnaturę powiązania klucza z przejściowym kluczem publicznym w cnf.jwk.
  7. DNS i klucze publiczne: strona ufająca wysyła zapytanie do_email-verification.<email-domain> rekordu DNS TXT, aby potwierdzić, że pasuje on do roszczenia iss tokena, a następnie pobiera metadane.well-known/email-verification i klucze publiczne wystawcy z jwks_uri.
  8. Weryfikacja EVT i jej ukończenie: podmiot ufający weryfikuje EVTpodpis wystawcy za pomocą klucza publicznego dostawcyJWKS. Jeśli nie otrzymasz tokena lub którykolwiek etap weryfikacji się nie powiedzie, witryna wróci do dotychczasowego procesu potwierdzania adresu e-mail.

Gdy użytkownik po raz pierwszy zweryfikuje adres e-mail, Chrome wyświetli prośbę o uprawnienia (okno dialogowe na komputerze lub arkusz u dołu ekranu na Androidzie) przed wysłaniem prośby o token. Jeśli to uprawnienie zostanie przyznane, będzie zapamiętywane dla każdego adresu e-mail w przypadku uczestniczących witryn.

Ustawienia przeglądarki Chrome

Użytkownicy mogą zarządzać zweryfikowanymi adresami e-mail:

  • Na komputerze otwórz Ustawienia > Autouzupełnianie i hasła > Informacje kontaktowe > Zweryfikowany adres e-mail (lub otwórz chrome://settings/contactInfo).
  • Na Androidzie otwórz Ustawienia > Adresy i inne informacje > Zweryfikowany adres e-mail.

Użytkownicy mogą całkowicie wyłączyć tę funkcję lub zarządzać poszczególnymi zweryfikowanymi adresami e-mail.

Kwestie dotyczące przypadków użycia

Potwierdzanie adresu e-mail to progresywne ulepszanie istniejącego procesu, które eliminuje konieczność opuszczania witryny przez użytkownika w celu pobrania hasła jednorazowego lub kliknięcia linku. Witryny mogą dodawać pola potwierdzania adresu e-mail do wszystkich odpowiednich formularzy, takich jak logowanie, rejestracja w newsletterze, tworzenie konta i odzyskiwanie hasła. EVP jest wywoływany tylko wtedy, gdy przeglądarka go obsługuje. Jeśli po przesłaniu nie otrzymasz kodu lub którykolwiek z etapów weryfikacji się nie powiedzie, możesz wrócić do domyślnego procesu potwierdzania adresu e-mail. Oznacza to również, że nie ma wykrywania funkcji interfejsu API. Witryna weryfikująca traktuje EVT jako opcjonalny i przetwarza go, jeśli jest obecny w żądaniu.

Potwierdzanie adresu e-mail potwierdza, że użytkownik ma aktywną sesję u dostawcy adresu e-mail. Nie potwierdza on, że e-mail dotarł do użytkownika. Możesz nadal wysyłać istniejące e-maile powitalne lub wprowadzające i możesz chcieć lub musieć poprosić użytkownika o sprawdzenie ustawień spamu.