デジタル認証情報を使用して確認済みのメールアドレスを取得する

このドキュメントでは、認証情報マネージャーを使用して、ユーザーのデバイスから暗号で検証されたメールアドレスを取得する方法について説明します。このプロセスにより、アプリのユーザーはワンタイム パスワード(OTP)またはマジックリンクでメールアドレスを確認する必要がなくなります。

このドキュメントでは、次の点について説明します。

  • Android の互換性
  • ユーザー エクスペリエンス
  • サポートされているアカウント
  • メールの到達状況の影響
  • Google でログイン」との比較

このガイドでは、次のコンセプトについて理解していることを前提としています。

Android の互換性

この機能は、Android 9(API レベル 28)以降を搭載したスマートフォン、タブレット、折りたたみ式デバイスでサポートされています。必要な Google Play 開発者サービス(GMS)の最小バージョンは 25.49.x です。

ユーザー エクスペリエンス

以降のセクションでは、検証フローでのユーザー エクスペリエンス、フォールバック検証方法を含める必要性、さまざまなユースケースで推奨されるユーザー エクスペリエンスについて説明します。

検証フロー

検証済みのメールアドレスを共有する際のユーザー エクスペリエンスは次のとおりです。

  1. ユーザーが入力フィールドにフォーカスするか、Credential Manager API を呼び出すボタンをタップします。画面のデザインによっては、アプリの画面の読み込み時に API を呼び出すこともできます。

  2. ボトムシートが表示され、アプリと共有される情報が表示されます。そのデバイスで情報が利用できない場合は、一般的なエラー メッセージが表示されます。

  3. ユーザーが [Agree and Continue] をタップしたら、成功または失敗 メッセージを表示します。

  4. (省略可、推奨)ユーザーがサービスに登録する場合は、後でログインしやすくするために、ユーザーに パスキー作成を促す必要があります。

プライマリ フローとフォールバック フローを含める

ユーザー エクスペリエンスを合理化するため、メールアドレスの確認が必要な画面に次のオプションを含めます。

  • プライマリ検証オプション: メールフィールドまたはボタン。Credential Manager API フローをトリガーして迅速に検証します。
  • 代替検証オプション: デバイスで情報が利用できない場合や、取得したメールアドレスと想定されるメールアドレスが一致しない場合など、失敗した場合にユーザーが [別の方法で確認] または [その他のオプション] を使用してメールアドレスを手動で入力するためのリンクまたはボタン。これにより、ユーザーは別の認証情報で検証を試すか、手動で OTP を入力できます。

ユースケース

以降のセクションでは、メールアドレスの確認で推奨されるユースケースと、推奨されるユーザー エクスペリエンスについて説明します。

登録

ユーザーは、別の確認手順を踏むことなく、検証済みのメールアドレスでアカウントをすぐに作成できます。必要に応じて、パスキーを追加するようにユーザーに促します。パスキーを追加することを選択した場合は、パスキー作成フローをトリガーします。

登録時にメール確認を行い、パスキーを作成する
登録時のメールアドレスの確認

アカウント復元

ユーザーが迷惑メール フォルダで復元コードを探す手間を省くため、デバイスに安全に保存されている検証済みのメールアドレスを使用してアカウントを復元できるようにします。また、今後の使用のためにパスキーを作成することをおすすめします。

アカウント復元時のメール確認の使用
アカウント復元時のメールアドレスの確認

機密情報に関する操作の再認証

設定の変更やプロフィール情報の更新など、機密情報に関するユーザー操作は、簡単な再認証手順を必須とすることで保護します。

再認証中にメール確認を使用する
再認証時のメールアドレスの確認

サポートされているアカウント

認証情報マネージャーによるメールアドレスの確認では、一般ユーザー向けの Google アカウントの確認のみがサポートされています。Workspace アカウント管理対象アカウントは対象外です。

一般ユーザー向けの Google アカウントは、@gmail.com に限定されず、任意のプロバイダのメールアドレスで作成できます。ただし、Google はこれらのアカウントを次のように確認します。

  • @gmail.com アカウントの場合: Google が信頼できるソースであり、メールアドレスが確認済みであることがわかります。
  • @gmail.com 以外のアカウントの場合: Google は、これらのメールアドレスの長期的な信頼できるソースではありません。アカウントの作成時に Google がメールアドレスを確認しますが、そのメールアドレスの所有権は時間の経過とともに変更される可能性があります。したがって、@gmail.com 以外のアドレスの場合は、ユーザーがメール アカウントに引き続きアクセスできるように、OTP の送信などの追加の確認手順を検討する必要があります。

確認の意味について詳しくは、Digital Credentialsをご覧ください。

有効性と鮮度

システムは、デバイス上のアクティブな Google アカウントのユーザーの現在の メールアドレスに基づいて、検証可能な認証情報(VC)を発行します。これらの認証情報は、通常はデバイスがアイドル状態のときに、事前にデバイスに発行されます。これらの認証情報は数日間有効な場合がありますが、認証情報を共有する際に、アカウントがまだ存在し、デバイスに存在し、メールアドレスが有効であることを確認するチェックが行われます。これにより、認証情報の有効期間よりもアカウントの現在のステータスが優先されます。

信頼性を確保するため、共有時にナンスを組み込んだキー バインディング(kb)署名が生成されます。

デバイスがオフラインの場合やアカウントが削除された場合は、期限切れの VC や、アクティブでない Google アカウントの VC が提供されるのではなく、プロセスが失敗します。

メールの到達状況

このプロセスではアカウントの正当性が確認されますが、受信トレイへの配信は保証されません(たとえば、メールが迷惑メールに振り分けられる可能性があります)。メールの到達状況を確認する確実な方法は、OTP を使用することです。

「Google でログイン」との比較

デジタル認証情報と「Google でログイン」のどちらのソリューションでも 検証済みのメールアドレスが提供されますが、ユーザーフローとユースケースは異なります。

  • ユースケース: 認証情報マネージャーのメールアドレス確認フローは、登録やログインのユースケースでのみ使用されるのではなく、検証済みのメールアドレスの取得を伴うあらゆるユースケースで使用できます。アカウント復元も含まれます。
  • 登録: 「Google でログイン」とは異なり、認証情報マネージャーのフローでは Google への 登録は必要ありません。
  • プラットフォームのサポート: 認証情報マネージャーのフローは Android 専用の ソリューションです。
  • スコープ: OAuth 2.0 を使用してユーザーデータ(スコープを介したカレンダーやドライブなど)へのアクセスをリクエストできる「Google でログイン」とは異なり、デジタル認証情報 API は検証済みの ID 属性の取得専用です。追加の承認スコープをリクエストするために使用することはできません。

次のステップ

この機能をアプリに実装するには、実装ガイドをご覧ください。