Scopri come integrare le passkey nel tuo servizio.
Anatomia di un sistema di passkey
Un sistema di passkey è costituito da alcuni componenti:
- Parte fante: nel contesto delle passkey, un fornitore di fiducia (RP in breve) gestisce l'emissione e l'autenticazione delle passkey. Il RP deve gestire un client, un sito web o un'app che crea passkey o autenticazioni con passkey, e un server per la registrazione, l'archiviazione e la verifica delle credenziali generate dalle passkey sul client. Un'applicazione mobile con passkey deve essere associata a un dominio del 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 gestisce, archivia 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 di Gestore delle credenziali su un'app Android per creare e registrare una nuova passkey.
Per creare una nuova passkey, devi fornire alcuni componenti chiave:
- ID RP: fornisci l'ID della parte attendibile sotto forma di dominio web.
- Informazioni utente: l'ID utente, il nome utente e un nome visualizzato.
- Credenziali da escludere: informazioni sulle passkey memorizzate in precedenza per evitare registrazioni duplicate.
- Tipi di passkey: indica se utilizzare il dispositivo stesso ("autenticatore di piattaforma") come autenticatore o un token di sicurezza rimovibile ("cross-platform / roaming authenticator"). Inoltre, i chiamanti possono specificare se rendere rilevabili le credenziali 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 uno sblocco dello schermo, viene creata una nuova passkey e viene restituita una credenziale di chiave pubblica. Inviala al server e archivia l'ID credenziale e la chiave pubblica per l'autenticazione futura.
Scopri nel dettaglio come creare e registrare una passkey:
- Sul Web: crea una passkey per gli accessi senza password
- Su Android: integrazione dell'autenticazione semplificata nelle tue app con passkey usando l'API Credential Manager
Flusso di autenticazione
Utilizza l'API WebAuthn su un sito web o la libreria di Gestore delle credenziali su un'app Android per eseguire l'autenticazione con una passkey registrata.
Per l'autenticazione con una passkey, sono necessari un paio di componenti chiave:
- ID RP: fornisci l'ID della parte attendibile sotto forma di dominio web.
- Sfida: una challenge generata dal server che impedisce gli attacchi di tipo replay.
Quando un RP richiede un'autenticazione con una passkey e l'utente la verifica con uno sblocco schermo, viene restituita una credenziale di chiave pubblica. Inviala al server e verifica la firma con la chiave pubblica archiviata.
Scopri nel dettaglio come autenticarti con una passkey:
- Sul Web: accedi con una passkey tramite la compilazione automatica dei moduli
- Su Android: integrazione dell'autenticazione semplificata nelle tue app con passkey usando l'API Credential Manager
Integrazioni lato server
Al momento della creazione di una passkey, il server deve fornire parametri chiave come una verifica, informazioni utente, ID credenziali da escludere e altro ancora. In seguito, verifica la credenziale di 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.
Tuttavia, creare autonomamente un server di passkey non è efficace in tempo e potrebbe causare bug che potrebbero causare un incidente di sicurezza critico. Ti consigliamo di utilizzare una delle librerie open source disponibili o una soluzione che possa aiutarti ad accelerare l'integrazione delle passkey.
Per trovare l'elenco delle librerie open source, consulta la sezione Librerie di passkeys.dev o un elenco di librerie WebAuthn basato sul crowdsourcing. Per trovare una soluzione, FIDO Alliance dispone di un elenco di server FIDO2 certificati.
Meccanismi di autenticazione (legacy) esistenti
Se supporti le passkey nel tuo servizio esistente, la transizione dal meccanismo di autenticazione meno recente, come le password, alle passkey non verrà eseguita entro un giorno. Sappiamo che saresti disposto a eliminare il più presto possibile il metodo di autenticazione più debole, ma questo potrebbe causare confusione negli utenti o tralasciarne alcuni. Ti consigliamo di mantenere il metodo di autenticazione esistente per il momento.
Ecco alcuni dei motivi:
- Alcuni utenti in un ambiente non compatibile con le passkey: il supporto delle passkey si sta espandendo ampiamente su più sistemi operativi e browser, ma gli utenti che utilizzano versioni precedenti non possono ancora utilizzare le passkey.
- L'ecosistema delle passkey non è ancora maturo: l'ecosistema delle passkey si sta evolvendo. I dettagli dell'esperienza utente e la compatibilità tecnica tra i diversi ambienti possono migliorare.
- Gli utenti potrebbero non essere ancora pronti a utilizzare una passkey: alcune persone sono riluttanti a voler scoprire nuove cose. Man mano che l'ecosistema di passkey cresce, capiranno come funzionano le passkey e perché sono utili.
Rivedi il meccanismo di autenticazione esistente
Mentre le passkey rendono l'autenticazione più semplice e sicura, mantenere i vecchi meccanismi è come lasciare un buco. Ti consigliamo di rivedere e migliorare i tuoi meccanismi di autenticazione esistenti.
Password
Creare password efficaci e gestirle per ogni sito web è un'attività complessa per gli utenti. È vivamente consigliato l'utilizzo di un gestore delle password integrato nel sistema o a uno autonomo. Apportando una piccola modifica al modulo di accesso, siti web e app possono fare un'enorme differenza per la sicurezza e l'esperienza di accesso. Verifica come apportare queste modifiche:
- Best practice per il modulo di accesso (Web)
- Best practice per i moduli di registrazione (Web)
- Fai accedere l'utente con Gestore delle credenziali (Android)
Autenticazione a due fattori
Sebbene l'utilizzo di un gestore delle password aiuti gli utenti a gestirle, non tutti gli utenti le usano. Per proteggere questi utenti, è prassi comune richiedere una credenziale aggiuntiva denominata password unica (OTP). Le OTP vengono in genere fornite tramite un'email, un SMS o un'app di autenticazione come Google Authenticator. Poiché le OTP sono in genere un breve testo generato dinamicamente e valido solo per un intervallo di tempo limitato, riduce la probabilità di compromissione dell'account. Questi metodi non sono efficaci quanto una passkey, ma sono molto migliori di lasciare agli utenti solo una password.
Se selezioni SMS come metodo di invio di una OTP, dai un'occhiata alle seguenti best practice per semplificare l'esperienza utente in merito all'inserimento della OTP.
- Best practice per i moduli OTP tramite SMS (Web)
- Verifica automatica 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 semplice e sicuro. Con la federazione delle identità, i siti web e le app possono consentire agli utenti di accedere utilizzando l'identità dell'utente da un provider di identità di terze parti. Ad esempio, Accedi con Google offre grandi conversioni per gli sviluppatori e gli utenti trovano più semplice e preferibile l'autenticazione basata su password. La federazione delle identità è complementare alle passkey. È la soluzione ideale per registrarsi, in quanto il sito web o l'app può ottenere le informazioni di base del profilo dell'utente in un solo passaggio, mentre le passkey sono perfette per semplificare la riautenticazione.
Tieni presente che, dopo che Chrome ha eliminato gradualmente i cookie di terze parti nel 2024, alcuni sistemi di federazione delle identità potrebbero essere interessati a seconda di come vengono creati. Per mitigare l'impatto, è in fase di sviluppo una nuova API browser chiamata API Federated Credential Management (FedCM, in breve). Se gestisci un provider di identità, consulta i dettagli e scopri se dovresti adottare FedCM.
- API Federated Credential Management (Web, FedCM)
- Panoramica di Accedi con Google per il web (Web, Accedi con Google)
- Panoramica dell'accesso con One Tap su Android (Android, accesso One Tap)
"Link magici"
Accesso tramite link magico è un metodo di autenticazione in cui un servizio fornisce un link di accesso su un'email in modo che l'utente possa fare clic per autenticarsi. Anche se questo aiuta gli utenti ad accedere senza ricordare la password, il passaggio tra il browser/l'app e il client di posta sarà un problema. Inoltre, poiché il meccanismo di autenticazione si basa sull'email, la debole sicurezza del provider email può mettere a rischio gli account degli utenti.
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 gli accessi senza password: un articolo che spiega come consentire agli utenti di creare passkey per un sito web.
- Accedere con una passkey tramite la compilazione automatica dei moduli: un articolo che spiega come progettare un accesso senza password con passkey per consentire gli utenti con password esistenti.
- Implementare 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 rendere l'accesso più semplice e sicuro.
- Scopri come implementare le passkey con la compilazione automatica dei moduli in un'app web: un video workshop che illustra il codelab. Implementare le passkey con la compilazione automatica dei moduli in un'app web per implementare le passkey con la compilazione automatica dei moduli in un'app web per creare un accesso più semplice e sicuro.
- Crea la tua prima app WebAuthn: un codelab che ti consente di imparare a creare una semplice funzionalità di riautenticazione con una passkey sul tuo sito web.
Android
Per integrare le passkey nella tua app per Android, utilizza la libreria di Gestore delle credenziali. Per saperne di più, consulta le seguenti risorse:
- Fai accedere l'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, tra cui nome utente e password, passkey e soluzioni di accesso federato (come Accedi con Google) in un'unica API
- Integrazione delle passkey nelle app con le passkey mediante l'API Gestore delle credenziali: Un articolo che spiega come integrare le passkey tramite Gestore delle credenziali 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 sicura e senza interruzioni nella tua app utilizzando passkey o password.
- App di esempio di Gestore delle credenziali: un codice di esempio che esegue Gestore delle credenziali che ospita le passkey.
- Integrazione di Gestore delle credenziali con la soluzione del tuo provider di credenziali | Sviluppatori Android
UX
Scopri i consigli per l'esperienza utente con le passkey: