Scopri cosa sono i suggerimenti per le credenziali a chiave pubblica di WebAuthn (o User-Agent Hints), come funzionano, dove sono disponibili e quali sono le limitazioni e i casi d'uso consigliati.
Vincent
Created: August 8, 2025
Updated: August 8, 2025
See the original blog version in English here.
Our mission is to make the Internet a safer place, and the new login standard passkeys provides a superior solution to achieve that. That's why we want to help you understand passkeys and its characteristics better.
WebAuthn e le passkey stanno guadagnando sempre più slancio e adozione. Anche dal punto di vista tecnico, lo standard WebAuthn si sta evolvendo rapidamente. I suggerimenti per le credenziali a chiave pubblica di WebAuthn (chiamati anche User-agent Hints) sono l'ultima aggiunta all'API Web Authentication e mirano a migliorare il modo in cui gli sviluppatori implementano l'autenticazione con passkey nelle loro applicazioni.
In questo articolo, risponderemo alle seguenti domande:
Iniziamo esaminando prima le motivazioni.
Oggi esistono diversi luoghi in cui è possibile creare e archiviare una passkey:
Per l'utente, questo può offrire flessibilità e libertà di scelta. Tuttavia, alcune applicazioni e scenari richiedono di limitare alcune di queste opzioni, ad esempio se si desidera consentire solo le chiavi di sicurezza hardware a causa di requisiti di sicurezza più elevati.
Per influenzare la creazione e l'archiviazione delle passkey, avevamo la proprietà authenticatorAttachment
.
La proprietà authenticatorAttachment
consente alle relying party di limitare dove può essere creata la passkey.
platform
indica un authenticator integrato nel dispositivo che esegue WebAuthn. WebAuthn comunica con esso utilizzando metodi di trasporto specifici di quella piattaforma, come le API specifiche della piattaforma. Una credenziale a chiave pubblica collegata a un authenticator di piattaforma è chiamata credenziale di piattaforma. Dall'elenco precedente, i seguenti gestori di credenziali / posizioni potrebbero archiviare credenziali di piattaforma:
Windows 11 e Chrome:
macOS 15 (Sequoia) e Chrome:
Facendo clic su Annulla, appare la seguente finestra modale:
macOS 15 (Sequoia) e Safari:
cross-platform
indica un authenticator esterno al dispositivo che esegue WebAuthn (authenticator roaming) perché può essere utilizzato su più dispositivi. WebAuthn interagisce con esso utilizzando protocolli di trasporto multipiattaforma come Bluetooth o NFC. Una credenziale a chiave pubblica associata a un authenticator roaming è chiamata credenziale roaming. Dall'elenco precedente, i seguenti gestori di credenziali / posizioni potrebbero archiviare credenziali multipiattaforma:
Windows 11 e Chrome:
macOS 15 (Sequoia) e Chrome:
macOS 15 (Sequoia) e Safari:
Non specificato indica che può essere utilizzato sia un authenticator di piattaforma sia un authenticator multipiattaforma. In questo caso, l'utente può scegliere dove desidera archiviare le passkey.
Windows 11 e Chrome:
macOS 15 (Sequoia) e Chrome:
macOS 15 (Sequoia) e Safari:
Facendo clic su Annulla, appare la seguente finestra modale:
authenticatorAttachment
è stato utilizzato per un po' di tempo. Tuttavia, si è rivelato poco flessibile rispetto ai nuovi sviluppi come l'autenticazione cross-device (tramite codici QR e Bluetooth). In questo caso, una passkey viene archiviata ad esempio anche in Google Password Manager (credenziale di piattaforma) ma attivata con cross-platform
dalla relying party. Oltre a ciò, il controllo di una relying party per influenzare il tipo di passkey da utilizzare in una cerimonia di login (non di registrazione) poteva essere effettuato solo modificando il valore transports
di una credenziale.
È qui che entrano in gioco i suggerimenti per le credenziali a chiave pubblica di WebAuthn.
I suggerimenti per le credenziali a chiave pubblica di WebAuthn sono un nuovo parametro introdotto nell'API Web Authentication (ufficialmente in WebAuthn Level 3). Forniscono indicazioni ai browser sul tipo di authenticator che un utente probabilmente utilizzerà durante il processo di autenticazione. Questo aiuta a offrire un'esperienza utente più snella e intuitiva, concentrando l'interfaccia utente del browser sulle opzioni più pertinenti.
I tre tipi di suggerimenti
I suggerimenti sono di tre tipi:
security-key
: Indica che ci si aspetta che l'utente utilizzi una chiave di sicurezza hardware (es. YubiKey).client-device
: Suggerisce che l'utente utilizzerà un authenticator di piattaforma collegato al dispositivo client (come Touch ID su macOS, Face ID su iOS o Windows Hello su Windows).hybrid
: Implica che l'utente potrebbe utilizzare uno smartphone o un tablet per l'autenticazione cross-device tramite codice QR e Bluetooth.Questi suggerimenti non sono requisiti rigidi da parte della relying party, ma servono come indicazioni per il browser al fine di migliorare l'esperienza utente.
Di seguito, vedete screenshot per macOS Sequoia (Edge + Chrome) e Windows 10 (Chrome) con authenticatorAttachment
non specificato e il suggerimento User-agent di WebAuthn impostato su security-key
.
Qui vediamo un'altra limitazione: il suggerimento security-key
non viene rispettato su Windows 10, almeno non direttamente. Il flusso è sostanzialmente lo stesso del suggerimento client-device
.
Facendo clic su Annulla, appare la seguente finestra modale:
Di seguito, vedete screenshot per macOS Sequoia (Edge + Chrome) e Windows 10 (Chrome) con authenticatorAttachment
non specificato e il suggerimento User-agent di WebAuthn impostato su client-device
.
Facendo clic su Annulla, appare la seguente finestra modale:
Facendo clic su Annulla, appare la seguente finestra modale:
Facendo clic su Annulla, appare la seguente finestra modale:
Di seguito, vedete screenshot per macOS Sequoia (Edge + Chrome) e Windows 10 (Chrome) con authenticatorAttachment
non specificato e il suggerimento User-agent di WebAuthn impostato su hybrid
.
Con l'introduzione dei suggerimenti, gli sviluppatori possono ora fornire un array di preferenze in ordine di priorità decrescente, offrendo maggiore flessibilità.
Lo snippet di codice seguente indica al browser che l'utente probabilmente si autenticherà utilizzando una chiave di sicurezza hardware, focalizzando di conseguenza l'interfaccia utente.
Per la compatibilità con gli user agent più vecchi, quando questo suggerimento viene utilizzato in PublicKeyCredentialCreationOptions, authenticatorAttachment
dovrebbe essere impostato su cross-platform
.
const credential = await navigator.credentials.create({ publicKey: { challenge: /* your challenge here */, hints: ['security-key'], authenticatorSelection: { authenticatorAttachment: 'cross-platform' } } });
Il suggerimento security-key
è particolarmente prezioso nei casi ad alta sicurezza in cui il sito web / relying party vuole consentire solo chiavi di sicurezza hardware e spinge l'utente in questa direzione.
In questo esempio, il suggerimento indica che l'utente potrebbe utilizzare l'authenticator di piattaforma integrato nel dispositivo corrente.
Per la compatibilità con gli user agent più vecchi, quando questo suggerimento viene utilizzato in PublicKeyCredentialCreationOptions, authenticatorAttachment
dovrebbe essere impostato su platform
.
const credential = await navigator.credentials.create({ publicKey: { challenge: /* your challenge here */, residentKey: true, hints: ['client-device'], authenticatorSelection: { authenticatorAttachment: 'platform' } } });
Impostare il suggerimento client-device
è vantaggioso se ci sono più passkey associate a un account utente e alcune di esse potrebbero essere disponibili sul dispositivo che effettua il login, mentre altre sono archiviate su dispositivi diversi. Se il sistema (intelligence delle passkey) rileva che l'utente che tenta di accedere ha con alta probabilità una passkey locale disponibile, allora questo suggerimento può essere impostato nelle PublicKeyCredentialRequestOptions, risparmiando all'utente un clic per selezionare la passkey giusta.
In questo esempio, il suggerimento indica che l'utente potrebbe utilizzare uno smartphone o un dispositivo simile per l'autenticazione.
Per la compatibilità con gli user agent più vecchi, quando questo suggerimento viene utilizzato in PublicKeyCredentialCreationOptions, authenticatorAttachment
dovrebbe essere impostato su cross-platform
.
const credential = await navigator.credentials.create({ publicKey: { challenge: /* your challenge here */, residentKey: true, hints: ['hybrid'], authenticatorSelection: { authenticatorAttachment: 'cross-platform' } } });
Il suggerimento hybrid
può essere utile se l'utente ha più chiavi e il sistema (intelligence delle passkey) rileva che sul dispositivo corrente probabilmente non è disponibile una passkey locale. Per migliorare l'UX e risparmiare un clic, è possibile impostare questo suggerimento User-agent di WebAuthn e richiedere direttamente all'utente l'autenticazione cross-device (tramite codice QR e Bluetooth). Inoltre, se si cerca di costruire un sistema di passkey mobile-first, impostare questo suggerimento ha molto senso.
Per sperimentare autonomamente con le diverse opzioni, consigliamo di dare un'occhiata al Passkeys Debugger.
È fondamentale capire come i suggerimenti per le credenziali a chiave pubblica di WebAuthn interagiscono con altri parametri di WebAuthn come authenticatorAttachment
e credential transports
.
In primo luogo, è importante notare che questi suggerimenti non sono requisiti rigidi. Non vincolano lo user-agent (browser), ma servono come guida per fornire la migliore esperienza sfruttando le informazioni contestuali che si hanno sulla richiesta. Ciò significa che i browser possono scegliere di considerare i suggerimenti, ma non sono obbligati a seguirli rigorosamente.
I suggerimenti vengono forniti come un array in ordine di preferenza decrescente. Questo ordine determina come il browser dovrebbe dar loro priorità:
Esempio:
hints: ['security-key', 'hybrid', 'client-device']
In questo array:
security-key
.hybrid
.client-device
(authenticator di piattaforma sul dispositivo client).I suggerimenti possono contraddire le informazioni contenute in authenticatorAttachment
e credential transports
. Quando ciò accade, i suggerimenti hanno la precedenza. Questo offre maggiore flessibilità rispetto all'uso precedente e rigido di authenticatorAttachment
, che limitava l' authenticator a platform
o cross-platform
.
Esempio con parametri contraddittori:
const credential = await navigator.credentials.create({ publicKey: { challenge: /* your challenge here */, hints: ['hybrid'], authenticatorSelection: { authenticatorAttachment: 'platform' // Contraddice il suggerimento } } });
In questo caso:
hybrid
.platform
, che normalmente limita gli authenticator al dispositivo client.authenticatorAttachment
, concentrandosi sulle opzioni hybrid
.Attualmente, i suggerimenti per le credenziali a chiave pubblica di WebAuthn sono disponibili solo in Chrome (dalla versione 128). Ad oggi, Edge e Safari hanno indicato l'intenzione di integrare questa funzionalità, mentre Firefox non ha ancora confermato una data di rilascio.
Browser | Chrome | Edge | Safari | Firefox |
---|---|---|---|---|
Disponibilità | ✅ dalla versione 128 | ✅ dalla versione 128 | Pianificato | n/d |
È importante ricordare che in Chrome, il parametro authenticatorAttachment
continua a essere rispettato per ora. Ciò significa che oggi authenticatorAttachment
è il fattore decisivo, indipendentemente dal suggerimento impostato. Tuttavia, ci aspettiamo che nelle future versioni di Chrome, i suggerimenti per le credenziali a chiave pubblica diventeranno l'approccio preferito e unico.
Anche se l'ultima versione di Chrome supporta gli User-agent Hints di WebAuthn, questi suggerimenti non sono rispettati da Windows 11 e Windows Hello / Sicurezza di Windows. La ragione di fondo è che l'interfaccia utente è controllata dal sistema operativo stesso (Windows Hello / Sicurezza di Windows).
Inoltre, per una passkey archiviata in Google Password Manager e sincronizzata con Windows 11, gli User-agent Hints di WebAuthn non vengono rispettati, poiché l'autenticazione locale finale su Windows 11 avviene con Windows Hello / Sicurezza di Windows. Con la prossima sincronizzazione delle passkey su Windows 11 tramite account Microsoft, ci aspettiamo miglioramenti anche per Windows 11 e gli User-agent Hints di WebAuthn.
Su Windows 10, gli User-agent Hints di WebAuthn sono invece rispettati, poiché l'interfaccia utente di WebAuthn è gestita da Chrome e non da Windows Hello / Sicurezza di Windows. Tuttavia, durante i nostri test, non abbiamo visto un effetto per security-key
. Quando questo suggerimento era impostato, il flusso appariva identico a quello per client-device
.
I suggerimenti per le credenziali a chiave pubblica di WebAuthn (user-agent) offrono una serie di vantaggi sia per gli sviluppatori che per gli utenti. La funzionalità è ancora nuova e non è ancora stata distribuita a tutti i browser e sistemi operativi (a ottobre 2024).
È importante essere consapevoli delle limitazioni attuali che derivano in particolare da Windows 11. In Windows 11, l'interfaccia utente delle passkey è gestita da Windows Hello (la finestra modale di sicurezza di Windows Hello) e questo attualmente prevale sul supporto di Chrome / Edge per gli User-agent Hints di WebAuthn. Questo vale anche per le passkey sincronizzate da Google Password Manager a Windows (anche qui, i suggerimenti non hanno ancora effetto).
Ciò significa che i suggerimenti per le credenziali a chiave pubblica di WebAuthn funzionano realmente solo su macOS e Windows 10 (tra i principali sistemi operativi desktop).
Inoltre, a ottobre 2024, anche se si utilizza Chrome / Edge su questi sistemi operativi, se authenticatorAttachment
è impostato, anche questo prevale sugli User-agent Hints di WebAuthn (come dichiarato da Google).
Dal punto di vista dei casi d'uso, vediamo i seguenti scenari consigliati per ottenere il massimo valore da questa nuova funzionalità.
Quando si costruisce il backend e l'intelligence delle passkey, provare a includere l'uso corretto dei suggerimenti per le credenziali a chiave pubblica per facilitare il login e risparmiare clic inutili all'utente. Ad esempio, se il sistema rileva che un utente sta accedendo da un dispositivo su cui è probabilmente disponibile una passkey locale, utilizzare il suggerimento client-device
.
Se l'utente accede al sito web da un nuovo dispositivo e la vostra intelligence delle passkey sa che una passkey potrebbe essere disponibile su un dispositivo mobile dell'utente, impostare il suggerimento su hybrid
, in modo che l'utente possa scansionare rapidamente il codice QR e utilizzare la passkey ibrida.
L'obiettivo principale qui è fornire un'esperienza utente più fluida e intuitiva. Guidando i browser su quali authenticator sono probabilmente utilizzati, gli sviluppatori possono ridurre la confusione e l'attrito per l'utente durante il processo di login. Invece di essere sopraffatti da opzioni di autenticazione non necessarie, i suggerimenti consentono ai browser di concentrarsi sulle scelte più pertinenti, il che porta a un'esperienza più rapida e diretta.
Le aziende ad alta sicurezza o le organizzazioni governative che hanno standardizzato l'uso di chiavi di sicurezza hardware per l'autenticazione degli utenti troveranno i suggerimenti per le credenziali passkey particolarmente utili. Utilizzando il suggerimento security-key
, possono garantire che i browser mostrino in modo prominente l'opzione della chiave di sicurezza hardware.
Questo è particolarmente utile per le grandi organizzazioni in cui ai dipendenti sono state fornite chiavi di sicurezza hardware e dove altri metodi di autenticazione (come gli authenticator di piattaforma) non sono consentiti. Il suggerimento security-key
consente alle aziende di blindare i loro flussi di autenticazione senza limitare la loro flessibilità per futuri miglioramenti.
Il suggerimento hybrid
eccelle negli scenari in cui è desiderata l'autenticazione cross-device e quindi un approccio mobile-first, o quando gli utenti si spostano frequentemente tra dispositivi o piattaforme.
Un esempio di questo caso d'uso sarebbe un'app rivolta ai consumatori che prevede che la maggior parte dei suoi utenti utilizzerà i propri smartphone per l'autenticazione, sia tramite metodi biometrici che tramite app di autenticazione basate sul web (passkey mobile-first). Specificando hybrid
come suggerimento, gli sviluppatori si assicurano che l'interfaccia utente del browser incoraggi l'uso dello smartphone, migliorando la comodità e l'accessibilità.
I suggerimenti per le credenziali a chiave pubblica di WebAuthn offrono un modo flessibile per migliorare l'esperienza utente durante l'autenticazione con passkey. Rivediamo le domande dell'introduzione con le conoscenze che abbiamo acquisito:
Cosa sono i suggerimenti per le credenziali a chiave pubblica di WebAuthn?
Sono suggerimenti opzionali forniti dal sito web / app per guidare i client sul metodo di autenticazione più probabile che un utente utilizzerà, che si tratti di una chiave di sicurezza hardware, un authenticator di piattaforma o una soluzione ibrida come l'autenticazione cross-device.
Perché sono necessari i suggerimenti per le credenziali a chiave pubblica di WebAuthn?
Semplificano il processo di autenticazione restringendo le opzioni presentate agli utenti, riducendo l'attrito / i clic non necessari e migliorando l'esperienza complessiva.
Come funzionano i suggerimenti per le credenziali a chiave pubblica di WebAuthn?
Gli sviluppatori specificano suggerimenti come security-key
, client-device
o hybrid
in base al contesto, consentendo ai browser di dare priorità al metodo di autenticazione pertinente per l'utente. Sebbene questi suggerimenti non siano requisiti rigidi, aiutano a ottimizzare il flusso dell'interfaccia utente durante l'autenticazione.
Quali sono le limitazioni e i casi d'uso consigliati?
Attualmente, il supporto completo per questi suggerimenti è limitato a Chrome ed Edge, con altri browser e sistemi operativi come Windows 11 che mostrano livelli di compatibilità variabili. I casi d'uso più efficaci includono il miglioramento dell'UX di login, l'imposizione dell'uso di chiavi di sicurezza hardware in ambienti ad alta sicurezza e l'abilitazione dell'autenticazione cross-device in applicazioni mobile-first.
In conclusione, i suggerimenti per le credenziali a chiave pubblica di WebAuthn consentono agli sviluppatori di creare processi di autenticazione più intuitivi e user-friendly guidando i browser verso le opzioni più appropriate per ogni scenario utente. Sebbene sia ancora in evoluzione, questa funzionalità può migliorare significativamente sia la sicurezza che l'esperienza utente nelle implementazioni di passkey.
Enjoyed this read?
🤝 Join our Passkeys Community
Share passkeys implementation tips and get support to free the world from passwords.
🚀 Subscribe to Substack
Get the latest news, strategies, and insights about passkeys sent straight to your inbox.
Related Articles
Table of Contents