Description
Authelia est un serveur d'authentification SSO et d'autorisation qui se place en reverse proxy devant vos applications web. Contrairement à un IdM complet comme Keycloak, Authelia ne gère pas un annuaire central d'utilisateurs pour vos apps : il ajoute une couche d'authentification devant des services qui n'en ont pas nativement.
Le projet supporte OIDC (depuis la v4.38), la double authentification (TOTP/WebAuthn), les mots de passe à usage unique par email, et fournit un système de contrôle d'accès par ACL (Access Control Lists). Il s'intègre nativement avec Traefik, NGINX, Caddy et HAProxy.
Authelia est particulièrement populaire dans les homelabs pour protéger Grafana, Portainer, Jellyfin, Nextcloud et tout service sans SSO natif. Léger (un seul binaire Go), peu gourmand en ressources, et configuration par fichier YAML simple.
Installation
Via Docker (recommandé)
# docker-compose.yml
services:
authelia:
image: authelia/authelia:latest
volumes:
- ./authelia:/config
ports:
- "9091:9091"
environment:
AUTHELIA_JWT_SECRET_FILE: /config/secrets/jwt
restart: unless-stopped
Installation manuelle
Télécharger le binaire depuis GitHub Releases, créer configuration.yml, lancer ./authelia. Prévoir un reverse proxy en amont (Traefik, NGINX) pour gérer HTTPS.
Configuration
- Authentication Backend : fichier YAML ou LDAP
- Storage : SQLite, MySQL, PostgreSQL ou in-memory
- Access Control : règles par domaine, sous-domaine, méthode HTTP
- Session : durée, cookies sécurisés (same-site, http-only)
- Notifier : email (SMTP) pour OTP et alertes
Alternatives
- authentik — IdM complet avec UI, plus puissant mais plus lourd
- Keycloak — IdM enterprise avec SAML, federation
- oauth2-proxy — Reverse proxy OIDC pur, sans 2FA natif
Sécurité
- Toujours déployer derrière HTTPS (Traefik/NGINX)
- Activer TOTP ou WebAuthn pour le MFA
- Sauvegarder le secret JWT et la base de stockage
- Activer le rate limiting sur le backend de session
Ressources
- Site officiel : https://www.authelia.com
- Repository GitHub : https://github.com/authelia/authelia
- Documentation : https://www.authelia.com/integration/proxies/
