Guida per gli sviluppatori relativa alle passkey per affidarsi alle parti

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.

Flusso di registrazione

Scopri nel dettaglio come creare e registrare una passkey:

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.

Flusso di autenticazione

Scopri nel dettaglio come autenticarti con una passkey:

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:

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.

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.

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:

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:

UX

Scopri i consigli per l'esperienza utente con le passkey: