Guida per gli sviluppatori di passkey per i soggetti affidabili

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.

Flusso di registrazione

Scopri come creare e registrare una passkey nel dettaglio:

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.

Flusso di autenticazione

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

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:

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:

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.

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.

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:

Android

Per integrare le passkey nella tua app per Android, utilizza la libreria Credential Manager. Per saperne di più, consulta le seguenti risorse:

UX

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