Guide de déploiement

Authentik, Authelia ou Keycloak : choisir son SSO sur VPS

Déployer sur un VPS Cloud →

Sécurité & Monitoring10 min de lecture

Authentik, Authelia ou Keycloak : choisir son SSO sur VPS

Authelia, Authentik et Keycloak reviennent systématiquement dès qu'on cherche un SSO auto-hébergé. Pourtant leurs périmètres divergent radicalement, et choisir le mauvais outil vous coûte de la RAM, du temps d'opération et potentiellement de la sécurité. Deux CVE publiées dans Keycloak 26.7.1 ont relancé les questions comparatives. Ce guide répond à une seule : lequel convient à votre contexte VPS.

Pourquoi ces trois outils ne font pas la même chose

Authelia est un proxy d'authentification (forward auth, OIDC basique), pas un IAM complet. Il ne gère pas d'annuaire, ne parle pas SAML 2.0 nativement, ne provisionne pas de comptes. Authentik est un IAM complet : OIDC, SAML 2.0, LDAP, SCIM, proxy. Keycloak est l'IAM JVM historique : OIDC, SAML 2.0, LDAP, Kerberos, SCIM. La décision repose sur le nombre d'apps et le besoin de provisionnement, pas sur le nom.

Ce que ce choix éclairé change concrètement

  • Authelia sous 30 Mo de RAM au repos — tient sur un VPS 2 vCPU / 2 Go avec sa base SQLite.
  • Authentik consolide OIDC, SAML, LDAP et SCIM en un seul composant — ce que Keycloak + un SCIM manager séparé font parfois.
  • Keycloak s'impose uniquement pour Kerberos ou la fédération SAML d'entreprise complexe — cas ni Authelia ni Authentik ne couvrent.
  • La surface d'attaque est proportionnelle au périmètre — un proxy léger expose moins de vecteurs qu'un IAM complet.
  • Moins de composants à maintenir — un seul outil bien choisi réduit le nombre de CVE à surveiller.
  • Le dimensionnement VPS suit directement le choix — Authelia : 2 Go, Authentik : 4 Go, Keycloak : 8 Go minimum.

Prérequis chiffrés selon l'outil choisi

Authelia démarre sous 30 Mo de RAM, fonctionne sur un VPS 2 vCPU / 2 Go. Authentik mobilise 420 à 500 Mo au repos pour ses quatre conteneurs (server, worker, PostgreSQL 16, Redis) — un VPS 2 vCPU / 4 Go est la base. Keycloak exige au minimum 1 Go de heap JVM plus 300 Mo hors-heap, soit un plancher de 1,3 Go dédié avant toute charge ; la documentation officielle recommande 500 Mo par tranche de 100 000 sessions actives — un VPS de moins de 8 Go est inadapté à la production. Les trois outils nécessitent : un nom de domaine résolu, TLS valide (Let's Encrypt suffit), un reverse proxy (Traefik ou nginx) et Docker + Compose.

Authelia vs Authentik : quand choisir lequel

CritèreAutheliaAuthentik
RAM au démarrage< 30 Mo420–500 Mo (4 conteneurs)
ProtocolesForward auth + OIDC basiqueOIDC, SAML 2.0, LDAP, SCIM, proxy
Provisionnement SCIMNonOui
VPS recommandé2 vCPU / 2 Go2 vCPU / 4 Go
Interface adminYAML + fichiersWeb complète
Courbe d'apprentissageFaibleMoyenne
Cas d'usageProxy 2FA/SSO léger (2–6 apps)IAM self-hosted complet (> 5 apps, SAML)
CVE récentes août 2026Aucune annoncéeAucune annoncée

Authelia : quand le choisir

Choisir Authelia pour 2 à 6 apps internes à protéger par 2FA ou SSO OIDC léger, quand la RAM est limitante et qu'il n'y a pas besoin de provisionnement SCIM. Solution standard pour Gitea, Grafana, panel d'admin, monitoring, derrière Traefik ou nginx, sur un VPS partagé avec d'autres services. Authelia ne convient pas si des apps parlent SAML 2.0 et refusent OIDC, ou si la synchronisation LDAP avec création de comptes est nécessaire.

Déployer Authelia sur VPS (Docker Compose)

01

Créer la structure de configuration

mkdir -p ~/authelia/config && cd ~/authelia — créer config/configuration.yml avec jwt_secret, default_redirection_url, session, storage (SQLite), authentication_backend (file).

02

Générer les hashes de mot de passe

docker run --rm authelia/authelia:latest authelia crypto hash generate argon2 --password 'VotreMotDePasse' — coller le hash dans config/users_database.yml sous users.<login>.password.

03

Rédiger docker-compose.yml

Déclarer le service Authelia, monter ./config:/config, exposer le port 9091 en interne uniquement (jamais directement public), connecter au réseau partagé avec le reverse proxy.

04

Configurer le reverse proxy

En Traefik : middleware forwardAuth vers http://authelia:9091/api/authz/forward-auth. En nginx : auth_request /authelia; et blocs location /authelia. Le reverse proxy transmet Remote-User, Remote-Groups, Remote-Email.

05

Démarrer et vérifier

docker compose pull && docker compose up -d && docker compose logs -f authelia — vérifier l'état healthy, tester depuis un navigateur en navigation privée.

Authentik : quand le choisir

Choisir Authentik pour plus de cinq apps à fédérer dont certaines parlent SAML 2.0 ou utilisent un annuaire LDAP, pour le provisionnement automatique SCIM, ou en remplacement self-hosted d'Okta/Auth0/Azure AD. Interface d'administration graphique complète pour gérer utilisateurs, groupes et politiques sans toucher à du YAML. Authentik est disponible en template VPS sur la Marketplace ServOrbit : stack préconfigurée (4 conteneurs), démarrage en quelques minutes.

Déployer Authentik sur VPS (Docker Compose officiel)

01

Télécharger le Compose officiel

wget https://goauthentik.io/docker-compose.yml — Authentik maintient un fichier Compose avec les 4 services : server, worker, postgresql, redis.

02

Générer les secrets et remplir .env

echo "PG_PASS=$(openssl rand -base64 36 | tr -d '\n')" >> .env && echo "AUTHENTIK_SECRET_KEY=$(openssl rand -base64 60 | tr -d '\n')" >> .env && echo "AUTHENTIK_ERROR_REPORTING__ENABLED=false" >> .env
03

Démarrer la stack

docker compose pull && docker compose up -d — le premier démarrage prend 1 à 2 minutes (migrations PostgreSQL).

04

Initialiser via le wizard

Accéder à https://authentik.votredomaine.com/if/flow/initial-setup/ (port 9443 si pas encore de reverse proxy). Créer le compte akadmin. Ce wizard n'est accessible qu'une seule fois.

05

Configurer votre premier fournisseur OIDC

Interface → Applications → Providers → Create → OAuth2/OIDC. Définir le nom, l'Authorized redirect URI, noter le Client ID et Client Secret. Lier le fournisseur à une application et assigner un groupe d'accès.

Keycloak : pourquoi il est rarement le bon choix sur VPS

Keycloak est éprouvé en environnement bancaire et entreprise : Kerberos, fédération SAML complexe, haute disponibilité multi-nœuds. Ces capacités ont un coût direct. CVE-2026-15572 (CVSS 8.8) permet à un attaquant disposant de droits de registration client de procéder à une élévation de privilèges vers l'administration complète du realm via un type-swap de mapper lors d'une mise à jour — corrigé dans Keycloak 26.7.1. CVE-2026-4629 (CVSS 8.1) exploite un role mapper avec des rôles durcis dans des clients gérés par manage-clients, donnant accès à des privilèges non autorisés. Sur un VPS de moins de 8 Go, la JVM overhead consomme les ressources disponibles avant toute charge. Keycloak est pertinent uniquement si vous avez un besoin Kerberos avéré ou une fédération SAML d'entreprise que ni Authelia ni Authentik ne couvrent.

Si vous maintenez Keycloak : trois mesures immédiates

Désactiver Dynamic Client Registration si inutilisé (vecteur CVE-2026-15572). Restreindre /admin à un réseau interne ou bastion — aucun accès admin direct sur l'interface publique. Configurer les Admin Events pour rediriger vers syslog ou un outil de monitoring.

Dépannage : erreurs fréquentes

Authelia — 404 sur /api/authz/forward-auth : depuis la version 4.38, le chemin canonique est /api/authz/forward-auth (anciennement /api/verify). Mettre à jour la config du reverse proxy.

Authelia — boucle de redirection infinie : le session.domain ne correspond pas au domaine racine. Il doit être votredomaine.com, pas auth.votredomaine.com.

Authentik — worker en crash loop : OOM killer sur un VPS 2 Go avec d'autres services. Les tâches en arrière-plan (e-mails, SCIM) s'arrêtent silencieusement pendant que la page de login continue. Ajouter de la RAM ou migrer les autres services.

Authentik — 502 Bad Gateway après démarrage : migrations PostgreSQL pas encore terminées. Attendre 1 à 2 minutes, vérifier avec docker compose logs server que les migrations sont marquées OK.

Keycloak — OutOfMemoryError : ajuster KC_JVM_HEAP_MIN et KC_JVM_HEAP_MAX ; la règle officielle est d'allouer 70 % de la RAM disponible au heap.

Quelle solution pour votre contexte

Authelia pour 2-6 apps internes avec 2FA/OIDC léger (2 Go RAM, YAML, surface d'attaque minimale) ; Authentik pour plus de 5 apps, SAML 2.0, SCIM, remplacement Okta/Auth0 (4 Go RAM, UI graphique) ; Keycloak uniquement pour Kerberos ou SAML enterprise complexe (8+ Go RAM). Authentik est disponible en template VPS sur la Marketplace ServOrbit.

Déployer Authentik sur votre VPS

Authentik est disponible en template VPS sur la Marketplace ServOrbit. L'environnement est préconstruit, les conteneurs sont préconfigurés — votre plateforme IAM est opérationnelle en quelques minutes.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou contactez notre équipe — rappel, WhatsApp ou e-mail. Support en français, anglais et arabe.