---
title: nforwardauth
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, authentication, forwardauth, nginx, sso, lightweight]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Authentication, https://github.com/nicholasgasior/nforwardauth]
---

# 🔐 nforwardauth

> ForwardAuth minimaliste pour Nginx : un serveur léger qui ajoute une couche d'authentification devant vos apps, alternative simplifiée à oauth2-proxy.

## 📋 Informations Générales

| Attribut | Valeur |
|----------|--------|
| **Nom** | nforwardauth |
| **Slug** | app-nforwardauth |
| **Description** | ForwardAuth léger pour Nginx (alternative oauth2-proxy) |
| **Site officiel** | https://github.com/nicholasgasior/nforwardauth |
| **Repository** | https://github.com/nicholasgasior/nforwardauth |
| **Stars** | 157 ⭐ |
| **Licence** | MIT |
| **Langage principal** | Go |
| **Catégorie** | Authentication |
| **Tags** | [catalogue, authentication, forwardauth, nginx, sso, lightweight] |

## 📝 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é)
```yaml
# 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

## 🔗 Pages Liées
- [[cat-authentication]]
- [[app-oauth2-proxy]] — Référence forward auth
- [[app-authelia]] — SSO avec 2FA
- [[app-nginx-proxy-manager]] ou [[app-traefik]]
- [[app-keycloak]] — IdM provider OIDC
- [[recettes-docker-compose]]
- [[securisation-home-lab]]
