このドキュメントでは、認証情報マネージャーを使用して、ユーザーのデバイスから暗号で検証されたメールアドレスを取得する方法について説明します。このプロセスにより、アプリユーザーがワンタイム パスワード(OTP)やマジックリンクを使用してメールアドレスを確認する必要がなくなります。
このドキュメントでは、次の領域について説明します。
- Android の互換性
- ユーザー エクスペリエンス
- サポートされているアカウント
- メール配信可能性への影響
- 「Google でログイン」との比較
このガイドは、次のコンセプトを理解していることを前提としています。
Android のスキル
GitHub で表示確認済みのメールアドレスを取得する
android skills add verified-emailAndroid の互換性
この機能は、Android 9(API レベル 28)以降を搭載したモバイル、タブレット、折りたたみ式デバイスでサポートされています。Google Play 開発者サービス(GMS)の最小バージョンは 25.49.x です。
ユーザー エクスペリエンス
以降のセクションでは、確認フロー中のユーザー エクスペリエンス、代替の確認方法を含める必要性、さまざまなユースケースで推奨されるユーザー エクスペリエンスについて説明します。
確認フロー
確認済みのメールアドレスを共有する際のユーザー エクスペリエンスは次のとおりです。
- ユーザーが入力フィールドにフォーカスするか、Credential Manager API を呼び出すボタンをタップします。画面のデザインによっては、アプリの画面読み込み時に API を呼び出すこともできます。
- ボトムシートが表示され、アプリと共有される情報が表示されます。そのデバイスで利用可能な情報がない場合、一般的なエラー メッセージが表示されます。
- ユーザーが [同意して続行] をタップすると、成功または失敗のメッセージが表示されます。
- 注: 受信した確認メールが想定と一致しない場合は、不一致についてユーザーに通知し、別の認証情報で再試行するか、OTP などの別の確認方法を提供するよう依頼します。
- (省略可、推奨)ユーザーがサービスに登録する場合は、パスキーを作成するようユーザーに促し、次回以降のログインを容易にします。
- 注: メール確認プロセスでは、パスキーの作成は自動的にトリガーされません。ただし、パスキー作成の手順を含めることを強くおすすめします。パスキーを使用すると、ユーザーはより簡単かつ安全にログインできるようになり、従来のユーザー名とパスワードによる操作が不要になります。
プライマリ フローとフォールバック フローを含める
ユーザー エクスペリエンスを効率化するため、メール確認が必要な画面に次のオプションを含めます。
- メインの確認オプション: Credential Manager API フローをトリガーして迅速に確認するためのメール フィールドまたはボタン。
- 代替の確認オプション: デバイスで情報が利用できない場合や、取得したメールアドレスと想定されるメールアドレスが一致しない場合など、エラーが発生した場合に、ユーザーが「別の方法で確認する」または「その他のオプション」でメールアドレスを手動で入力するためのリンクまたはボタン。これにより、ユーザーは別の認証情報を使用するか、手動で OTP を入力して確認を試すことができます。
ユースケース
以降のセクションでは、メール確認の推奨されるユースケースと、推奨されるユーザー エクスペリエンスについて説明します。
登録
ユーザーは、別の確認手順を踏むことなく、確認済みのメールアドレスを使用してすぐにアカウントを作成できます。必要に応じて、パスキーを追加するようユーザーに促します。パスキーを追加することを選択した場合は、パスキー作成フローをトリガーします。
アカウント復元
ユーザーが迷惑メールフォルダで復元コードを探す手間を省くため、デバイスに安全に保存されている確認メールを使用してアカウントを復元できるようにします。また、今後使用するためにパスキーを作成することをおすすめします。
機密情報に関する操作の再認証
設定の変更やプロフィールの詳細の更新など、機密性の高いユーザー操作を保護するには、簡単な再認証ステップを必須にします。
サポートされているアカウント
認証情報マネージャーによるメール確認は、一般ユーザー向け Google アカウントの確認のみをサポートしています。Workspace アカウントと管理対象のアカウントはサポートされていません。
一般ユーザー向け Google アカウントは、@gmail.com だけでなく、任意のプロバイダのメールアドレスを使用して作成できます。ただし、Google では、これらのアカウントを次のように異なる方法で確認します。
- @gmail.com アカウントの場合: Google が信頼できるソースであり、メールは確認済みであることがわかっています。
- @gmail.com 以外のアカウントの場合: Google は、これらのメールアドレスの長期的な信頼できる情報源ではありません。アカウントの作成時に Google がメールアドレスを確認しますが、そのメールアドレスの所有権は時間の経過とともに変更される可能性があります。そのため、@gmail.com 以外のアドレスについては、OTP の送信など、追加の確認手順を検討して、ユーザーが引き続きメール アカウントにアクセスできるようにする必要があります。
検証の意味について詳しくは、デジタル クルデンシャルをご覧ください。
注: ユーザーのメール情報のほかに、ユーザーの名前、姓、名前、Google アカウントのプロフィール写真など、未確認のフィールドをリクエストできます。ただし、Google が確認するのはメールアドレスのみです。
電話番号の確認については、デジタル認証情報を使用して電話番号を確認するをご覧ください。Firebase ソリューションについては、Firebase の電話番号の確認をご覧ください。
有効性と鮮度
システムは、デバイス上の有効な Google アカウントからユーザーの現在のメールアドレスに基づいて検証可能な認証情報(VC)を発行します。これらの認証情報は、通常、デバイスがアイドル状態のときに、事前にデバイスに発行されます。これらの認証情報は数日間有効な場合がありますが、システムは認証情報を共有する時点で、アカウントがまだ存在し、デバイス上にあり、メールアドレスが有効であることを確認します。これにより、認証情報の有効期間よりもアカウントの即時ステータスが優先されます。
信頼性を確保するため、共有時にナンスを組み込んだ鍵バインディング(kb)署名が生成されます。
デバイスがオフラインの場合やアカウントが削除されている場合は、期限切れの VC や無効な Google アカウントの VC が提供されるのではなく、プロセスが失敗します。
メールの配信機能
このプロセスではアカウントの正当性が確認されますが、受信トレイへの配信は保証されません(たとえば、メールが迷惑メールに振り分けられる可能性があります)。OTP は、メールの到達性を確認するための確実な方法です。
「Google でログイン」との比較
デジタル認証情報と Google でログイン ソリューションはどちらも確認済みのメールアドレスを提供しますが、ユーザーフローとユースケースは異なります。
- ユースケース: 認証情報マネージャーのメール確認フローは、登録やログインのユースケースでのみ使用されるわけではなく、確認済みメールの取得を伴うあらゆるユースケースで使用できます。これにはアカウント復元も含まれます。
- 登録: 認証情報マネージャーのフローでは、「Google でログイン」とは異なり、Google への登録は必要ありません。
プラットフォームのサポート: 認証情報マネージャーのフローは Android 専用のソリューションです。
スコープ: OAuth 2.0 を使用してユーザーデータ(スコープを介したカレンダーやドライブなど)へのアクセスをリクエストできる Google でログインとは異なり、Digital Credentials API は検証済みの ID 属性を取得することのみを目的としています。追加の認可スコープをリクエストするために使用することはできません。
次のステップ
この機能をアプリに実装するには、実装ガイドをご覧ください。