Get your free and exclusive 80-page Banking Passkey Report
web bluetooth cover

API Web Bluetooth e Passkey

Scopri il ruolo dell'API Web Bluetooth per le passkey! Impara come il rilevamento della disponibilità del Bluetooth migliora l'autenticazione cross-device (CDA) con WebAuthn.

Vincent Delitz

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.

1. Introduzione: API Web Bluetooth e Passkey#

Le passkey sono il nuovo standard di login sul web. Una delle funzionalità principali delle passkey è l'autenticazione cross-device (CDA) tramite Bluetooth e codici QR. In questo contesto, un'altra API web diventa importante: l'API Web Bluetooth.

Consentendo alle app web di interagire direttamente con i dispositivi Bluetooth, l'API Web Bluetooth svolge un ruolo cruciale nel garantire processi di autenticazione sicuri ed efficienti (specialmente per la CDA).

Questo post del blog presenterà il funzionamento dell'API Web Bluetooth ed esplorerà le implicazioni del rilevamento del Bluetooth per l'autenticazione con passkey. Vogliamo rispondere alle seguenti domande:

  1. Cos'è l'API Web Bluetooth?
  2. Come si usa l'API Web Bluetooth?
  3. Perché il rilevamento del Bluetooth è importante per le passkey?

2. Cos'è l'API Web Bluetooth?#

L'API Web Bluetooth è un'interfaccia JavaScript che consente alle app web di accedere e comunicare con i dispositivi Bluetooth. Fa parte dello standard HTML5 ed è supportata da browser come Chrome, Edge e Opera. Questa API permette alle app web di:

  • cercare dispositivi Bluetooth Low Energy (BLE) nelle vicinanze
  • richiedere il permesso di accoppiamento
  • scambiare dati utilizzando il protocollo Generic Attribute Profile (GATT).

Ci sono tre funzioni chiave dell'API Web Bluetooth.

2.1 getAvailability()#

getAvailability() restituisce una promise che si risolve in un valore booleano, indicando se l'user agent può supportare il Bluetooth (quindi se il dispositivo ha un modulo Bluetooth). Alcuni user agent permettono all'utente di configurare un'opzione che specifica quale valore viene restituito da questo metodo.

navigator.bluetooth.getAvailability().then((available) => { if (available) { console.log("This device supports Bluetooth!"); } else { console.log("Doh! Bluetooth is not supported"); } });
Substack Icon

Subscribe to our Passkeys Substack for the latest news.

Subscribe

2.2 getDevices()#

getDevices() restituisce una promise che si risolve in un array di BluetoothDevices a cui l'origine è autorizzata ad accedere (inclusi quelli fuori portata e spenti). L'autorizzazione si ottiene tramite chiamate precedenti a Bluetooth.requestDevice().

navigator.bluetooth.getDevices().then((devices) => { devices.forEach((device) => { console.log("Device:", device.name); }); });

2.3 requestDevice()#

requestDevice() restituisce una promise a un oggetto BluetoothDevice con le opzioni specificate. Se non c'è un'interfaccia utente per la scelta, questo metodo restituisce il primo dispositivo che corrisponde ai criteri.

navigator.bluetooth .requestDevice({ filters: [ { services: ["battery_service"], }, ], }) .then((device) => { console.log("Device:", device.name); }) .catch((error) => { console.log("Error:", error); });

Dettagli ed esempi di codice si possono trovare qui. Trovate qui anche lo standard W3C per il Web Bluetooth.

Slack Icon

Become part of our Passkeys Community for updates & support.

Join

3. Caratteristiche dell'API Web Bluetooth#

  • Solo HTTPS: L'API Web Bluetooth è disponibile solo in contesti sicuri (HTTPS), garantendo una trasmissione dei dati sicura.
  • Richiede un gesto dell'utente: La scoperta di dispositivi tramite navigator.bluetooth.requestDevice deve essere attivata da un gesto dell'utente, come un tocco o un clic del mouse, per motivi di sicurezza.

4. Come usare l'API Web Bluetooth#

Per verificare il supporto dell'API Web Bluetooth, si può usare il seguente codice:

if ("bluetooth" in navigator) { // Web Bluetooth API is supported console.log("Web Bluetooth is supported!"); } else { // Web Bluetooth API is not supported console.log("Web Bluetooth is not supported!"); }

Il modo in cui vengono chiamate le funzioni specifiche è spiegato sopra.

5. Vantaggi dell'API Web Bluetooth#

L'API Web Bluetooth offre diversi vantaggi per sviluppatori e utenti:

  • Interattività: Permette alle app web di interagire con dispositivi Bluetooth senza app native o plugin.
  • Migliore esperienza utente: Consente l'accesso a funzionalità e sensori di dispositivi wireless come cardiofrequenzimetri o controlli musicali.
  • Sicurezza e privacy: Gli utenti devono concedere l'autorizzazione per l'accesso ai dispositivi, che può essere revocata in qualsiasi momento.

6. Problemi con l'API Web Bluetooth#

Nonostante i suoi vantaggi, l'API Web Bluetooth ha delle limitazioni:

  • Nessun supporto da parte di Safari e Firefox: Non tutti i browser supportano l'API. In particolare, Safari e Firefox non la supportano, il che può avere un impatto su una parte significativa degli utenti.
  • Dipendenza dalle capacità del dispositivo: L'API funziona solo con dispositivi compatibili con Bluetooth Low Energy (BLE). Inoltre, i dispositivi potrebbero non essere rilevabili a causa di fattori come la batteria scarica o la distanza.
  • Specifiche in evoluzione: Essendo una bozza di specifica, l'API Web Bluetooth è soggetta a modifiche. Gli sviluppatori devono rimanere aggiornati sugli ultimi sviluppi e sulla compatibilità dei browser.
  • Falsi positivi: L'API a volte può indicare il supporto Bluetooth quando in realtà non è disponibile.
  • Disponibilità controllata dall'utente: Utenti e browser possono disabilitare i permessi Bluetooth, facendo sì che getAvailability() restituisca false anche se è presente un adattatore Bluetooth. Questo è controllato tramite la Permissions-Policy:Bluetooth. Allo stesso modo, anche se getAvailability() restituisce true, l'adattatore Bluetooth potrebbe non essere acceso, o gli utenti potrebbero negare il permesso di usare l'API quando richiesto.

7. Adozione dell'API Web Bluetooth#

L'adozione dell'API Web Bluetooth è ancora in crescita. A giugno 2024, secondo Can I Use, il 76,53% degli utenti globali ha dispositivi con supporto per l'API Web Bluetooth.

Tuttavia, la mancanza di supporto in Safari e Firefox rimane un ostacolo significativo, che influisce sull'esperienza utente su questi browser. Inoltre, alcune delle funzionalità (ad es. Bluetooth.getDevices()) devono essere attivate esplicitamente dall'utente, il che può rappresentare una sfida per l'utilizzo dell'API in background.

Trova i dati più recenti su: https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API#browser_compatibility

8. Perché il rilevamento del Bluetooth è importante per le passkey?#

C'è una ragione principale per cui le relying party dovrebbero conoscere la disponibilità del Bluetooth, quando vogliono offrire le passkey nei loro siti web e applicazioni.

8.1 Funzionalità principale delle passkey: Autenticazione cross-device (CDA) tramite codici QR e Bluetooth#

Una delle nuove e innovative funzionalità delle passkey è l'autenticazione cross-device (CDA) – nota anche come autenticazione ibrida. Questa funzione consente agli utenti di autenticarsi su un dispositivo (tipicamente un desktop o un laptop) utilizzando i loro dispositivi mobili tramite codici QR e Bluetooth. Questo metodo di autenticazione ibrida migliora la sicurezza e la comodità, offrendo un'esperienza utente fluida. La maggior parte degli utenti non tecnici è ormai abituata a scansionare codici QR, sia durante la pandemia di COVID per la registrazione, sia tramite app di messaggistica mobile-first che hanno poi aggiunto il supporto desktop (ad es. WhatsApp o Telegram).

Decidere una strategia CDA è cruciale all'inizio di qualsiasi progetto di passkey. Più ci si affida alla CDA, migliori devono essere il suo supporto e la sua affidabilità. Pertanto, rilevare la disponibilità del Bluetooth su un dispositivo è essenziale.

8.2 Il Bluetooth non è sempre presente e può peggiorare la UX della CDA#

Tuttavia, non tutti i dispositivi hanno funzionalità Bluetooth o potrebbero avere il Bluetooth disattivato. Per le relying party che offrono passkey, è essenziale rilevare la disponibilità del Bluetooth per determinare se la CDA può essere utilizzata o se è necessario un altro metodo di autenticazione di fallback. L'API Web Bluetooth fornisce una soluzione consentendo alle app web di verificare la disponibilità del Bluetooth sui dispositivi degli utenti.

Tenete presente che la CDA non è sempre stabile e occasionalmente la connessione può fallire senza ragioni apparenti. Inoltre, a causa della novità dell'API, a volte l'API restituisce risultati errati.

8.3 Impatto diverso della non disponibilità del Bluetooth in Firefox e Safari#

La non disponibilità dell'API Web Bluetooth in Firefox e Safari è un problema, in particolare per Firefox.

Safari è un problema minore perché i dispositivi macOS, dove potrebbe essere eseguita la CDA, hanno il Bluetooth integrato fin dai primi modelli. Tuttavia, se il Bluetooth su macOS non funziona, gli utenti potrebbero riscontrare problemi con l'autenticazione cross-device e dover risolvere i problemi delle loro impostazioni o tornare a un metodo di fallback. Gli iPhone che eseguono Safari hanno il Bluetooth integrato fin dalla loro nascita.

Tuttavia, Firefox rappresenta un problema significativo poiché è popolare sui dispositivi Windows. Se un utente è su Firefox e vuole usare la CDA, la relying party non può determinare in modo affidabile se il Bluetooth è disponibile, poiché l'API Web Bluetooth non è implementata. Ciò potrebbe comportare una scarsa esperienza utente, con gli utenti che potrebbero bloccarsi in determinati punti senza sapere cosa fare.

Come abbiamo visto anche in blog precedenti, i dispositivi Windows sono in ritardo in termini di adozione delle passkey (vedi anche State of Passkeys). Diamo un'occhiata a quanto sia comune la disponibilità del Bluetooth.

9. Windows 10 ha un requisito Bluetooth?#

Windows 10 non ha un requisito Bluetooth rigoroso, ma la maggior parte dei laptop e dei desktop moderni è dotata di funzionalità Bluetooth. Tuttavia, l'utente potrebbe averlo disattivato o potrebbe non essere disponibile in alcune configurazioni, specialmente sui desktop assemblati su misura.

10. Windows 11 ha un requisito Bluetooth?#

Windows 11, analogamente a Windows 10, non richiede obbligatoriamente il Bluetooth. Tuttavia, la tendenza verso un hardware più integrato e moderno significa che la maggior parte dei dispositivi compatibili con Windows 11 avrà probabilmente funzionalità Bluetooth. Tuttavia, gli utenti possono disabilitarlo, influenzando le implementazioni della CDA.

11. Raccomandazione#

Nella tabella seguente potete vedere se è possibile determinare se un dispositivo desktop è pronto per il Bluetooth e quindi può essere utilizzato come client CDA:

Sistema operativoSupporto Hardware BluetoothRilevamento Bluetooth del browser
ChromeEdgeFirefoxSafari
Windows 10basso
Windows 11medio
macOSalto

Tenete presente che anche se il vostro hardware è pronto per il Bluetooth, la funzionalità Bluetooth potrebbe essere disattivata dall'utente. Quando il Bluetooth è disattivato, l'utente può comunque utilizzare la CDA perché può ancora scegliere di attivarlo, cosa che funziona per Windows e Mac: Richiesta di macOS per attivare il Bluetooth

Richiesta di Windows 11 per attivare il Bluetooth

L'informazione sulla disponibilità del Bluetooth è particolarmente interessante su Windows 10 e Windows 11, dove il supporto Bluetooth è inferiore e c'è una probabilità molto alta che debba avvenire un'autenticazione cross-device (in un login basato su passkey). I dispositivi macOS recenti hanno tutti il supporto per il Bluetooth. Questi dispositivi macOS hanno potenzialmente anche accesso diretto alle passkey memorizzate in iCloud Keychain, quindi non sono motivo di preoccupazione.

Su Windows 10 e Windows 11: usate getAvailability() per scoprire se il Bluetooth può funzionare. Nel caso in cui l'utente abbia solo passkey non-Windows, potete immediatamente passare ad altre opzioni di autenticazione.

In una situazione in cui sono disponibili solo passkey ibride, l'attivazione dell'autenticazione con passkey non porterà a un'autenticazione riuscita, ma piuttosto a un vicolo cieco per l'utente. Per tutti gli altri browser su Windows 10 e Windows 11, sfortunatamente, non c'è altro modo per scoprire se c'è supporto per la CDA.

12. Conclusione: API Web Bluetooth per le Passkey#

L'API Web Bluetooth rappresenta un potente strumento per migliorare l'autenticazione con passkey attraverso le capacità Bluetooth. Comprendendo e sfruttando questa API, gli sviluppatori possono creare metodi di autenticazione più sicuri e facili da usare. Tuttavia, devono anche gestirne le limitazioni e garantire robusti meccanismi di fallback per mantenere un'esperienza utente fluida su diversi browser e dispositivi.

Con questo post del blog, abbiamo dato una risposta alle tre domande principali:

  1. Cos'è l'API Web Bluetooth? L'API Web Bluetooth è un'interfaccia JavaScript che consente alle app web di accedere e comunicare con i dispositivi Bluetooth, facilitando interazioni sicure.
  2. Come si usa l'API Web Bluetooth? Si utilizza l'API Web Bluetooth chiamando funzioni come getAvailability(), getDevices() e requestDevice() per verificare il supporto Bluetooth, elencare i dispositivi accessibili e richiedere l'accoppiamento dei dispositivi.
  3. Perché il rilevamento del Bluetooth è importante per le passkey? Integrando l'API Web Bluetooth nella tua strategia di implementazione delle passkey, puoi creare un'ottima soluzione di autenticazione basata su passkey che ricorre alla CDA solo se ci sono dispositivi in grado di rilevare il supporto Bluetooth.

Per maggiori informazioni sull'API Web Bluetooth e una raccolta di esempi, cliccate qui.

Add passkeys to your app in <1 hour with our UI components, SDKs & guides.

Start Free Trial

Share this article


LinkedInTwitterFacebook

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