Prompt de IA
Prompt de IA
¿Usas IA para integrar Auth0? Añade este prompt a Cursor, Windsurf, Copilot, Claude Code o tu IDE con IA favorito para acelerar el desarrollo.
Este inicio rápido requiere:
- Python 3.9 o superior
- El gestor de paquetes pip
- jq: obligatorio para configurar Auth0 CLI
- Conocimientos de FastAPI
Crea un nuevo proyecto de FastAPI
Cree un directorio nuevo para su proyecto de FastAPI y configure un entorno virtual.
Instala las dependencias
Cree un archivo Instala las dependencias:
requirements.txt con las siguientes dependencias:requirements.txt
Configura tu API en Auth0
Necesitarás crear una API de Auth0 para representar tu aplicación FastAPI.Toma nota de los valores de dominio e Identifier (Audiencia). Los necesitarás en el siguiente paso.
- Dashboard
- CLI
- Ve a Applications > APIs en el Auth0 Dashboard
- Haz clic en Create API
- Indica un Name para tu API (por ejemplo, “My FastAPI API”)
- Configura el Identifier con el identificador de tu API (por ejemplo,
https://my-fastapi-api) - Deja el Signing Algorithm como RS256
- Haz clic en Create
El Identifier es un identificador único para tu API. Se recomienda usar una URL, pero no tiene que ser una URL de acceso público; Auth0 no hará llamadas a ella. Este valor no se puede modificar después.
Definir permisos de API
Los permisos (también conocidos como alcances) le permiten definir cómo se puede acceder a su API. Puede crear permisos para su API en el Auth0 Dashboard.
- En el Auth0 Dashboard, vaya a la pestaña Permissions de su API.
- Agregue los siguientes permisos:
read:messagescon la descripción “Leer mensajes”write:messagescon la descripción “Escribir mensajes”
Configurar el cliente de Auth0
Crea un archivo Reemplaza
.env en el directorio raíz de tu proyecto para almacenar la configuración de Auth0:.env
YOUR_AUTH0_DOMAIN por tu dominio de Auth0 (por ejemplo, dev-abc123.us.auth0.com) y YOUR_API_IDENTIFIER por el identificador que configuraste al crear tu API.Ahora crea un archivo app.py e inicializa tu aplicación de FastAPI con Auth0:app.py
Crear rutas protegidas
Agrega las siguientes rutas a tu archivo El método
app.py. Estas rutas muestran distintos niveles de control de acceso:app.py
require_auth() valida el token de acceso enviado en el encabezado Authorization. Cuando se invoca con el parámetro scopes, también verifica que el token contenga el permiso especificado.Pruebe su API
Obtén un token de acceso
- Ve a Applications > APIs en el Auth0 Dashboard
- Selecciona tu API
- Haz clic en la pestaña Test
- Haz clic en Copy Token en la sección Asking Auth0 for tokens from my application
Llama a tu API
read:messages:
Uso avanzado
Validar claims personalizados
Validar claims personalizados
Puede acceder a los claims personalizados que se hayan agregado al token de acceso mediante Auth0 Actions.Acceda a los claims personalizados en el controlador de la ruta:Para agregar claims personalizados a sus tokens de acceso, cree una Action de Auth0:
- Vaya a Actions > Library en el Auth0 Dashboard
- Haga clic en Create Action
- Seleccione Build from scratch
- Asigne un nombre a su acción y seleccione el desencadenador Login / Post Login
- Agregue sus claims personalizados:
- Haga clic en Deploy y agregue la acción a su flujo de Login
Los claims personalizados deben usar un formato con espacio de nombres (por ejemplo,
https://myapp.example.com/claim_name) para evitar conflictos con los claims estándar.Proteger endpoints sin usar claims
Proteger endpoints sin usar claims
Si necesita proteger un endpoint, pero no necesita acceder a los claims, puede usar el parámetro Esto valida el token de acceso, pero no inyecta los claims en su función.
dependencies:Compatibilidad con DPoP
Compatibilidad con DPoP
DPoP (Demonstrating Proof-of-Possession) está actualmente en Early Access. Póngase en contacto con el soporte de Auth0 para habilitarlo en su inquilino.
Authorization: DPoP <token> y DPoP: <proof>. El SDK valida automáticamente la prueba DPoP y la vincula al token de acceso.Configurar para proxy inverso
Configurar para proxy inverso
Si su aplicación se ejecuta detrás de un proxy inverso (nginx, AWS ALB, etc.), debe habilitar la confianza en el proxy para que la validación de DPoP funcione correctamente:Configure su proxy inverso para reenviar los encabezados necesarios:Esto es esencial para la validación de DPoP porque el SDK necesita hacer coincidir la URL exacta que usó el cliente. Sin confianza en el proxy, su aplicación ve URL internas, mientras que las pruebas DPoP hacen referencia a URL externas, lo que provoca errores de validación.
Gestión de errores
Gestión de errores
El SDK lanza Los errores de autenticación incluyen:
HTTPException ante errores de autenticación. FastAPI las gestiona automáticamente y devuelve al cliente las respuestas HTTP adecuadas.Si es necesario, puede implementar una gestión de errores personalizada:- 401 Unauthorized: Falta el token de acceso, no es válido o ha caducado
- 403 Forbidden: Token válido, pero con permisos insuficientes (alcances)
Problemas comunes
401 No autorizado - Audiencia no válida
401 No autorizado - Audiencia no válida
Problema: La validación del token falla con el error “Audiencia no válida”.Solución: Verifica que
AUTH0_AUDIENCE en tu archivo .env coincida exactamente con el Identifier que configuraste para tu API en el Auth0 Dashboard.- Abre el Auth0 Dashboard y ve a Applications > APIs
- Selecciona tu API
- Comprueba el valor de Identifier en la pestaña Settings
- Actualiza tu archivo
.env: - Reinicia la aplicación
401 No autorizado - Emisor no válido
401 No autorizado - Emisor no válido
Problema: La validación del token falla con el error “Emisor no válido”.Solución: Verifica que
AUTH0_DOMAIN sea correcto y no incluya el protocolo https://.Tu dominio debe tener este formato: dev-abc123.us.auth0.com, no https://dev-abc123.us.auth0.com.Actualiza tu archivo .env:403 Prohibido - Scope insuficiente
403 Prohibido - Scope insuficiente
Problema: El endpoint protegido devuelve un 403 incluso con un token de acceso válido.Solución: El token de acceso no incluye el scope requerido.
- Comprueba qué alcances requiere tu endpoint
- Al solicitar un token, asegúrate de incluir los alcances requeridos
- Verifica que el scope exista en la pestaña Permissions de tu API en el Auth0 Dashboard
- Decodifica tu token en jwt.io para verificar que contiene la claim
scopecon los valores requeridos
ModuleNotFoundError: No module named 'fastapi_plugin'
ModuleNotFoundError: No module named 'fastapi_plugin'
Problema: Python no puede encontrar el SDK de Auth0 para FastAPI.Solución: Asegúrate de que el SDK esté instalado en tu entorno virtual activo.
No se puede conectar a Auth0 (error al obtener JWKS)
No se puede conectar a Auth0 (error al obtener JWKS)
Problema: La aplicación no puede obtener las claves de firma de Auth0.Solución: Comprueba la conectividad de red y la configuración del dominio.
-
Verifica que tu dominio sea accesible:
-
Comprueba que tu firewall permita conexiones HTTPS salientes (puerto 443) a
*.auth0.com -
Si estás detrás de un proxy corporativo, configura las variables de entorno
HTTP_PROXYyHTTPS_PROXY
La validación de DPoP falla
La validación de DPoP falla
Problema: La autenticación DPoP devuelve errores relacionados con la validación de la URL o de la prueba.Solución:
-
Si estás detrás de un proxy inverso, habilita la confianza en el proxy:
-
Verifica que tu proxy reenvíe estos encabezados:
X-Forwarded-ProtoX-Forwarded-HostX-Forwarded-Prefix
- Asegúrate de que DPoP esté habilitado para tu inquilino (contacta con el soporte de Auth0)
-
Verifica que la claim
htude la prueba DPoP coincida exactamente con la URL de tu solicitud
Próximos pasos
Documentación del SDK
Explora el SDK de Auth0 para FastAPI en GitHub para ver ejemplos y configuraciones avanzadas
Alcances y permisos
Aprende a definir y usar alcances para un control de acceso detallado
Auth0 Actions
Personaliza tu flujo de autenticación y agrega claims personalizadas a los tokens
Documentación de FastAPI
Más información sobre las funciones de FastAPI, los patrones asíncronos y las prácticas recomendadas
Autorización de API
Implementa el control de acceso basado en roles (RBAC) para tu API
Implementar en producción
Prácticas recomendadas para implementar aplicaciones de FastAPI con Auth0