Scopri come integrare le passkey nel tuo servizio.
Anatomia di un sistema di passkey
Un sistema di passkey è composto da alcuni componenti:
- Relying party: nel contesto delle passkey, una relying party (RP in breve) gestisce l'emissione e l'autenticazione delle passkey. La RP deve gestire un client, ovvero un sito web o un'app che crea passkey o esegue l'autenticazione con passkey, e un server per registrare, archiviare e verificare le credenziali generate dalle passkey sul client. Un'applicazione mobile con passkey deve essere associata a un dominio server RP utilizzando il meccanismo di associazione fornito dal sistema operativo, ad esempio Digital Asset Links.
- Authenticator: un dispositivo di elaborazione come un cellulare, un tablet, un laptop o un computer desktop in grado di creare e verificare le passkey utilizzando la funzionalità di blocco schermo offerta dal sistema operativo.
- Gestore delle password: software installato sui dispositivi dell'utente finale che fornisce, memorizza e sincronizza le passkey, ad esempio Gestore delle password di Google.
Flusso di registrazione
Utilizza l'API WebAuthn su un sito web o la libreria Credential Manager su un'app per Android per creare e registrare una nuova passkey.
Per creare una nuova passkey, devi fornire alcuni componenti chiave:
- ID RP: fornisci l'ID della relying party sotto forma di dominio web.
- Informazioni utente: ID utente, nome utente e nome visualizzato.
- Credenziali da escludere: informazioni sulle passkey memorizzate in precedenza per evitare la registrazione duplicata.
- Tipi di passkey: se utilizzare il dispositivo stesso ("autenticatore della piattaforma") come autenticatore o un token di sicurezza rimovibile ("autenticatore roaming / cross-platform"). Inoltre, i chiamanti possono specificare se rendere la credenziale rilevabile in modo che l'utente possa selezionare un account con cui accedere.
Quando un RP richiede la creazione di una passkey e l'utente la verifica con lo sblocco dello schermo, viene creata una nuova passkey e viene restituita una credenziale di chiave pubblica. Invia questo al server e memorizza l'ID credenziale e la chiave pubblica per l'autenticazione futura.
Scopri come creare e registrare una passkey nel dettaglio:
- Sul web: crea una passkey per gli accessi senza password
- Su Android: Autenticazione semplice nelle tue app con le passkey utilizzando l'API Credential Manager
Flusso di autenticazione
Utilizza l'API WebAuthn su un sito web o la libreria Credential Manager su un'app per Android per l'autenticazione con una passkey registrata.
Per eseguire l'autenticazione con una passkey, devi fornire alcuni componenti chiave:
- ID RP: fornisci l'ID della relying party sotto forma di dominio web.
- Sfida: una sfida generata dal server che impedisce gli attacchi di riproduzione.
Quando un RP richiede un'autenticazione con una passkey e l'utente la verifica con lo sblocco dello schermo, viene restituita una credenziale di chiave pubblica. Invialo al server e verifica la firma con la chiave pubblica memorizzata.
Scopri come eseguire l'autenticazione con una passkey in dettaglio:
- Sul web: accedi con una passkey tramite la compilazione automatica dei moduli
- Su Android: Autenticazione semplice nelle tue app con le passkey utilizzando l'API Credential Manager
Integrazioni lato server
Al momento della creazione di una passkey, il server deve fornire parametri chiave come una sfida, informazioni sull'utente, ID credenziali da escludere e altro ancora. Verifica quindi la credenziale della chiave pubblica creata inviata dal client e archivia la chiave pubblica nel database. Per l'autenticazione con una passkey, il server deve convalidare attentamente la credenziale e verificare la firma per consentire all'utente di accedere.
Scopri di più nelle nostre guide lato server:
- Introduzione all'implementazione lato server delle passkey
- Registrazione delle passkey lato server
- Autenticazione con passkey lato server
Meccanismi di autenticazione esistenti (legacy)
Quando supporti le passkey sul tuo servizio esistente, la transizione dal meccanismo di autenticazione precedente, come le password, alle passkey non avverrà in un giorno. Sappiamo che vorresti eliminare il metodo di autenticazione più debole il prima possibile, ma ciò potrebbe causare confusione tra gli utenti o escluderne alcuni. Ti consigliamo di mantenere il metodo di autenticazione esistente per il momento.
Ecco alcuni motivi:
- Esistono utenti in un ambiente incompatibile con le passkey: il supporto delle passkey si sta espandendo su più sistemi operativi e browser, ma gli utenti che utilizzano versioni precedenti non possono ancora utilizzarle.
- L'ecosistema delle passkey deve ancora maturare: l'ecosistema delle passkey è in evoluzione. I dettagli dell'esperienza utente e la compatibilità tecnica tra ambienti diversi possono migliorare.
- Gli utenti potrebbero non essere ancora pronti a utilizzare una passkey: ci sono persone che esitano a provare nuove funzionalità. Man mano che l'ecosistema delle passkey matura, gli utenti capiranno come funzionano le passkey e perché sono utili.
Rivedere il meccanismo di autenticazione esistente
Anche se le passkey rendono l'autenticazione più semplice e sicura, mantenere i vecchi meccanismi è come lasciare una falla. Ti consigliamo di rivedere e migliorare i meccanismi di autenticazione esistenti.
Password
Creare password efficaci e gestirle per ogni sito web è un'attività difficile per gli utenti. Ti consigliamo vivamente di utilizzare un gestore delle password integrato nel sistema o autonomo. Con una piccola modifica al modulo di accesso, i siti web e le app possono fare una grande differenza in termini di sicurezza e di esperienza di accesso. Scopri come apportare queste modifiche:
- Best practice per il modulo di accesso (web)
- Best practice per i moduli di registrazione (web)
- Accedere con l'utente utilizzando Gestore delle credenziali (Android)
Autenticazione a due fattori
Sebbene l'utilizzo di un gestore delle password aiuti gli utenti a gestire le password, non tutti lo utilizzano. La richiesta di un'ulteriore credenziale chiamata password monouso (OTP) è una pratica comune per proteggere questi utenti. In genere i codici OTP vengono forniti tramite email, SMS o un'app di autenticazione come Google Authenticator. Poiché i codici OTP sono in genere un breve testo generato dinamicamente valido solo per un intervallo di tempo limitato, riducono la probabilità di compromissione dell'account. Questi metodi non sono robusti come una passkey, ma sono molto meglio di lasciare agli utenti solo una password.
Se selezioni gli SMS come metodo per inviare un OTP, consulta le seguenti best practice per semplificare l'esperienza utente di inserimento dell'OTP.
- Best practice per il modulo OTP via SMS (web)
- Verifica automatica via SMS con l'API SMS Retriever (Android)
Federazione delle identità
La federazione delle identità è un'altra opzione per consentire agli utenti di accedere in modo sicuro e semplice. Con la federazione delle identità, i siti web e le app possono consentire agli utenti di accedere utilizzando l'identità dell'utente di un provider di identità di terze parti. Ad esempio, Accedi con Google offre ottime conversioni per gli sviluppatori e gli utenti lo trovano più semplice e preferibile all'autenticazione basata su password. La federazione delle identità è complementare alle passkey. È ideale per la registrazione, in quanto il sito web o l'app può ottenere le informazioni di base del profilo dell'utente in un unico passaggio, mentre le passkey sono ideali per semplificare la riautenticazione.
Tieni presente che, dopo l'eliminazione graduale dei cookie di terze parti da parte di Chrome nel 2024, alcuni sistemi di federazione dell'identità potrebbero essere interessati a seconda di come sono strutturati. Per ridurre l'impatto, è in fase di sviluppo una nuova API del browser chiamata API Federated Credential Management (FedCM in breve). Se gestisci un provider di identità, consulta i dettagli e verifica se devi adottare FedCM.
- API Federated Credential Management (web, FedCM)
- Panoramica di Accedi con Google per il web (web, Accedi con Google)
- Panoramica dell'accesso One Tap su Android (Android, accesso One Tap)
"Link magici"
L'accesso con link magico è un metodo di autenticazione in cui un servizio invia un link di accesso via email in modo che l'utente possa fare clic per autenticarsi. Sebbene ciò aiuti gli utenti ad accedere senza ricordare una password, il passaggio tra il browser/l'app e il client di posta elettronica sarà un problema. Inoltre, poiché il meccanismo di autenticazione si basa sull'email, la scarsa sicurezza del provider di posta elettronica può mettere a rischio gli account utente.
Risorse per l'apprendimento
Web
Per integrare le passkey nel tuo sito web, utilizza l'API Web Authentication (WebAuthn). Per saperne di più, consulta le seguenti risorse:
- Creare una passkey per accessi senza password: un articolo che spiega come consentire agli utenti di creare passkey per un sito web.
- Accedere con una passkey tramite il riempimento automatico dei moduli: un articolo che spiega come progettare un accesso senza password con passkey, tenendo conto degli utenti che utilizzano già le password.
- Implementa le passkey con la compilazione automatica dei moduli in un'app web: un codelab che ti consente di imparare a implementare le passkey con la compilazione automatica dei moduli in un'app web per creare un accesso più semplice e sicuro.
- Aiuta gli utenti a gestire le passkey in modo efficace: per sfruttare appieno il potenziale delle passkey, è necessario prestare particolare attenzione all'esperienza utente relativa alla loro gestione. Questo documento delinea le linee guida e le funzionalità opzionali per la progettazione di un sistema di gestione delle passkey intuitivo, sicuro e affidabile.
- Passkey sicure e fluide: un elenco di controllo per l'implementazione: questo elenco di controllo ti guiderà attraverso gli aspetti chiave dell'implementazione delle passkey per ottenere risultati ottimali in termini di esperienza utente.
Android
Per integrare le passkey nella tua app per Android, utilizza la libreria Credential Manager. Per saperne di più, consulta le seguenti risorse:
- Accedi con il tuo utente con Gestore delle credenziali: un articolo che spiega come integrare Gestore delle credenziali su Android. Gestore delle credenziali è un'API Jetpack che supporta più metodi di accesso, come nome utente e password, passkey e soluzioni di accesso federato (come Accedi con Google) in un'unica API
- Aggiungere l'autenticazione senza problemi alle tue app con le passkey utilizzando l'API Credential Manager: un articolo che spiega come integrare le passkey tramite Credential Manager su Android.
- Scopri come semplificare i percorsi di autenticazione utilizzando l'API Credential Manager nella tua app Android: scopri come implementare l'API Credential Manager per fornire un'autenticazione semplice e sicura nella tua app utilizzando passkey o password.
- App di esempio di Credential Manager: Un codice campione che esegue Credential Manager e supporta le passkey.
- Integrare Credential Manager con la soluzione del tuo provider di credenziali | Sviluppatori Android
UX
Scopri i suggerimenti per l'esperienza utente con le passkey: