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.
Scopri nel dettaglio come creare e registrare una passkey:
- Sul web: Crea una passkey per gli accessi senza password
- Su Android: Integrazione dell'autenticazione perfetta nelle app con passkey con 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 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.
Scopri nel dettaglio come eseguire l'autenticazione con una passkey:
- Sul web: accedere con una passkey tramite la compilazione automatica dei moduli
- Su Android: Integrazione dell'autenticazione perfetta nelle app con passkey con 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. 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:
- Introduzione all'implementazione delle passkey lato server
- Registrazione tramite passkey lato server
- Autenticazione tramite passkey 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:
- Best practice per il modulo di accesso (Web)
- Best practice per i moduli di registrazione (Web)
- Accedere all'utente con Gestore delle credenziali (Android)
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.
- API Federated Credential Management (web, FedCM)
- Panoramica di Accedi con Google per il web (Web, Accedi con Google)
- Panoramica dell'accesso con un tocco su Android (Android, accesso con un tocco)
"Link magici"
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:
- 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 descrive come l'accesso senza password con passkey deve essere progettato per accogliere gli utenti che utilizzano password esistenti.
- Implementa 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 creare un accesso più semplice e sicuro.
- Scopri come implementare le passkey con la compilazione automatica dei moduli in un'app web: un video di 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 rendere più semplice e sicuro l'accesso.
- 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:
- Accedere all'utente con Gestore delle credenziali: un articolo che descrive come integrare Gestore delle credenziali su Android. Credential Manager è un'API Jetpack che supporta più metodi di accesso, come 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 Credential Manager: 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 tramite passkey o password.
- App di esempio Gestore delle credenziali: un codice di esempio che esegue Gestore delle credenziali che ospita le passkey.
- Integra Gestore delle credenziali con la tua soluzione del provider di credenziali | Android Sviluppatori
UX
Scopri i consigli per l'esperienza utente relativi alle passkey: