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

API Web Bluetooth et Passkeys

Comprenez le rôle de l'API Web Bluetooth pour les passkeys ! Découvrez comment la détection de la disponibilité du Bluetooth améliore l'authentification inter-appareils (CDA) avec 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.

Vue d'ensemble#

1. Introduction : API Web Bluetooth et Passkeys#

Les passkeys sont le nouveau standard de connexion sur le web. L'une des fonctionnalités principales des passkeys est l'authentification inter-appareils (CDA) via Bluetooth et codes QR. Dans ce contexte, une autre API web gagne en importance : l'API Web Bluetooth.

En permettant aux applications web d'interagir directement avec les appareils Bluetooth, l'API Web Bluetooth joue un rôle crucial pour garantir des processus d'authentification sécurisés et efficaces (en particulier pour la CDA).

Dans cet article, nous allons présenter le fonctionnement de l'API Web Bluetooth et explorer les implications de la détection Bluetooth pour l'authentification par passkey. Nous répondrons aux questions suivantes :

  1. Qu'est-ce que l'API Web Bluetooth ?
  2. Comment utiliser l'API Web Bluetooth ?
  3. Pourquoi la détection Bluetooth est-elle importante pour les passkeys ?

2. Qu'est-ce que l'API Web Bluetooth ?#

L'API Web Bluetooth est une interface JavaScript qui permet aux applications web d'accéder et de communiquer avec des appareils Bluetooth. Elle fait partie du standard HTML5 et est prise en charge par des navigateurs comme Chrome, Edge et Opera. Cette API permet aux applications web de :

  • rechercher des appareils Bluetooth Low Energy (BLE) à proximité
  • demander l'autorisation de s'appairer
  • échanger des données à l'aide du protocole GATT (Generic Attribute Profile).

L'API Web Bluetooth comporte trois fonctions clés.

2.1 getAvailability()#

getAvailability() renvoie une promesse qui se résout en un booléen indiquant si l'agent utilisateur peut prendre en charge le Bluetooth (c'est-à-dire si l'appareil dispose d'un module Bluetooth). Certains agents utilisateurs permettent à l'utilisateur de configurer une option qui spécifie la valeur retournée par cette méthode.

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() renvoie une promesse qui se résout en un tableau de BluetoothDevices auxquels l'origine est autorisée à accéder (y compris ceux qui sont hors de portée et éteints). L'autorisation est obtenue via des appels précédents à Bluetooth.requestDevice().

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

2.3 requestDevice()#

requestDevice() renvoie une promesse vers un objet BluetoothDevice avec les options spécifiées. S'il n'y a pas d'interface de sélection, cette méthode renvoie le premier appareil correspondant aux critères.

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

Des détails et des extraits de code sont disponibles ici. Vous trouverez également ici le standard W3C pour le Web Bluetooth.

Slack Icon

Become part of our Passkeys Community for updates & support.

Join

3. Caractéristiques de l'API Web Bluetooth#

  • HTTPS uniquement : L'API Web Bluetooth n'est disponible que dans des contextes sécurisés (HTTPS), garantissant une transmission de données sécurisée.
  • Geste de l'utilisateur requis : La découverte d'appareils via navigator.bluetooth.requestDevice doit être déclenchée par un geste de l'utilisateur, comme un contact tactile ou un clic de souris, pour des raisons de sécurité.

4. Comment utiliser l'API Web Bluetooth#

Pour vérifier la prise en charge de l'API Web Bluetooth, vous pouvez utiliser le code suivant :

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!"); }

La manière d'appeler les fonctions spécifiques est expliquée ci-dessus.

5. Avantages de l'API Web Bluetooth#

L'API Web Bluetooth offre plusieurs avantages pour les développeurs et les utilisateurs :

  • Interactivité : Permet aux applications web d'interagir avec des appareils Bluetooth sans avoir besoin d'applications natives ou de plugins.
  • Expérience utilisateur améliorée : Permet d'accéder aux fonctionnalités et aux capteurs d'appareils sans fil comme les moniteurs de fréquence cardiaque ou les commandes musicales.
  • Sécurité et confidentialité : Les utilisateurs doivent donner leur autorisation pour l'accès à l'appareil, autorisation qui peut être révoquée à tout moment.

6. Problèmes avec l'API Web Bluetooth#

Malgré ses avantages, l'API Web Bluetooth a des limites :

  • Non prise en charge par Safari et Firefox : Tous les navigateurs ne prennent pas en charge l'API. Notamment, Safari et Firefox ne la supportent pas, ce qui peut affecter une part importante des utilisateurs.
  • Dépendance des capacités de l'appareil : L'API ne fonctionne qu'avec des appareils compatibles Bluetooth Low Energy (BLE). De plus, les appareils peuvent ne pas être détectables en raison de facteurs tels qu'une batterie faible ou le fait d'être hors de portée.
  • Spécification en évolution : En tant que spécification à l'état de brouillon, l'API Web Bluetooth est sujette à des modifications. Les développeurs doivent se tenir informés des derniers développements et de la compatibilité des navigateurs.
  • Faux positifs : L'API peut parfois indiquer la prise en charge du Bluetooth alors qu'il n'est pas réellement disponible.
  • Disponibilité contrôlée par l'utilisateur : Les utilisateurs et les navigateurs peuvent désactiver les autorisations Bluetooth, ce qui fait que getAvailability() renvoie false même si un adaptateur Bluetooth est présent. Ceci est contrôlé via la Permissions-Policy:Bluetooth. De même, même si getAvailability() renvoie true, l'adaptateur Bluetooth peut ne pas être allumé, ou les utilisateurs peuvent refuser l'autorisation d'utiliser l'API lorsqu'ils y sont invités.

7. Adoption de l'API Web Bluetooth#

L'adoption de l'API Web Bluetooth est encore en croissance. En juin 2024, selon Can I Use, 76,53 % des utilisateurs mondiaux ont des appareils prenant en charge l'API Web Bluetooth.

Cependant, l'absence de prise en charge par Safari et Firefox reste un obstacle majeur, impactant l'expérience utilisateur sur ces navigateurs. De plus, certaines fonctionnalités (par exemple, Bluetooth.getDevices()) doivent être activées explicitement par l'utilisateur, ce qui peut être un défi pour utiliser l'API en arrière-plan.

Retrouvez les dernières données sur : https://developer.mozilla.org/fr/docs/Web/API/Web_Bluetooth_API#browser_compatibility

8. Pourquoi la détection Bluetooth est-elle importante pour les passkeys ?#

Il y a une raison majeure pour laquelle les parties de confiance devraient connaître la disponibilité du Bluetooth lorsqu'elles souhaitent proposer des passkeys sur leurs sites web et applications.

8.1 Fonctionnalité principale des passkeys : l'authentification inter-appareils (CDA) via codes QR et Bluetooth#

L'une des nouvelles fonctionnalités innovantes des passkeys est l'authentification inter-appareils (CDA) – également connue sous le nom d'authentification hybride. Cette fonctionnalité permet aux utilisateurs de s'authentifier sur un appareil (généralement un ordinateur de bureau ou portable) en utilisant leurs appareils mobiles via des codes QR et le Bluetooth. Cette méthode d'authentification hybride améliore la sécurité et la commodité, offrant une expérience utilisateur fluide. La plupart des utilisateurs non techniques sont aujourd'hui habitués à scanner des codes QR, que ce soit pendant la pandémie de COVID pour s'enregistrer ou via des applications de messagerie mobile-first qui ont ensuite ajouté un support pour ordinateur de bureau (par exemple, WhatsApp ou Telegram).

Décider d'une stratégie CDA est crucial au début de tout projet de passkeys. Plus vous comptez sur la CDA, meilleur doit être son support et sa fiabilité. Ainsi, la détection de la disponibilité du Bluetooth sur un appareil est essentielle.

8.2 Le Bluetooth n'est pas toujours présent et peut nuire à l'expérience utilisateur de la CDA#

Cependant, tous les appareils n'ont pas de capacités Bluetooth ou peuvent avoir le Bluetooth désactivé. Pour les parties de confiance qui proposent des passkeys, il est essentiel de détecter la disponibilité du Bluetooth pour déterminer si la CDA peut être utilisée ou si une autre méthode d'authentification de secours est nécessaire. L'API Web Bluetooth fournit une solution en permettant aux applications web de vérifier la disponibilité du Bluetooth sur les appareils des utilisateurs.

Gardez à l'esprit que la CDA n'est pas toujours stable, échouant parfois à se connecter sans raisons claires. De plus, en raison de la nouveauté de l'API, des résultats erronés sont parfois retournés par l'API.

8.3 Impact différent de l'indisponibilité du Bluetooth dans Firefox et Safari#

L'indisponibilité de l'API Web Bluetooth dans Firefox et Safari est un problème, en particulier pour Firefox.

Safari pose moins de problème car les appareils macOS, sur lesquels la CDA pourrait être effectuée, intègrent le Bluetooth depuis les premiers modèles. Cependant, si le Bluetooth sur macOS ne fonctionne pas, les utilisateurs pourraient rencontrer des problèmes avec l'authentification inter-appareils et devoir dépanner leurs paramètres ou revenir à une méthode de secours. Les iPhones utilisant Safari intègrent le Bluetooth depuis leur création.

Cependant, Firefox est un problème important car il est populaire sur les appareils Windows. Si un utilisateur est sur Firefox et souhaite utiliser la CDA, la partie de confiance ne peut pas déterminer de manière fiable si le Bluetooth est disponible, car l'API Web Bluetooth n'est pas implémentée. Cela pourrait entraîner une mauvaise expérience utilisateur, les utilisateurs pouvant se retrouver bloqués à certains moments sans savoir quoi faire.

Comme nous l'avons vu, également dans des articles précédents, les appareils Windows sont à la traîne en termes d'adoption des passkeys (voir aussi State of Passkeys). Voyons à quel point la disponibilité du Bluetooth est courante.

9. Windows 10 a-t-il une exigence en matière de Bluetooth ?#

Windows 10 n'a pas d'exigence stricte en matière de Bluetooth, mais la plupart des ordinateurs portables et de bureau modernes sont équipés de capacités Bluetooth. Cependant, l'utilisateur peut l'avoir désactivé, ou il peut ne pas être disponible dans certaines configurations, en particulier sur les ordinateurs de bureau assemblés sur mesure.

10. Windows 11 a-t-il une exigence en matière de Bluetooth ?#

Windows 11, tout comme Windows 10, n'impose pas le Bluetooth. Cependant, la tendance vers un matériel plus intégré et moderne signifie que la plupart des appareils compatibles avec Windows 11 auront probablement des capacités Bluetooth. Néanmoins, les utilisateurs peuvent le désactiver, ce qui affecte les implémentations de la CDA.

11. Recommandation#

Dans le tableau suivant, vous pouvez voir si vous pouvez déterminer si un appareil de bureau est compatible Bluetooth et peut donc être utilisé comme client CDA :

Système d'exploitationSupport matériel BluetoothDétection Bluetooth par le navigateur
ChromeEdgeFirefoxSafari
Windows 10faible
Windows 11moyen
macOSélevé

Gardez à l'esprit que même si votre matériel est compatible Bluetooth, la fonctionnalité peut être désactivée par l'utilisateur. Lorsque le Bluetooth est désactivé, l'utilisateur peut toujours utiliser la CDA car il peut choisir de l'activer, ce qui fonctionne pour Windows et Mac : Demande d'activation du Bluetooth sur macOS

Demande d'activation du Bluetooth sur Windows 11

L'information sur la disponibilité du Bluetooth est particulièrement intéressante sur Windows 10 et Windows 11, où le support Bluetooth est plus faible et où il y a une très forte probabilité que l'authentification inter-appareils doive avoir lieu (dans une connexion basée sur les passkeys). Les appareils macOS récents ont tous le support Bluetooth. Ces appareils macOS ont potentiellement aussi un accès direct aux passkeys stockés dans le Trousseau iCloud, ils ne sont donc pas une source de préoccupation.

Sur Windows 10 et Windows 11 : Utilisez getAvailability() pour savoir si le Bluetooth peut fonctionner. Si l'utilisateur ne dispose que de passkeys non-Windows, vous pouvez immédiatement basculer vers d'autres options d'authentification.

Dans une situation où seuls des passkeys hybrides sont disponibles, déclencher une authentification par passkey ne mènera pas à une authentification réussie, mais plutôt à une impasse pour l'utilisateur. Pour tous les autres navigateurs sur Windows 10 et Windows 11, il n'y a malheureusement aucun autre moyen de savoir s'il y a un support pour la CDA.

12. Conclusion : l'API Web Bluetooth pour les passkeys#

L'API Web Bluetooth représente un outil puissant pour améliorer l'authentification par passkey grâce aux capacités Bluetooth. En comprenant et en exploitant cette API, les développeurs peuvent créer des méthodes d'authentification plus sécurisées et conviviales. Cependant, ils doivent également naviguer entre ses limitations et assurer des mécanismes de secours robustes pour maintenir une expérience utilisateur fluide sur différents navigateurs et appareils.

Avec cet article, nous avons répondu aux trois questions principales :

  1. Qu'est-ce que l'API Web Bluetooth ? L'API Web Bluetooth est une interface JavaScript permettant aux applications web d'accéder et de communiquer avec des appareils Bluetooth, facilitant des interactions sécurisées.
  2. Comment utiliser l'API Web Bluetooth ? Utilisez l'API Web Bluetooth en appelant des fonctions comme getAvailability(), getDevices() et requestDevice() pour vérifier le support Bluetooth, lister les appareils accessibles et demander l'appairage d'un appareil.
  3. Pourquoi la détection Bluetooth est-elle importante pour les passkeys ? En intégrant l'API Web Bluetooth dans votre stratégie d'implémentation de passkeys, vous pouvez construire une excellente solution d'authentification basée sur les passkeys qui ne bascule vers la CDA que s'il y a des appareils capables de détecter le support Bluetooth.

Pour plus d'informations sur l'API Web Bluetooth et une collection d'exemples, veuillez cliquer ici.

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