Guida per gli sviluppatori relativa alle passkey per affidarsi alle parti

Scopri come integrare le passkey nel tuo servizio.

Anatomia di un sistema passkey

Un sistema di passkey è costituito da alcuni componenti:

  • Affidabilità: nel contesto della passkey, una parte che fa affidamento (RP in breve) gestisce l'emissione e l'autenticazione della passkey. L'RP deve utilizzare un client (un sito web o un'app che crea passkey o autentica con le passkey) e un server per la registrazione, l'archiviazione e la verifica delle credenziali generate dalle passkey sul client. Un'applicazione mobile passkey deve essere associata a un dominio server di RP utilizzando il meccanismo di associazione fornito dal sistema operativo, ad esempio Link agli asset digitali.
  • Autenticatore: un dispositivo di elaborazione come un telefono cellulare, un tablet, un laptop o un computer desktop che può 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, 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 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 fiduciaria 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: indica se utilizzare il dispositivo stesso ("autenticatore della piattaforma") come autenticatore o un token di sicurezza rimovibile ("utenti di più piattaforme e roaming / autenticazione). Inoltre, i chiamanti possono specificare se rendere la credenziale rilevabile in modo che l'utente possa selezionare un account con cui effettuare l'accesso.

Quando un RP richiede di creare una passkey e l'utente la verifica con uno sblocco dello schermo, viene creata una nuova passkey e vengono restituite le credenziali di una chiave pubblica. Inviala al server e archivia l'ID credenziale e la chiave pubblica per l'autenticazione futura.

Flusso di registrazione

Scopri come creare e registrare una passkey in dettaglio:

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, devi fornire un paio di componenti chiave:

  • ID RP: fornisci l'ID della parte fiduciaria sotto forma di dominio web.
  • Sfida: una sfida generata dal server che impedisce gli attacchi di replica.

Quando un RP richiede l'autenticazione con una passkey e l'utente la verifica con uno sblocco dello schermo, viene restituita una credenziale di chiave pubblica. Inviala al server e verifica la firma con la chiave pubblica archiviata.

Flusso di autenticazione

Scopri come eseguire l'autenticazione nel dettaglio con una passkey:

Integrazioni lato server

Durante la creazione di una passkey, il server deve fornire parametri chiave quali Challenge, Informazioni utente, ID credenziali da escludere e altro ancora. Verifica quindi la credenziale di chiave pubblica creata inviata dal client e la archivia 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, la creazione di un server passkey in autonomia non è efficace in tempo e può causare bug che potrebbero portare a 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 fornite in crowdsourcing. Per trovare una soluzione, FIDO Alliance dispone di un elenco di server FIDO2 certificati.

Meccanismi di autenticazione esistenti (legacy)

Quando supporti le passkey sul tuo servizio esistente, la transizione dal precedente meccanismo di autenticazione, come le password e le passkey, non avverrà in un giorno. Sappiamo che sei incline a eliminare il prima possibile il metodo di autenticazione più debole, ma che potrebbe causare confusione o lasciare alcuni utenti indietro. Per il momento ti consigliamo di mantenere il metodo di autenticazione esistente.

Ecco alcuni motivi:

  • In un ambiente incompatibile con le passkey ci sono utenti: il supporto delle passkey è ampiamente esteso su più sistemi operativi e browser, ma coloro che usano versioni precedenti non sono ancora in grado di utilizzarle.
  • L'ecosistema passkey è ancora maturo: l'ecosistema passkey si sta evolvendo. I dettagli dell'esperienza utente e la compatibilità tecnica tra ambienti diversi possono migliorare.
  • Gli utenti potrebbero non essere ancora pronti a vivere con una passkey: alcune persone sono ancora scettiche nei confronti di qualcosa di nuovo. Con la maturazione dell'ecosistema delle passkey, si fa un'idea di come funzionano le passkey e perché sono utili per loro.

Rivedi il tuo 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 sono attività complesse per gli utenti. È vivamente consigliato utilizzare un gestore delle password integrato nel sistema o uno autonomo. Se apporti una piccola modifica al modulo di accesso, i siti web e le app possono fare un'enorme differenza per la sua sicurezza e la sua esperienza di accesso. Scopri come apportare queste modifiche:

Autenticazione a due fattori

Anche se l'utilizzo di un gestore delle password aiuta gli utenti nella gestione delle password, non tutti gli utenti le usano. Chiedere una credenziale aggiuntiva chiamata password unica (OTP) è una pratica comune per proteggere questi utenti. In genere le OTP vengono fornite tramite un'email, un SMS o un'app di autenticazione come Google Authenticator. Poiché le OTP sono in genere un testo breve generato dinamicamente solo per un intervallo di tempo limitato, riduce la probabilità di compromissione dell'account. Questi metodi non sono efficaci come una passkey, ma sono molto migliori che lasciare gli utenti soltanto con una password.

Se selezioni un SMS come metodo per pubblicare una OTP, consulta le best practice riportate di seguito per semplificare l'esperienza utente.

Federazione delle identità

La federazione delle identità è un'altra opzione che consente agli utenti di accedere in modo facile 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, la funzionalità Accedi con Google consente agli sviluppatori di ottenere grandi conversioni e gli utenti trovano più facile e preferibile l'autenticazione basata su password. La federazione delle identità è complementare alle passkey. È ottimo per la registrazione, in quanto il sito web o l'app può ottenere informazioni di base del profilo dell'utente in un solo passaggio, mentre le passkey sono ottime per semplificare la riautenticazione.

Tieni presente che, dopo che Chrome avrà 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 corso di sviluppo una nuova API del browser denominata Federated Credential Management API (FedCM). Se gestisci un provider di identità, controlla i dettagli e controlla se devi adottare FedCM.

L'accesso tramite link magico è un metodo di autenticazione in cui un servizio fornisce un link di accesso via email per consentire all'utente di fare clic per autenticarsi. Sebbene in questo modo gli utenti possano accedere senza ricordare una password, passare dal browser/all'app al client email non 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 sul 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 Android, utilizza la libreria di Gestore delle credenziali. Per saperne di più, consulta le risorse seguenti: