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 è costituito da alcuni componenti:

  • Parte coinvolta: nel contesto della passkey, un richiedente (in breve) gestisce l'emissione e l'autenticazione della passkey. La parte soggetta a limitazioni deve gestire un client (un sito web o un'app che crea passkey o esegue l'autenticazione con le 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 al dominio di un server RP utilizzando il meccanismo di associazione fornito dal sistema operativo, ad esempio Digital AssetLinks.
  • Authenticator: un dispositivo di elaborazione come cellulare, tablet, laptop o computer desktop in grado di creare e verificare le passkey usando la funzionalità di blocco schermo offerta dal sistema operativo.
  • Gestore delle password: software installato sul dispositivo o 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 Credential Manager su un'app Android per creare e registrare una nuova passkey.

Per creare una nuova passkey, devi fornire alcuni componenti chiave:

  • ID parte soggetta a limitazioni: fornisci l'ID del richiedente 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 impedire la registrazione duplicata.
  • Tipi di passkey: indica se utilizzare il dispositivo stesso ("autenticatore della 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 una 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 memorizza 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 eseguire l'autenticazione con una passkey, devi fornire alcuni componenti chiave:

  • ID parte soggetta a limitazioni: fornisci l'ID del richiedente sotto forma di dominio web.
  • Sfida: una challenge generata dal server che impedisce gli attacchi ripetuti.

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

Flusso di autenticazione

Scopri nel dettaglio come eseguire l'autenticazione 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. Quindi verifica 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)

Se 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 saresti più propenso a eliminare il più presto possibile il metodo di autenticazione più debole, ma ciò potrebbe creare confusione negli utenti o lasciare indietro alcuni utenti. Per il momento ti consigliamo di mantenere il metodo di autenticazione esistente.

Ecco alcuni motivi:

  • Esistono utenti in un ambiente non compatibile con le passkey: il supporto delle passkey si sta espandendo ampiamente su diversi sistemi operativi e browser, ma coloro 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'UX e la compatibilità tecnica tra i diversi ambienti possono migliorare.
  • Gli utenti potrebbero non essere ancora pronti a utilizzare una passkey: ci sono persone che esitano a scoprire nuove cose. Man mano che l'ecosistema delle passkey matura, capiscono come funzionano 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 vuoto. Ti consigliamo di rivedere e migliorare i tuoi meccanismi di autenticazione esistenti.

Password

Creare password efficaci e gestirle per ogni sito web sono operazioni complesse per gli utenti. Ti consigliamo vivamente di utilizzare un gestore delle password integrato nel sistema o uno autonomo. Apportando una piccola modifica al modulo di accesso, siti web e app possono fare un'enorme differenza in termini di sicurezza e esperienza di accesso. Scopri come apportare queste modifiche:

Autenticazione a due fattori

Sebbene l'uso di un gestore delle password aiuti gli utenti a gestire le password, non tutti gli utenti le usano. Richiedere un'ulteriore credenziale denominata password monouso (OTP) è una pratica comune per proteggere questi utenti. Le OTP vengono in genere fornite tramite email, SMS o un'app di autenticazione come Google Authenticator. Poiché le OTP sono di solito un testo breve generato dinamicamente e valido solo per un intervallo di tempo limitato, riduce la probabilità di compromissioni dell'account. Questi metodi non sono efficaci quanto una passkey, ma sono molto meglio che lasciare agli utenti solo una password.

Se selezioni la modalità di invio tramite SMS per una OTP, segui le best practice riportate di seguito per semplificare l'esperienza utente di inserimento dell'OTP.

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, Accedi con Google offre grandi conversioni per gli sviluppatori e gli utenti lo trovano più facile e preferibile rispetto all'autenticazione basata su password. La federazione delle identità è complementare alle passkey. È un'ottima soluzione per la registrazione, in quanto il sito web o l'app possono ottenere informazioni di base del profilo dell'utente in un solo passaggio, mentre le passkey sono perfette per semplificare la riautenticazione.

Tieni presente che, una volta 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 sono stati creati. Per mitigare l'impatto, è in fase di sviluppo una nuova API browser chiamata Federated Credential Management API (in breve FedCM). Se gestisci un provider di identità, dai un'occhiata ai dettagli e scopri se dovresti adottare FedCM.

L'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 sul link per autenticarsi. Anche se questo aiuta gli utenti ad accedere senza ricordare una password, il passaggio tra il browser o 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 relativi alle passkey: