📍 Article principal du cluster : Vaultwarden self-hosted 2026 : guide complet. Lisez le pilier pour la vue d’ensemble.
Avoir 12 services internes auto-hébergés (Vaultwarden, Forgejo, Grafana, Uptime Kuma, n8n, NocoDB, Plausible, Outline, Penpot, Listmonk, Mailcow, Coolify) et autant de mots de passe différents pour chaque collaborateur, c’est l’enfer opérationnel. Avec Authelia en façade, vous transformez tout cela en un seul login par utilisateur, avec 2FA centralisé. Ce tutoriel détaille le branchement de Vaultwarden derrière Authelia pour une PME de 5 à 50 personnes à Dakar, Abidjan ou Cotonou.
Prérequis
- Vaultwarden déjà déployé et fonctionnel (voir Déployer Vaultwarden sur Coolify).
- VPS Linux avec Docker et Caddy ou Traefik.
- Un nom de domaine maîtrisé (par exemple
auth.votre-entreprise.cometvault.votre-entreprise.com). - Niveau attendu : avancé (vous comprenez OIDC, JWT, reverse proxy).
- Temps estimé : 1 à 2 heures.
Étape 1 — Comprendre l’architecture
Authelia est un serveur d’authentification open source écrit en Go, qui agit en deux modes : forward authentication (Authelia valide chaque requête HTTP via le reverse proxy) et OIDC provider (Authelia délivre des tokens à des applications compatibles). Vaultwarden ne supportant pas OIDC nativement (uniquement Bitwarden Enterprise le fait), nous utiliserons le mode forward authentication.
Schéma : utilisateur → Caddy (reverse proxy) → Authelia (authentification + 2FA) → Vaultwarden si validé. L’utilisateur saisit son login Authelia une fois, puis accède transparente à tous les services protégés.
Étape 2 — Installer Authelia
Créez un dossier /srv/authelia et un fichier docker-compose.yml :
services:
authelia:
image: authelia/authelia:4.39
container_name: authelia
volumes:
- ./config:/config
environment:
- TZ=Africa/Dakar
restart: unless-stopped
networks:
- proxy
redis:
image: redis:7-alpine
container_name: authelia-redis
volumes:
- ./redis:/data
restart: unless-stopped
networks:
- proxy
networks:
proxy:
external: true
Lancez : docker compose up -d. Authelia démarre sur le port 9091 interne.
Étape 3 — Configurer Authelia
Éditez /srv/authelia/config/configuration.yml. Voici la configuration minimale fonctionnelle pour une PME :
theme: dark
default_redirection_url: https://vault.votre-entreprise.com
server:
host: 0.0.0.0
port: 9091
log:
level: info
authentication_backend:
file:
path: /config/users_database.yml
access_control:
default_policy: deny
rules:
- domain: vault.votre-entreprise.com
policy: two_factor
subject: "group:vault-users"
- domain: forgejo.votre-entreprise.com
policy: one_factor
session:
name: authelia_session
domain: votre-entreprise.com
expiration: 12h
inactivity: 1h
redis:
host: authelia-redis
port: 6379
regulation:
max_retries: 3
find_time: 2m
ban_time: 5m
storage:
encryption_key: 'générez-une-clé-aléatoire-de-64-caractères-ici'
local:
path: /config/db.sqlite3
notifier:
smtp:
host: smtp-relay.brevo.com
port: 587
username: votre-login@brevo.com
password: votre-clé-api
sender: noreply@votre-entreprise.com
totp:
issuer: votre-entreprise.com
digits: 6
Étape 4 — Déclarer les utilisateurs
Authelia supporte trois backends d’utilisateurs : fichier YAML (parfait pour moins de 50 personnes), LDAP/Active Directory, ou base SQL. Pour une PME, le fichier suffit. Créez /srv/authelia/config/users_database.yml :
users:
amadou:
displayname: "Amadou Diop"
password: "$argon2id$v=19$m=65536$..."
email: amadou@votre-entreprise.com
groups:
- vault-users
- admins
fatou:
displayname: "Fatou Sarr"
password: "$argon2id$v=19$m=65536$..."
email: fatou@votre-entreprise.com
groups:
- vault-users
Hashez les mots de passe avec :
docker run --rm -it authelia/authelia:4.39 authelia hash-password mot-de-passe-clair
Étape 5 — Configurer Caddy pour la forward auth
Sur votre Caddyfile :
auth.votre-entreprise.com {
reverse_proxy authelia:9091
}
vault.votre-entreprise.com {
forward_auth authelia:9091 {
uri /api/verify?rd=https://auth.votre-entreprise.com
copy_headers Remote-User Remote-Groups Remote-Name Remote-Email
}
reverse_proxy vaultwarden:80
}
Redémarrez Caddy : caddy reload. La prochaine fois qu’un utilisateur tente d’accéder à vault.votre-entreprise.com, il sera redirigé vers le portail Authelia.
Étape 6 — Configurer 2FA TOTP
Au premier login d’un utilisateur, Authelia envoie un email avec un lien d’activation 2FA. L’utilisateur clique, scanne un QR code avec Aegis ou Authy, saisit le code à 6 chiffres pour valider. À partir de là, chaque login Vaultwarden requiert son master password Vaultwarden ET le code TOTP Authelia. Niveau de sécurité : très élevé.
Étape 7 — Vérification de bout en bout
Test complet :
- Ouvrir un navigateur en mode incognito.
- Aller sur
https://vault.votre-entreprise.com. - Constater la redirection vers
https://auth.votre-entreprise.com. - Saisir login + mot de passe Authelia + code TOTP.
- Constater le retour automatique sur Vaultwarden, suivi de l’écran de saisie du master password Vaultwarden.
- Saisir le master password Vaultwarden, accéder au coffre.
Tester aussi la déconnexion : se déconnecter depuis Authelia (/logout) doit invalider l’accès à tous les services protégés.
Étape 8 — Ajouter d’autres services
Pour ajouter Forgejo, Grafana, Uptime Kuma, etc., il suffit d’ajouter le bloc forward_auth Caddy correspondant et la règle access_control dans Authelia. Les utilisateurs gardent un seul login pour tout l’écosystème interne.
Erreurs fréquentes
| Erreur | Cause | Solution |
|---|---|---|
| Boucle de redirection infinie | Cookie domain trop strict | Mettre session.domain sur le domaine parent (ex: votre-entreprise.com) |
| Code TOTP invalide systématiquement | Horloge serveur décalée | Activer NTP : timedatectl set-ntp true |
| Authelia refuse tout login | Hash de mot de passe mal formaté | Régénérer avec authelia hash-password via Docker |
| Email 2FA jamais reçu | SMTP non testé | Vérifier les logs Authelia, tester avec swaks |
| API Vaultwarden bloquée | Forward auth aussi sur les routes API | Exclure /api/* et /identity/* du forward_auth pour les clients mobile |
| Lenteur sur l’accès | Redis lent ou indisponible | Vérifier que le container Redis est sain, augmenter la mémoire allouée |
Cas particulier des clients mobile et bureau
Les applications Bitwarden mobile (iOS, Android) et bureau (Windows, macOS, Linux) ne savent pas gérer une page web Authelia. Vous devez exclure les routes API du forward auth pour qu’elles continuent à fonctionner :
vault.votre-entreprise.com {
@api path /api/* /identity/* /icons/* /attachments/* /notifications/*
reverse_proxy @api vaultwarden:80
forward_auth authelia:9091 {
uri /api/verify?rd=https://auth.votre-entreprise.com
}
reverse_proxy vaultwarden:80
}
Avec cette configuration, le web vault est protégé par Authelia, mais les apps mobile s’authentifient directement avec leur master password Vaultwarden. La sécurité reste élevée car Vaultwarden a son propre 2FA.
Adaptation au contexte ouest-africain
Trois ajustements pour les PME africaines. Latence des emails de récupération : Brevo et Resend délivrent en quelques secondes vers Gmail et Outlook, mais peuvent mettre 5 à 10 minutes vers Yahoo Mail (encore très utilisé en Afrique). Augmentez le délai d’expiration du token de récupération à 30 minutes via la variable identity_validation.reset_password.jwt_lifespan. Connexions intermittentes : Authelia met en cache les sessions pendant 12 heures par défaut. Si un commercial sur le terrain à Saint-Louis perd la connexion 5 minutes, il n’est pas re-déconnecté. Augmentez à 24 heures si vos collaborateurs travaillent en zones rurales. Coût : Authelia + Redis ajoute environ 50 Mo de RAM à votre VPS, sans impact perceptible sur un Hetzner CX22.
Tutoriels frères du cluster
- Déployer Vaultwarden sur Coolify avec HTTPS — le pré-requis avant Authelia.
- Backups automatiques Vaultwarden vers MinIO et S3 — sauvegarder Vaultwarden ET Authelia.
FAQ
Authelia vs Authentik vs Keycloak vs Zitadel : que choisir ? Authelia est le plus simple à mettre en place pour une PME. Authentik offre plus de fonctionnalités (LDAP, application provisioning) mais demande plus de RAM. Keycloak et Zitadel sont enterprise-grade, surdimensionnés pour moins de 100 utilisateurs.
Puis-je connecter Authelia à Google Workspace ou Microsoft 365 ? Oui, via le mode OIDC d’Authelia avec ces fournisseurs comme Identity Provider. Cela permet le SSO basé sur les comptes existants.
Authelia stocke-t-il mes mots de passe ? Authelia stocke les hashes Argon2 des mots de passe. Le mot de passe en clair n’est jamais stocké, jamais transmis au-delà de la requête initiale.
Comment gérer la rotation des secrets de session ? La clé encryption_key ne doit jamais changer en production sans plan de migration (les sessions actives seraient invalidées). Sauvegardez-la dans Vaultwarden lui-même, dans une collection « Infrastructure ».
Combien d’utilisateurs Authelia tient-il ? Avec backend fichier YAML : 100 utilisateurs confortablement. Au-delà, basculez sur LDAP/Active Directory ou backend SQL PostgreSQL.
Pour aller plus loin
- 🔝 Retour au pilier : Guide complet Vaultwarden 2026
- Documentation Authelia : authelia.com/configuration
- Tutoriel suivant : Backups automatiques vers S3 et MinIO