Passkeys en Supabase

Cómo configurar Passkeys en Supabase: Guía Definitiva 2026

¿Sigues pidiendo a tus usuarios que recuerden contraseñas en pleno 2026? A estas alturas, las credenciales tradicionales son el eslabón más débil de tu arquitectura de seguridad. Con el auge del phishing y el relleno de credenciales, la industria se ha movido masivamente hacia el estándar WebAuthn.

Implementar Passkeys en Supabase no solo mejora la tasa de conversión en tu registro, sino que reduce drásticamente el riesgo de brechas de datos. En esta guía, te mostraré cómo integrar esta tecnología de vanguardia utilizando el soporte nativo de Supabase Auth y la API de credenciales de los navegadores modernos.

A lo largo de este tutorial, configuraremos un flujo de autenticación que aprovecha la biometría (FaceID, TouchID, Windows Hello) para que tus usuarios accedan a sus cuentas en milisegundos, sin fricción y con seguridad de nivel bancario.

Seguridad digital y autenticación biométrica

Entendiendo el ecosistema WebAuthn y Passkeys

Las Passkeys son esencialmente pares de claves criptográficas asimétricas. La clave pública vive en el servidor (Supabase), mientras que la privada se almacena en el Secure Enclave o TPM del dispositivo del usuario.

¿Por qué es el estándar en 2026?

  • Resistencia al Phishing: Al estar vinculadas al dominio, es imposible engañar al usuario para que introduzca su clave en un sitio falso.
  • Sin contraseñas: Eliminamos la fatiga de contraseñas y el riesgo de reutilización entre servicios.
  • Sincronización: Gracias a iCloud Keychain, Google Password Manager y Windows Hello, la clave acompaña al usuario.

Configuración del proyecto en Supabase

Para empezar, asegúrate de tener una versión de Supabase CLI superior a v2.10.0. La configuración requiere habilitar los proveedores de autenticación externos y configurar los dominios permitidos.

  1. Accede a tu Dashboard de Supabase.
  2. Navega a Authentication > Providers.
  3. Asegúrate de que el servicio de WebAuthn esté habilitado en la configuración de Auth.
💡 Consejo Pro: No olvides definir correctamente los Redirect URLs en la sección URL Configuration. Si tu app corre en localhost, asegúrate de añadir http://localhost:[PUERTO] para evitar errores de origen cruzado (CORS).

Implementación del registro y autenticación

El flujo se divide en dos fases: el registro (creación de la credencial) y la autenticación (desafío). Utilizaremos el SDK de Supabase JS junto con la API nativa navigator.credentials.

Pasos para el registro

  1. Llamar a supabase.auth.beginWebAuthnRegistration() para obtener el desafío del servidor.
  2. Ejecutar navigator.credentials.create() en el cliente.
  3. Enviar la respuesta a supabase.auth.completeWebAuthnRegistration().
FaseMétodo SDKPropósito
RegistrobeginRegistrationSolicita el reto al servidor
LoginbeginLoginInicia el proceso de firma

Gestión de errores y UX avanzada

No todos los dispositivos soportan Passkeys de la misma forma. Es vital implementar un flujo de respaldo (fallback) mediante Magic Links o OTP por correo electrónico.

  • Error de soporte: Verifica window.PublicKeyCredential antes de mostrar el botón de Passkey.
  • Cancelación del usuario: Gestiona el error NotAllowedError cuando el usuario cancela el prompt biométrico.
⚠️ Importante: Nunca dependas exclusivamente de Passkeys. Mantén siempre un método de recuperación de cuenta (como un código de un solo uso en el email) para evitar que el usuario pierda su cuenta si pierde su dispositivo.

Ventajas y Desventajas

✅ Ventajas

  • Seguridad superior frente a ataques de fuerza bruta.
  • Experiencia de usuario fluida y rápida.
  • Cumplimiento con normativas de seguridad (GDPR/SOC2).

❌ Desventajas

  • Complejidad técnica en la implementación inicial.
  • Dependencia de la disponibilidad del hardware del cliente.

Preguntas Frecuentes

¿Qué pasa si el usuario cambia de móvil?

Si las Passkeys están sincronizadas en la nube (iCloud o Google), el usuario podrá acceder a su cuenta en el nuevo dispositivo automáticamente mediante la cuenta de usuario del sistema operativo.

¿Es compatible con navegadores antiguos?

El soporte es excelente en Chrome, Safari, Edge y Firefox desde 2023. Sin embargo, no funcionará en navegadores muy antiguos o versiones de Internet Explorer, por lo que el fallback es obligatorio.

¿Supabase almacena mis datos biométricos?

No. Supabase solo almacena la clave pública. Los datos biométricos nunca abandonan el dispositivo del usuario; el sistema operativo solo confirma una firma criptográfica correcta.

Conclusión

  • Las Passkeys son el futuro inevitable de la autenticación web.
  • Supabase facilita enormemente el manejo de la infraestructura criptográfica.
  • El equilibrio entre seguridad y experiencia de usuario es inmejorable.

¿Ya estás utilizando autenticación sin contraseñas en tus proyectos? Cuéntanos tu experiencia en los comentarios o comparte tus dudas técnicas.

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *