Description
nforwardauth est un serveur ForwardAuth minimaliste écrit en Go, conçu spécifiquement pour s'interfacer avec Nginx via le module auth_request. Il agit comme un point de contrôle d'authentification centralisé : Nginx interroge nforwardauth avant de laisser passer une requête vers une app upstream, et nforwardauth vérifie la session/cookie de l'utilisateur.
L'idée est de proposer une alternative plus simple et plus rapide à configurer que oauth2-proxy pour les utilisateurs de Nginx (par opposition à Traefik, qui a forwardauth natif). Le projet supporte plusieurs providers OIDC (Google, GitHub, Authentik, Keycloak...), gère la session via cookies signés, et fournit une page de login personnalisable.
Idéal pour les homelabs qui utilisent Nginx comme reverse proxy et qui veulent ajouter une auth devant quelques services sans déployer un IdM complet. Très léger, configuration simple, parfait pour les petits déploiements.
Installation
Via Docker (recommandé)
# docker-compose.yml
services:
nforwardauth:
image: ghcr.io/nicholasgasior/nforwardauth:latest
ports:
- "4180:4180"
environment:
NFA_PROVIDER: oidc
NFA_OIDC_ISSUER: https://authentik.example.com/application/o/myapp
NFA_OIDC_CLIENT_ID: nforwardauth
NFA_OIDC_CLIENT_SECRET: secret-ici
NFA_COOKIE_SECRET: changez-moi-32-caracteres-min
NFA_REDIRECT_URL: https://auth.example.com/oauth2/callback
restart: unless-stopped
Installation manuelle
Télécharger le binaire Go depuis GitHub Releases, créer un fichier de configuration YAML ou variables d'environnement, lancer ./nforwardauth. Prévoir Nginx avec auth_request configuré.
Configuration
- Provider OIDC : n'importe quel IdM compatible (Authentik, Keycloak, Auth0, Google)
- Cookies : secrets signés HMAC, durée configurable
- Nginx : directive
auth_request /oauth2/authsur les locations - Whitelist : bypass d'auth pour certains chemins (/health, /static)
- Headers : transmission email, username, groups vers l'upstream
Alternatives
- oauth2-proxy — référence, plus complet et mature
- Authelia — SSO avec 2FA intégré, multi-proxy
- Traefik ForwardAuth — middleware natif Traefik
Sécurité
- Toujours servir via HTTPS (Nginx + Let's Encrypt)
- Utiliser un cookie secret robuste (32+ caractères)
- Configurer
SameSite=Strictsur les cookies de session - Surveiller les logs pour détecter les tentatives d'intrusion
Ressources
- Repository GitHub : https://github.com/nicholasgasior/nforwardauth
- Documentation : README du dépôt
