--- id: "INT-002" title: "Integracion OAuth Providers" type: "Integration" status: "Implemented" priority: "P1" provider: "Google/GitHub/Microsoft" category: "Authentication" multi_tenant: true version: "1.0.0" created_date: "2026-01-07" updated_date: "2026-01-10" --- # INT-002: OAuth Integration ## Metadata | Campo | Valor | |-------|-------| | Codigo | INT-002 | | Proveedor | Google, GitHub, Microsoft | | Tipo | Auth | | Estado | Implementado | | Multi-tenant | Si | | Fecha integracion | 2026-01-10 | --- **Documentacion completa:** Ver [SAAS-001-auth.md](../01-modulos/SAAS-001-auth.md) ## Resumen Integracion OAuth 2.0 para autenticacion con proveedores externos. ## Proveedores Soportados - Google - GitHub - Microsoft (Azure AD) ## Caracteristicas - OAuth 2.0 Authorization Code Flow - Almacenamiento de tokens en tabla oauth_connections - Vinculacion de cuentas existentes - Creacion automatica de usuarios nuevos ## Configuracion ```env GOOGLE_CLIENT_ID=... GOOGLE_CLIENT_SECRET=... GITHUB_CLIENT_ID=... GITHUB_CLIENT_SECRET=... ``` ## Rate Limits | Limite | Valor | Accion si excede | |--------|-------|------------------| | Requests/min | 10000 (Google), 5000 (GitHub) | Retry con backoff exponencial | ## Manejo de Errores | Codigo | Descripcion | Accion | |--------|-------------|--------| | 400 | Bad Request | Log + no retry | | 401 | Unauthorized | Renovar credenciales | | 429 | Rate Limited | Backoff exponencial | | 500 | Server Error | Retry con backoff | ## Fallbacks ### Estrategia OAuth Fallback | Escenario | Estrategia | |-----------|------------| | Provider no disponible | Mostrar login local con email/password | | Token expirado | Refresh automatico con refresh_token | | Refresh token falla | Redirigir a pantalla de login | | Nuevo usuario OAuth | Crear cuenta automatica con datos del provider | ### Degradacion Graceful - Si Google OAuth falla: Ofrecer GitHub o Microsoft como alternativa - Si todos los OAuth providers fallan: Solo login local disponible - Timeout por provider: 10 segundos maximo - Cache de configuracion: 5 minutos para reducir llamadas ## Multi-tenant - Credenciales: Por tenant (cada tenant puede configurar sus propios OAuth apps) - Configuracion: Por tenant via tenant_config - Aislamiento: Prefijo tenant_id en todas las operaciones ## Testing ### Sandbox/Test Mode - Usar aplicaciones OAuth de desarrollo - Usuarios de prueba en consolas de desarrollador - Fixtures disponibles para testing unitario ## Monitoreo | Metrica | Descripcion | Alerta | |---------|-------------|--------| | Latencia | Tiempo de respuesta | >2s | | Errores | Tasa de errores | >1% | | Disponibilidad | Uptime del servicio | <99.9% | ## Referencias - Modulo relacionado: SAAS-001-auth.md --- **Ultima actualizacion:** 2026-01-10 **Version:** 1.0.0