Prompt de IA
Prompt de IA
- 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
Instala las dependencias
requirements.txt con las siguientes dependencias:Configura tu API en Auth0
- 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
Definir permisos de API
- 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
.env en el directorio raíz de tu proyecto para almacenar la configuración de Auth0: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:Crear rutas protegidas
app.py. Estas rutas muestran distintos niveles de control de acceso: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.Ejecuta la API
http://localhost:8000.http://localhost:8000/api/public en tu navegador. Deberías ver el mensaje público sin necesidad de autenticarte.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
- 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
https://myapp.example.com/claim_name) para evitar conflictos con los claims estándar.Proteger endpoints sin usar claims
Proteger endpoints sin usar claims
dependencies:Compatibilidad con DPoP
Compatibilidad con DPoP
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
Gestión de errores
Gestión de errores
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
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
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
- 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'
No se puede conectar a Auth0 (error al obtener JWKS)
No se puede conectar a Auth0 (error al obtener JWKS)
-
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
-
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