認証情報マネージャーの Restore Credentials 機能を使用すると、ユーザーは新しいデバイスをセットアップした後にアプリを初めて開いたときに、アプリのアカウントを自動的に復元してログインできます。復元認証情報(復元キーとも呼ばれます)は、ローカルに保存するか、クラウド プロバイダにバックアップして、ユーザーの新しいデバイスでアクセスをプロビジョニングするために使用できる認証情報の一種です。
このガイドでは、次のコンセプトを理解していることを前提としています。
利点
Restore Credentials 機能のメリットは次のとおりです。
- シームレスなユーザー エクスペリエンス: ユーザーは、手動でログインすることなく、新しいデバイスでアプリをすぐに使用できます。
- ユーザー維持率の向上とサポート費用の削減: デバイスのアップグレード中に自動ログインを行うことで、ユーザーの離脱を防ぎ、アカウントの放棄やパスワード復元フローに関連するサポート費用を大幅に削減できます。
- セキュリティの強化: サイレント認証情報の復元により、余分なログイン画面や手動のアカウント復元プロンプトが不要になり、フィッシングや認証情報の盗難攻撃に対する脆弱性が軽減されます。
- 即時のエンゲージメント: ユーザーが新しいデバイスを使い始めるとすぐに、通知やその他のプロンプトでユーザーに働きかけることができます。
- 複数の認証メカニズムのサポート: 次のような複数の認証メカニズムに対応しています。
プロセスの概要
以降のセクションでは、各デバイスで必要なプロセスについて説明します。
以前のデバイスでの操作
ユーザーがアプリに認証された後、ログイン直後、およびログイン済みの場合はその後のアプリ起動時に、復元キーを生成します。Android バックアップ サービスは、生成された復元キーをデバイスに自動的に保存し、ユーザーのバックアップ設定に基づいてクラウドにも保存します。
ユーザーがクラウドにバックアップできるようにするには、次の要件を満たす必要があります。
- Google アカウントにログインしていること。
- Android のデータ バックアップが有効になっている。詳細については、データのバックアップをご覧ください。
- パターン、PIN、パスワード、生体認証などの画面ロック解除メカニズムが設定されている。
これらの条件が満たされない場合は、E2eeUnavailableException がスローされます。この場合は、例外をキャッチして isCloudBackupEnabled = false を指定して createCredential() を再度呼び出し、デバイス間(D2D)転送用に復元キーがローカルに保存されるようにします。
新しいデバイスでの操作
ユーザーが新しいデバイスをセットアップすると、デバイスのセットアップ プロセス中に Restore Credentials がバックグラウンドで自動的に動作します。ユーザーは、次のいずれかのオプションからデータを復元できます。
- クラウド バックアップから: クラウド バックアップを使用する場合、復元キーはアプリデータとともに新しいデバイスにダウンロードされます。
- デバイス間の移行を使用する: セットアップ中に古いデバイスと新しいデバイスの間でデータを直接移行すると、復元キーは USB ケーブルまたはワイヤレス Wi-Fi デバイス間(D2D)移行を介して古いデバイスから新しいデバイスに移動します。
新しいデバイスで復元キーが利用可能になったら、そのキーを使用してユーザーをログインさせることができます。
Restore Credentials とアプリデータのバックアップを組み合わせる
アプリは、ユーザーのログインに加えて、ユーザーのローカル設定、オフラインの下書き、ダークモードの設定を転送して、デバイスの移行を完全に、かつスムーズに行う必要があります。
- ID の復元: Restore Credentials を使用して、アカウント アクセスをバックグラウンドで再認証します。
- 状態と設定を復元する: 自動バックアップ(
dataExtractionRules)を構成して、クラウドとケーブル デバイスの転送全体でユーザー設定、ローカル データベース、アプリの状態を保持します。未加工の認証トークン、ハードウェアにバインドされた Android Keystore 暗号テキスト、ローカルのhas_synced_restore_credentialマーカーを除外して、古いセッション状態が新しいデバイスにコピーされないようにします。
複数のシステム プロフィールとアプリ アカウントを処理する
Restore Credentials 機能を実装する際は、マルチアカウント アプリとシステムレベルのプロファイルに関する次の制約を考慮してください。
マルチログインしているアプリ
アプリによっては、ユーザーが複数の有効なアカウント(同じアプリ内の個人用メール アカウントと仕事用メール アカウントなど)を切り替えることができます。Restore Credentials は、アプリごとに 1 つのアカウントのみをサポートします。ユーザーが複数のアカウントにログインしている場合は、復元キーを作成するアカウントを 1 つだけ選択する必要があります。通常、これはメインのアカウントまたは最近使用したアカウントです。
複数のシステム プロファイルを持つデバイス
個別のシステム プロファイルが設定されたデバイス(管理対象の仕事用プロファイルと個人用プロファイルが設定された企業デバイスなど)では、デバイスの初期オンボーディング時に設定されたプライマリ プロファイルで復元キーを使用できます。企業の IT ポリシーで、管理対象の仕事用プロファイル内のクロスデバイス バックアップまたは認証情報の転送が無効になっている場合、createCredential() または getCredential() は認証情報を返さないことがあり、アプリは標準のログインにフォールバックする必要があります。
制限事項
Restore Credentials は、Android 9(API レベル 28)以降を搭載し、Google Play 開発者サービス バージョン 242200000 以降がインストールされている Android スマートフォン、折りたたみ式デバイス、タブレットでサポートされています。デバイス カテゴリをまたぐ復元(スマートフォンから Wear OS、Android TV、Android Auto、Android XR、ChromeOS への復元など)はサポートされていません。フォーム ファクタをまたぐ認証をご覧ください。
次のステップ
- 認証情報の復元を実装する: 認証情報マネージャーを使用して、Android アプリで復元キーを作成、取得、消去します。
- Restore Credentials をテストする: Android Studio または自動化された JUnit 5 バックアップ テストで、クラウドとデバイス間の復元フローを検証します。
- Restore Credentials Android スキル: Android CLI スキルを使用して、コーディング エージェントに 2 層の Restore Credentials 統合を案内します。