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

このドキュメントでは、認証情報マネージャーを使用して、ユーザーのデバイスから暗号で検証されたメールアドレスを取得する方法について説明します。このプロセスにより、アプリのユーザーはワンタイム パスワード(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 属性を取得するためのものです。追加の承認スコープをリクエストするために使用することはできません。

次のステップ

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