Informazioni su Ripristina credenziali

La funzionalità Restore Credentials di Gestore delle credenziali consente agli utenti di ripristinare automaticamente i propri account dell'app e di accedere alla prima apertura di un'app dopo la configurazione di un nuovo dispositivo. Una credenziale di ripristino, nota anche come chiave di ripristino, è un tipo di credenziale che può essere salvata localmente o di cui è possibile eseguire il backup presso un provider cloud, per poi essere utilizzata per eseguire il provisioning dell'accesso sul nuovo dispositivo dell'utente.

Questa guida presuppone che tu abbia familiarità con i seguenti concetti:

Vantaggi

I vantaggi della funzionalità di ripristino delle credenziali includono:

  • Esperienza utente fluida: gli utenti possono iniziare a utilizzare l'app immediatamente sul nuovo dispositivo senza dover eseguire l'accesso manualmente.
  • Maggiore fidelizzazione utenti e riduzione dei costi di assistenza: l'accesso automatico durante gli upgrade dei dispositivi impedisce l'abbandono degli utenti e riduce in modo significativo i costi di assistenza associati agli account abbandonati e ai flussi di recupero della password.
  • Maggiore sicurezza: il ripristino silenzioso delle credenziali elimina le schermate di accesso aggiuntive e i prompt di recupero dell'account manuale, riducendo la vulnerabilità agli attacchi di phishing e furto di credenziali.
  • Coinvolgimento immediato: puoi coinvolgere gli utenti con notifiche o altri prompt non appena iniziano a utilizzare il nuovo dispositivo.
  • Supporto di più meccanismi di autenticazione: funziona con più meccanismi di autenticazione, tra cui:

Panoramica della procedura

Le sezioni seguenti descrivono la procedura richiesta su ciascun dispositivo:

Sul dispositivo precedente

Genera la chiave di ripristino dopo che l'utente si è autenticato nella tua app, subito dopo l'accesso e durante un avvio successivo dell'app se ha già eseguito l'accesso. Il servizio di backup di Android memorizza automaticamente la chiave di ripristino generata sul dispositivo e, in base alle impostazioni di backup dell'utente, la salva anche nel cloud.

Affinché un utente possa eseguire il backup sul cloud, deve soddisfare i seguenti requisiti:

  • Aver eseguito l'accesso al proprio Account Google.
  • Avere il backup dei dati di Android attivato. Per saperne di più, consulta Backup dei dati.
  • Avere un meccanismo di sblocco dello schermo configurato, ad esempio sequenza, PIN, password o dati biometrici.

Se queste condizioni non vengono soddisfatte, viene generato un errore E2eeUnavailableException. In questo caso, intercetta l'eccezione e chiama di nuovo createCredential() con isCloudBackupEnabled = false in modo che la chiave di ripristino venga comunque salvata localmente per i trasferimenti da dispositivo a dispositivo (D2D).

Sul nuovo dispositivo

Quando l'utente configura il nuovo dispositivo, Restore Credentials funziona in background durante la procedura di configurazione del dispositivo. Gli utenti possono scegliere di ripristinare i dati da una delle seguenti opzioni:

  • Da un backup sul cloud: se viene utilizzato un backup sul cloud, la chiave di ripristino viene scaricata con i dati dell'app sul nuovo dispositivo.
  • Utilizzando un trasferimento da dispositivo a dispositivo: quando gli utenti trasferiscono i dati direttamente tra i loro dispositivi precedenti e nuovi durante la configurazione, la chiave di ripristino viene spostata dal dispositivo precedente a quello nuovo tramite un cavo USB o un trasferimento wireless Wi-Fi da dispositivo a dispositivo (D2D).

Una volta che la chiave di ripristino è disponibile sul nuovo dispositivo, puoi utilizzarla per far accedere l'utente.

Il flusso per ripristinare le credenziali da un vecchio dispositivo a uno nuovo non richiede l'interazione dell'utente
Figura 1: panoramica della procedura di ripristino delle credenziali

Associa Restore Credentials al backup dei dati delle app

Oltre a connettere l'utente, l'app deve trasferire le impostazioni locali, le bozze offline e le preferenze del tema scuro dell'utente per offrire una transizione completa e senza problemi:

  • Ripristina l'identità: utilizza Restore Credentials per autenticare nuovamente l'accesso all'account in modo invisibile.
  • Ripristina stato e preferenze: configura il backup automatico (dataExtractionRules) per conservare le preferenze utente, i database locali e lo stato dell'app durante i trasferimenti di dispositivi tramite cloud e cavo. Escludi i token di autenticazione non elaborati, il testo cifrato di Android Keystore associato all'hardware e l'indicatore has_synced_restore_credential locale in modo che lo stato della sessione non aggiornato non venga copiato sul nuovo dispositivo.

Gestire più profili di sistema e account di app

Quando implementi la funzionalità Restore Credentials, tieni presente i seguenti vincoli relativi alle app multi-account e ai profili a livello di sistema.

App con più account con accesso eseguito

Alcune app consentono agli utenti di passare da un account attivo all'altro (ad esempio, un account email personale e uno di lavoro all'interno della stessa app). Restore Credentials supporta un solo account per app. Se un utente ha eseguito l'accesso a più account, devi selezionare un solo account per cui creare la chiave di ripristino. In genere, dovrebbe essere l'account principale o quello utilizzato più di recente.

Dispositivi con più profili di sistema

Sui dispositivi configurati con profili di sistema separati (ad esempio un dispositivo aziendale con un profilo di lavoro gestito e un profilo personale), la chiave di ripristino è disponibile per il profilo principale configurato durante l'onboarding iniziale del dispositivo. Se una policy IT aziendale disattiva il backup cross-device o il trasferimento delle credenziali all'interno di un profilo di lavoro gestito, createCredential() o getCredential() potrebbe non restituire alcuna credenziale e la tua app dovrebbe tornare all'accesso standard.

Limitazioni

Restore Credentials è supportato su smartphone, pieghevoli e tablet Android con Android 9 (livello API 28) o versioni successive con Google Play Services versione 242200000 o successive. Il ripristino tra categorie di dispositivi (ad esempio il ripristino da uno smartphone a Wear OS, Android TV, Android Auto, Android XR o ChromeOS) non è supportato. Consulta Esegui l'autenticazione su diversi fattori di forma.

Passaggi successivi

  • Implementa Restore Credentials: crea, recupera e cancella le chiavi di ripristino nella tua app per Android utilizzando Gestore delle credenziali.
  • Testa Restore Credentials: verifica i flussi di ripristino cloud e device-to-device in Android Studio o con i test di backup JUnit 5 automatici.
  • Skill Restore Credentials per Android: utilizza la CLI Android per guidare gli agenti di programmazione attraverso un'integrazione di Restore Credentials a due livelli.