Retour aux outils
AutreIntermédiaireOpen sourceAuto-hébergeable

nforwardauth

ForwardAuth minimaliste pour Nginx : un serveur léger qui ajoute une couche d'authentification devan

MAJ 2026-06-14
nforwardauth
Code source★ 0

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,

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/auth sur 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=Strict sur 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