No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

¿Cómo configurar una API en Auth0?

11/28
Recursos

¿Cómo configurar un API en Auth0?

Configurar un API en Auth0 es una tarea esencial para garantizar la seguridad de tus aplicaciones, especialmente cuando se trata de proteger APIs externas. Es un proceso sencillo, pero requiere entender claramente los conceptos de autenticación y autorización. En este artículo, desglosamos los pasos principales para configurar tu API en Auth0 y asegurarte de que tu proxy server esté protegido.

¿Qué hemos aprendido hasta ahora?

Hemos implementado autenticación en nuestra aplicación Fabler, lo que significa que estamos identificando a nuestros usuarios y asegurando la protección de la aplicación. Cada vez que un usuario intenta entrar sin estar logueado, el sistema presenta el Universal Login de Auth0.

En este setup, cuando usamos servicios de autenticación como GitHub, Auth0 devuelve un ID token que utilizamos para la autenticación de usuarios. Sin embargo, nuestra aplicación cuenta con un proxy server, que actúa como servidor de imágenes, funcionando como una API externa, que necesita protección extra para evitar accesos no autorizados.

¿Por qué Auth0 necesita conocer el proxy server?

En el flujo de OAuth, existen cuatro roles principales: el cliente (Next.js en este caso), el servidor de autorización (Auth0), el propietario del recurso (el usuario) y el resource server (nuestro proxy server de imágenes). Mientras que servicios como Spotify pueden tener el servidor de autorización y de recursos en la misma entidad, en nuestro caso, estamos tercerizando el servidor de autorización con Auth0. Por ello, Auth0 debe estar al tanto de la existencia de este proxy server para poder proteger la API.

El SDK de Auth0 con Next implementa el authorization code flow con PKCE, un flujo complejo que vale la pena entender en profundidad para manejarlo adecuadamente en el futuro. Este flujo permite a Auth0 devolver un access token tras la autenticación, necesario para realizar peticiones seguras al proxy server.

¿Cómo crear y proteger un API en Auth0?

Para permitir que Auth0 proteja tu API externa:

  1. Accede al dashboard de Auth0 y dirige a la sección de Applications y APIs.

  2. Crea un nuevo API:

    • Asigna un nombre relevante, como "proxy server API".
    • Utiliza un identificador, que puede ser una URL ficticia, para identificarlo fácilmente. Por ejemplo: image.fabler.co.
    • Deja el algoritmo de firmado predeterminado y completa la creación.
  3. Configura los permisos:

    • Ve al tab de permissions y añade un nuevo scope. Por ejemplo, read:images, otorgando así el permiso de leer imágenes.
  4. Conectar el identifier a tu aplicación:

    • El identifier creado se usará como audience en el access token emitido por Auth0. Esto asegura que solo los tokens destinados a tu API puedan acceder a ella.

¿Cuándo y cómo validar una API sin Auth0?

La validación de una API debe realizarse cada vez que sea necesario asegurar que solo usuarios autorizados puedan acceder a ciertos recursos. Esto puede lograrse sin Auth0 implementando cualquier mecanismo de autenticación y autorización desde cero, como:

  • Usar OAuth directamente sin intermediarios.
  • Implementar JWT (JSON Web Tokens) de forma personalizada.
  • Configurar sistemas básicos de autenticación como Basic Auth o API Keys, aunque estas últimas son menos seguras.

A medida que avances en tu aprendizaje sobre OAuth y sistemas de seguridad como Auth0, te animamos a experimentar con diferentes métodos de protección y a comentar tus experiencias y hallazgos con otros estudiantes. ¡Sigue explorando y nunca dejes de aprender!

Aportes 2

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Este video debería estar al principio de esta sección, me volví loco por horas tratando de resolver los errores que tenía.

Me parece que esta clase es la anterior. Esto explica muchas cosas, en especial el scope!