Saltar al contenido principal
Esta guía de inicio rápido está actualmente en beta. ¡Nos encantaría conocer tus comentarios!

Usa IA para integrar Auth0

Si usas un asistente de programación con IA como Claude Code, Cursor o GitHub Copilot, puedes agregar autenticación de Auth0 automáticamente en minutos con agent skills.Instalación:
Luego, pide a tu asistente de IA:
Tu asistente de IA creará automáticamente tu API de Auth0, obtendrá las credenciales, agregará la dependencia del SDK de Auth0 para la API de Spring Boot, configurará application.yml e implementará una SecurityFilterChain con validación de JWT y endpoints protegidos. Documentación completa de agent skills →
Requisitos previos: Antes de comenzar, asegúrate de tener instalado lo siguiente:
  • JDK 17+ para compatibilidad con Spring Boot 3.2+
  • Maven 3.6+ o Gradle 7+ para gestionar dependencias
  • Tu IDE preferido (IntelliJ IDEA, Eclipse o VS Code con soporte para Java)
Compatibilidad de versiones de Java: Esta guía de inicio rápido funciona con Java 17+ y Spring Boot 3.2+.

Primeros pasos

Esta guía de inicio rápido muestra cómo agregar la autenticación JWT de Auth0 a una API de Spring Boot. Creará una API segura con endpoints protegidos mediante el SDK de API de Spring Boot de Auth0.
1

Crear un nuevo proyecto

Cree un nuevo proyecto de API con Spring Boot para esta guía de inicio rápido:Con Spring Initializr:
O créelo manualmente con Maven:
2

Añade el SDK de Auth0

Añade el SDK de API de Auth0 para Spring Boot a las dependencias de tu proyecto:Maven (pom.xml):
Gradle (build.gradle):
3

Configura la API de Auth0

A continuación, debes crear una nueva API en tu tenant de Auth0 y agregar la configuración a tu proyecto.Puede hacerlo automáticamente ejecutando un comando de CLI o de forma manual a través del Dashboard:
Ejecuta el siguiente comando de shell en el directorio raíz de tu proyecto para crear una API de Auth0 y actualizar el archivo application.yml:
4

Configurar la autenticación

Crea una clase de configuración de seguridad para habilitar la autenticación con JWT de Auth0. Crea src/main/java/com/example/auth0api/SecurityConfig.java:
src/main/java/com/example/auth0api/SecurityConfig.java
5

Crear endpoints públicos y protegidos

Cree endpoints de API para probar la autenticación. Cree src/main/java/com/example/auth0api/ApiController.java:
src/main/java/com/example/auth0api/ApiController.java
6

Inicia tu API

Inicie la aplicación Spring Boot:Maven:
Gradle:
Tu API ya está en ejecución en http://localhost:8080 (consulta la salida de la consola para ver la URL exacta).
Punto de verificaciónAhora deberías tener una API protegida por Auth0 totalmente funcional ejecutándose en tu localhost

Uso avanzado

Pruebe sus endpoints protegidos con un token de acceso.1. Obtenga un token de acceso de Auth0 mediante el flujo Client Credentials:
Para obtener YOUR_CLIENT_ID y YOUR_CLIENT_SECRET, cree una aplicación Machine to Machine en el Auth0 Dashboard y autorícela para su API.
2. Pruebe el endpoint público (debe devolver 200 OK):
3. Pruebe el endpoint protegido sin autenticación (debe devolver 401 Unauthorized):
4. Llame al endpoint protegido con el token:
Acceda a información adicional del usuario y a los claims del token en sus endpoints.
Implemente un control de acceso detallado mediante los alcances de JWT para mejorar la seguridad.1. Defina alcances en su API de Auth0:En Auth0 Dashboard → APIs → Your API → Permissions, agregue alcances:
  • read:users - Leer datos de usuario
  • write:users - Escribir datos de usuario
  • admin - Acceso administrativo
2. Configure políticas de autorización:
Al solicitar un token de acceso, incluya el alcance requerido:
Habilite DPoP (Demonstration of Proof-of-Possession) para reforzar la seguridad de los tokens al vincular los tokens de acceso a claves criptográficas.Configure la compatibilidad con DPoP en application.yml:
Modos de DPoP:
  • ALLOWED (predeterminado): Acepta tokens Bearer y DPoP
  • REQUIRED: Solo acepta tokens DPoP; rechaza tokens Bearer
  • DISABLED: Solo validación estándar de JWT Bearer
    Obtenga más información sobre DPoP en la documentación de DPoP de Auth0.

Problemas comunes

Problema: La API devuelve un 401 incluso con tokens válidos.Solución: Asegúrate de que auth0.audience coincida exactamente con el identificador de tu API en Auth0. La reclamación audience del token debe coincidir con este valor.
Problema: La validación del emisor del token falla.Solución: Verifica que tu dominio sea correcto y que no incluya https://. Usa el dominio sin el prefijo https://.
Problema: La aplicación no se inicia debido a errores de configuración.Solución: Verifica la estructura de application.yml y los nombres de las propiedades. Asegúrate de que la sección auth0 contenga los valores de dominio y audiencia.
Problema: La autenticación no funciona a pesar de que la configuración es correcta.Solución: Asegúrate de que Auth0AuthenticationFilter esté correctamente integrado en la cadena de Spring Security. El filtro debe agregarse antes de UsernamePasswordAuthenticationFilter.
Problema: Fallos al recuperar JWKS o tiempos de espera de conexión.Solución: Es posible que el firewall corporativo esté bloqueando los endpoints de Auth0. Agrega los dominios de Auth0 a la lista permitida para el acceso por HTTPS:
Problema: Las políticas de autorización basadas en alcances siempre fallan.Solución: Asegúrate de que tu token de acceso incluya los alcances necesarios. Al solicitar un token, especifica los alcances:
También verifica que los alcances estén definidos en la configuración de tu API de Auth0 (Dashboard → APIs → Tu API → Permissions).

Recursos adicionales

Documentación del SDK

Documentación completa del SDK y referencia de la API

Ejemplos de código

Amplia colección de ejemplos de código y patrones de integración

Documentación de DPoP

Más información sobre la mejora de seguridad mediante prueba de posesión

Referencia de Spring Security

Documentación oficial de Spring Security

Auth0 Dashboard

Administre sus API y aplicaciones de Auth0

Foro de la comunidad

Obtenga ayuda de la comunidad de Auth0

Aplicación de ejemplo

En el repositorio del SDK hay disponible una aplicación de ejemplo completa que muestra todas las funciones.

Aplicación de entorno de pruebas

Incluye endpoints públicos y protegidos, compatibilidad con DPoP y ejemplos completos
Clone y ejecute:
Prueba con curl: