Chrome は、サインアップやログイン、購読、チェックアウト、アカウント復元などで集めたメールアドレスの所有を、ブラウザがメールプロバイダと直接やりとりして確認する Email Verification API / Protocol を Origin Trial で公開した。ユーザーはオートフィルまたはオートコンプリートからアドレスを選び、サイトは検証メールを送らずに所有確認を進められる。

  • 役割は Verifier(メールを集めるサイト/Relying Party)、Email Provider(例: gmail.com)、Issuer(アカウントを管理する Identity Provider、例: accounts.google.com)に分かれる。
  • Gmail はプロバイダとして Origin Trial に参加しており、@gmail.com アドレスなら追加設定なしで検証フローを試せる。モック用の Issuer demoVerifier demo もある。
  • Verifier は Origin Trial に登録し、メールフォームと同じページにトークンを置く。Issuer 側に Origin Trial の登録は不要である。
  • ユーザーは同じブラウザプロファイルでプロバイダまたは Issuer にサインイン済みである必要がある。初回のみ、アドレスごとに許可プロンプトが出る。
  • 手入力アドレスの対応は将来リリースの予定で、現状はドロップダウンからの選択が前提である。
  • 対応ブラウザでのみ動き、送信時に EVT が無い・検証失敗なら従来の確認メールへフォールバックする。機能検出は想定せず、EVT を任意として扱う。
  • 確認できるのはプロバイダ上のアクティブセッションに基づく所有であり、サイトからのメール到達そのものではない。Issuer API は開発中で、後方互換を破る変更と Chrome UX の更新があり得る。Origin Trial にはトラフィック上限もある。

#Verifier 側のフォーム

メール入力には type="email"autocomplete="email" を付ける。提出時にブラウザが埋める隠れフィールドは次のとおり。

html
<input type="hidden" nonce="rAnD0m-VaLuE" autocomplete="email-verification-token" />

nonce はセッションに紐づく一意値にする。提出後、Verifier は SD-JWT+KB 形式の EVT をパースし、期待するメール・nonce・aud(自サイトのオリジン)・鍵バインディング・_email-verification DNS TXT・Issuer の /.well-known/email-verification 経由の署名を順に検証する。

#参考文献