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

API Web Bluetooth y Passkeys

¡Entiende el papel de la API Web Bluetooth para las passkeys! Aprende cómo la detección de disponibilidad de Bluetooth mejora la autenticación entre dispositivos (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. Introducción: API Web Bluetooth y Passkeys#

Las passkeys son el nuevo estándar de inicio de sesión en la web. Una de las características principales de las passkeys es la autenticación entre dispositivos (CDA) a través de Bluetooth y códigos QR. En este contexto, otra API web cobra importancia: la API Web Bluetooth.

Al permitir que las aplicaciones web interactúen directamente con dispositivos Bluetooth, la API Web Bluetooth juega un papel crucial para garantizar procesos de autenticación seguros y eficientes (especialmente para la CDA).

En esta entrada de blog, presentaremos el funcionamiento de la API Web Bluetooth y exploraremos las implicaciones de la detección de Bluetooth para la autenticación con passkeys. Queremos responder las siguientes preguntas:

  1. ¿Qué es la API Web Bluetooth?
  2. ¿Cómo se usa la API Web Bluetooth?
  3. ¿Por qué es importante la detección de Bluetooth para las passkeys?

2. ¿Qué es la API Web Bluetooth?#

La API Web Bluetooth es una interfaz de JavaScript que permite a las aplicaciones web acceder y comunicarse con dispositivos Bluetooth. Forma parte del estándar HTML5 y es compatible con navegadores como Chrome, Edge y Opera. Esta API permite a las aplicaciones web:

  • escanear dispositivos cercanos con Bluetooth de baja energía (BLE)
  • solicitar permiso para emparejarse
  • intercambiar datos utilizando el protocolo de perfil de atributos genéricos (GATT).

Hay tres funciones clave en la API Web Bluetooth.

2.1 getAvailability()#

getAvailability() devuelve una promesa que se resuelve con un valor booleano que indica si el user agent puede soportar Bluetooth (es decir, si el dispositivo tiene un módulo Bluetooth). Algunos user agents permiten al usuario configurar una opción que especifica qué valor devuelve este método.

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() devuelve una promesa que se resuelve con un array de BluetoothDevices a los que el origen tiene permiso para acceder (incluidos aquellos que están fuera de alcance o apagados). El permiso se obtiene a través de llamadas previas a Bluetooth.requestDevice().

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

2.3 requestDevice()#

requestDevice() devuelve una promesa a un objeto BluetoothDevice con las opciones especificadas. Si no hay una interfaz de usuario para elegir, este método devuelve el primer dispositivo que coincida con los criterios.

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

Puedes encontrar más detalles y fragmentos de código aquí. También puedes consultar aquí el estándar del W3C para Web Bluetooth.

Slack Icon

Become part of our Passkeys Community for updates & support.

Join

3. Características de la API Web Bluetooth#

  • Solo HTTPS: La API Web Bluetooth solo está disponible en contextos seguros (HTTPS), lo que garantiza una transmisión de datos segura.
  • Requiere un gesto del usuario: El descubrimiento de dispositivos a través de navigator.bluetooth.requestDevice debe ser activado por un gesto del usuario, como un toque o un clic del ratón, por razones de seguridad.

4. Cómo usar la API Web Bluetooth#

Para comprobar si la API Web Bluetooth es compatible, puedes usar el siguiente código:

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

Cómo se llaman las funciones específicas se explica más arriba.

5. Beneficios de la API Web Bluetooth#

La API Web Bluetooth ofrece varias ventajas para desarrolladores y usuarios:

  • Interactividad: Permite que las aplicaciones web interactúen con dispositivos Bluetooth sin necesidad de aplicaciones nativas o plugins.
  • Experiencia de usuario mejorada: Permite el acceso a funciones y sensores de dispositivos inalámbricos, como monitores de frecuencia cardíaca o controles de música.
  • Seguridad y privacidad: Los usuarios deben conceder permiso para el acceso al dispositivo, el cual puede ser revocado en cualquier momento.

6. Problemas con la API Web Bluetooth#

A pesar de sus beneficios, la API Web Bluetooth tiene limitaciones:

  • Sin soporte en Safari y Firefox: No todos los navegadores soportan la API. En particular, Safari y Firefox no la soportan, lo que puede afectar a una parte significativa de los usuarios.
  • Dependencia de las capacidades del dispositivo: La API solo funciona con dispositivos compatibles con Bluetooth de baja energía (BLE). Además, es posible que los dispositivos no se puedan descubrir debido a factores como batería baja o estar fuera de alcance.
  • Especificación en evolución: Al ser una especificación en borrador, la API Web Bluetooth está sujeta a cambios. Los desarrolladores deben mantenerse actualizados sobre los últimos avances y la compatibilidad de los navegadores.
  • Falsos positivos: La API a veces puede indicar que hay soporte para Bluetooth cuando en realidad no está disponible.
  • Disponibilidad controlada por el usuario: Los usuarios y los navegadores pueden deshabilitar los permisos de Bluetooth, lo que hace que getAvailability() devuelva false aunque haya un adaptador Bluetooth presente. Esto se controla a través de la Permissions-Policy:Bluetooth. Del mismo modo, aunque getAvailability() devuelva true, es posible que el adaptador Bluetooth no esté encendido o que los usuarios denieguen el permiso para usar la API cuando se les solicite.

7. Adopción de la API Web Bluetooth#

La adopción de la API Web Bluetooth sigue creciendo. A junio de 2024, según Can I Use, el 76.53% de los usuarios globales tienen dispositivos con soporte para la API Web Bluetooth.

Sin embargo, la falta de soporte en Safari y Firefox sigue siendo un obstáculo importante, lo que afecta la experiencia del usuario en esos navegadores. Además, algunas de las funciones (p. ej., Bluetooth.getDevices()) deben ser activadas explícitamente por el usuario, lo que puede ser un desafío para usar la API en segundo plano.

Encuentra los datos más recientes en: https://developer.mozilla.org/en-US/docs/Web/API/Web_Bluetooth_API#browser_compatibility

8. ¿Por qué es importante la detección de Bluetooth para las passkeys?#

Hay una razón principal por la que las partes de confianza (relying parties) deben conocer la disponibilidad de Bluetooth si quieren ofrecer passkeys en sus sitios web y aplicaciones.

8.1 Característica principal de las passkeys: Autenticación entre dispositivos (CDA) a través de códigos QR y Bluetooth#

Una de las características nuevas e innovadoras de las passkeys es la autenticación entre dispositivos (CDA), también conocida como autenticación híbrida. Esta función permite a los usuarios autenticarse en un dispositivo (generalmente un ordenador de sobremesa o portátil) utilizando sus dispositivos móviles a través de códigos QR y Bluetooth. Este método de autenticación híbrida mejora la seguridad y la comodidad, proporcionando una experiencia de usuario fluida. La mayoría de los usuarios no técnicos están hoy en día acostumbrados a escanear códigos QR, ya sea durante la pandemia de COVID para registrarse o a través de aplicaciones de mensajería de prioridad móvil que luego añadieron soporte para escritorio (p. ej., WhatsApp o Telegram).

Decidir una estrategia de CDA es crucial al comienzo de cualquier proyecto de passkeys. Cuanto más dependamos de la CDA, mejor debe ser su soporte y fiabilidad. Por lo tanto, detectar la disponibilidad de Bluetooth en un dispositivo es esencial.

8.2 El Bluetooth no siempre está presente y puede ser perjudicial para la UX de la CDA#

Sin embargo, no todos los dispositivos tienen capacidades Bluetooth o pueden tener el Bluetooth desactivado. Para las partes de confianza (relying parties) que ofrecen passkeys, es esencial detectar la disponibilidad de Bluetooth para determinar si se puede usar la CDA o si es necesario otro método de autenticación de respaldo. La API Web Bluetooth ofrece una solución al permitir que las aplicaciones web verifiquen la disponibilidad de Bluetooth en los dispositivos de los usuarios.

Ten en cuenta que la CDA no siempre es estable y, en ocasiones, puede fallar la conexión sin razones claras. Además, debido a la novedad de la API, a veces la API devuelve resultados incorrectos.

8.3 Impacto diferente de la falta de disponibilidad de Bluetooth en Firefox y Safari#

La falta de disponibilidad de la API Web Bluetooth en Firefox y Safari es un problema, especialmente para Firefox.

Safari es un problema menor porque los dispositivos macOS, donde se podría realizar la CDA, han tenido Bluetooth integrado desde los primeros modelos. Sin embargo, si el Bluetooth en macOS no funciona, los usuarios podrían tener problemas con la autenticación entre dispositivos y necesitarían solucionar problemas en su configuración o recurrir a un método de respaldo. Los iPhones que usan Safari han tenido Bluetooth integrado desde su creación.

Sin embargo, Firefox es un problema significativo, ya que es popular en dispositivos Windows. Si un usuario está en Firefox y quiere usar la CDA, la parte de confianza (relying party) no puede determinar de manera fiable si Bluetooth está disponible, ya que la API Web Bluetooth no está implementada. Esto podría resultar en una mala experiencia de usuario, con usuarios que podrían quedarse atascados en ciertos puntos sin saber qué hacer.

Como hemos visto, también en blogs anteriores, los dispositivos Windows se están quedando atrás en términos de adopción de passkeys (ver también State of Passkeys). Echemos un vistazo a qué tan común es la disponibilidad de Bluetooth.

9. ¿Windows 10 tiene un requisito de Bluetooth?#

Windows 10 no tiene un requisito estricto de Bluetooth, pero la mayoría de los portátiles y ordenadores de sobremesa modernos vienen con capacidades Bluetooth. Sin embargo, el usuario podría tenerlo desactivado, o podría no estar disponible en algunas configuraciones, especialmente en ordenadores de sobremesa personalizados.

10. ¿Windows 11 tiene un requisito de Bluetooth?#

Windows 11, al igual que Windows 10, no exige Bluetooth. Sin embargo, la tendencia hacia un hardware más integrado y moderno significa que la mayoría de los dispositivos compatibles con Windows 11 probablemente tendrán capacidades Bluetooth. Aun así, los usuarios pueden desactivarlo, lo que afecta a las implementaciones de CDA.

11. Recomendación#

En la siguiente tabla puedes ver si es posible determinar si un dispositivo de escritorio está preparado para Bluetooth y, por lo tanto, puede usarse como cliente de CDA:

Sistema operativoSoporte de hardware BluetoothDetección de Bluetooth en el navegador
ChromeEdgeFirefoxSafari
Windows 10bajo
Windows 11medio
macOSalto

Ten en cuenta que incluso si tu hardware está preparado para Bluetooth, la funcionalidad de Bluetooth podría estar desactivada por el usuario. Cuando Bluetooth está desactivado, el usuario aún puede usar la CDA porque puede optar por activarlo, lo que funciona para Windows y Mac: Solicitud de macOS para activar Bluetooth

Solicitud de Windows 11 para activar Bluetooth

La información sobre la disponibilidad de Bluetooth es especialmente interesante en Windows 10 y Windows 11, donde el soporte de Bluetooth es menor y hay una probabilidad muy alta de que se necesite la autenticación entre dispositivos (en un inicio de sesión basado en passkeys). Los dispositivos macOS recientes todos tienen soporte para Bluetooth. Estos dispositivos macOS también tienen potencialmente acceso directo a las passkeys almacenadas en el Llavero de iCloud, por lo que no son una preocupación.

En Windows 10 y Windows 11: Usa getAvailability() para averiguar si Bluetooth puede funcionar. En caso de que el usuario solo tenga passkeys que no sean de Windows, puedes recurrir inmediatamente a otras opciones de autenticación.

En una situación en la que solo hay passkeys híbridas disponibles, activar la autenticación con passkey no conducirá a una autenticación exitosa, sino a un callejón sin salida para el usuario. Para todos los demás navegadores en Windows 10 y Windows 11, desafortunadamente, no hay otra forma de averiguar si hay soporte para la CDA.

12. Conclusión: API Web Bluetooth para Passkeys#

La API Web Bluetooth representa una herramienta poderosa para mejorar la autenticación con passkeys a través de las capacidades de Bluetooth. Al comprender y aprovechar esta API, los desarrolladores pueden crear métodos de autenticación más seguros y fáciles de usar. Sin embargo, también deben sortear sus limitaciones y garantizar mecanismos de respaldo robustos para mantener una experiencia de usuario fluida en diferentes navegadores y dispositivos.

Con esta entrada de blog, hemos dado respuesta a las tres preguntas principales:

  1. ¿Qué es la API Web Bluetooth? La API Web Bluetooth es una interfaz de JavaScript que permite a las aplicaciones web acceder y comunicarse con dispositivos Bluetooth, facilitando interacciones seguras.
  2. ¿Cómo se usa la API Web Bluetooth? Usa la API Web Bluetooth llamando a funciones como getAvailability(), getDevices() y requestDevice() para verificar el soporte de Bluetooth, listar dispositivos accesibles y solicitar el emparejamiento de dispositivos.
  3. ¿Por qué es importante la detección de Bluetooth para las passkeys? Al integrar la API Web Bluetooth en tu estrategia de implementación de passkeys, puedes construir una excelente solución de autenticación basada en passkeys que recurra a la CDA solo si hay dispositivos que pueden detectar el soporte de Bluetooth.

Para obtener más información sobre la API Web Bluetooth y una colección de ejemplos, haz clic aquí.

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