Flujo de Autenticación en APIs con Tokens y Proveedores

Clase 20 de 33Curso de Creación de APIs con Ruby on Rails

Resumen

Comprende de forma clara cómo se autentican las peticiones en un API moderno: desde el browser y la single page application en JavaScript hasta el backend, el uso de tokens y la opción de un proveedor como Out 0. Aquí se explica el flujo básico: qué envía el cliente, qué valida el servidor y cómo se autoriza el acceso.

¿Cómo funciona la autenticación en un API con tokens?

La base es un intercambio seguro entre cliente y servidor. El usuario envía sus credenciales y, si son válidas, recibe un token de autenticación que identifica su sesión y permite acceder a recursos protegidos.

  • El browser inicia la solicitud de login.
  • La single page application envía credenciales: username y password.
  • El backend valida credenciales en la base de datos.
  • Si son válidas, genera un token: un string que identifica la sesión.
  • El cliente guarda el token y lo envía en solicitudes posteriores.
  • El backend usa el token para autorizar acciones como editar un blog post.
  • Diferencia clave: autenticación identifica al usuario; autorización permite o deniega acceso a recursos.

¿Qué rol cumplen el browser, la single page application y el backend?

Cada parte tiene responsabilidades claras para mantener la seguridad y la experiencia de uso.

  • Browser: punto de interacción del usuario.
  • Single page application en JavaScript: gestiona la vista y realiza peticiones al API.
  • Backend: procesa el login, consulta la base de datos, emite tokens y valida su envío en cada petición.
  • Cuando el token acompaña la solicitud, el backend verifica autenticación y realiza autorización según el recurso.
  • Alternativa de diseño: implementar autenticación y autorización en la propia aplicación o delegarlas en un proveedor.

¿Cuándo usar un proveedor de autenticación como Out 0?

Delegar el login en un proveedor confiable mejora la percepción de seguridad y simplifica la gestión de credenciales.

  • El login no va al backend propio: va al proveedor de autenticación.
  • El proveedor devuelve un token al cliente.
  • El browser guarda ese token y lo reutiliza en peticiones siguientes.
  • Ventaja percibida: más confianza del usuario, ya que las credenciales no se guardan en la aplicación propia.
  • Tipos de tokens: algunos son autocontenidos y no requieren llamadas adicionales; otros requieren consultar al proveedor para verificar validez.
  • En el proyecto: primero se implementa autenticación en el servidor propio y luego con Out 0.

¿Te gustaría que profundicemos en el envío del token en cabeceras o en cómo almacenar el token de forma segura en el browser? Deja tus preguntas y comentarios.

      Flujo de Autenticación en APIs con Tokens y Proveedores