E-OAU
OAuth2 Proxy
Proxy inverso que pone login OAuth/OIDC delante de apps HTTP que no lo tienen.
Sitio oficialVolver al catálogo
RESUMEN
OAuth2 Proxy se coloca delante de uno o más upstreams HTTP y exige un login a través de un proveedor de identidad — Google, GitHub, Azure, OIDC genérico y otros — antes de reenviar el tráfico. El acceso se puede limitar por dominio de email, fichero de allow-list o grupo del IdP. La config sale de flags, un archivo o variables OAUTH2_PROXY_*; ganan los flags.
Tras un login correcto la sesión vive en una cookie (por defecto) o en Redis. El proxy puede pasar headers de identidad al upstream (X-Forwarded-User, email, grupos o un bearer) o situarse detrás de Nginx/Traefik en modo auth_request y devolver solo un código de estado. Hay rutas skip-auth, JWT bearer e IPs de confianza para APIs y health checks — esos mismos knobs son lo primero a revisar cuando lo encuentras en un engagement.
CASOS DE USO
Casos de uso en un engagement
- 01
Poner SSO delante de un dashboard de lab o una app interna que solo habla HTTP.
- 02
Colocarlo detrás de Nginx o Ingress como auth_request para que la app nunca vea tráfico sin autenticar.
- 03
Restringir un upstream a un dominio de email o grupo del IdP en vez de una contraseña compartida.
- 04
Revisar el oauth2-proxy de un cliente en busca de rutas skip-auth, dominios de email con wildcard y headers forwarded falsificables.
PRIMEROS PASOS
Cuando una app interna o UI de lab no tiene auth propia y necesitas una puerta OIDC — o cuando encuentras este proxy delante de un objetivo.
- Registra una app OAuth en el IdP y pon la URL de redirect en https://<host>/oauth2/callback.
- Genera un cookie secret (16, 24 o 32 bytes) y saca client id, secret y cookie secret de la lista de procesos cuando puedas.
- Apunta --upstream a la app, --email-domain a la org y escucha en 127.0.0.1:4180.
- Corre --config-test y luego pon TLS o Nginx delante — no expongas el listener en crudo en 0.0.0.0.
oauth2-proxy --provider google --email-domain example.com --upstream http://127.0.0.1:8080/ --http-address 127.0.0.1:4180 --redirect-url https://app.example.com/oauth2/callback --client-id $CLIENT_ID --client-secret $CLIENT_SECRET --cookie-secret $COOKIE_SECRETANTES DE USARLA
Qué revisar antes de lanzarla
Con --reverse-proxy activo y --trusted-proxy-ip sin fijar, OAuth2 Proxy hoy confía en cualquier IP de origen para los headers X-Forwarded-* — un cliente que lo alcance en directo puede falsificarlos.
--email-domain=*, un --skip-auth-route amplio o --trusted-ip es un bypass de autenticación; trátalos como hallazgo al revisar un despliegue.
--show-debug-on-error puede volcar detalle sensible en páginas de error, y --ssl-insecure-skip-verify desactiva las comprobaciones TLS hacia el IdP — ninguno va en producción.