SSO open source auto-hébergé : quel outil choisir

Cinq logiciels libres mettent une connexion unique devant des applications auto-hébergées, mais ils ne jouent pas le même rôle. Authelia et VoidAuth se placent devant le reverse proxy : ils protègent des services qui n'ont pas leur propre connexion, et servent aussi de fournisseur OpenID Connect. Authelia n'a ni gestion de comptes ni interface d'administration. authentik, Keycloak et Zitadel sont des fournisseurs d'identité complets, avec SAML et SCIM. Keycloak demande une JVM et 1 250 Mo par instance, Zitadel est passé sous AGPL avec sa version 3, et authentik réserve une partie de ses fonctions à une édition payante.

Portail devant le reverse proxy ou fournisseur d'identité

Un portail ForwardAuth s'intercale entre le reverse proxy et l'application : le proxy lui demande si l'utilisateur est connecté, puis transmet son identité dans des en-têtes comme Remote-User. Authelia documente cette intégration pour Traefik, Caddy, NGINX, NGINX Proxy Manager, SWAG, HAProxy, Envoy et Skipper, VoidAuth pour Caddy, Traefik, NGINX et NGINX Proxy Manager. authentik fait la même chose avec son fournisseur Proxy.

Côté protocoles, les cinq servent OpenID Connect, mais celui d'Authelia, pourtant certifié, reste marqué bêta par le projet. SAML n'existe que chez authentik, Keycloak et Zitadel : Authelia en est au choix d'une bibliothèque, et la documentation de VoidAuth n'en parle pas. SCIM figure chez authentik, chez Keycloak depuis sa 26.8.0 et chez Zitadel, quand VoidAuth n'a qu'une demande ouverte. authentik sert aussi LDAP et RADIUS aux applications, par des outposts, et VoidAuth expose un LDAP en lecture seule, encore expérimental.

Où vivent les utilisateurs

Authelia n'a pas d'annuaire : les comptes sont dans un fichier YAML, qu'il réécrit lors d'une réinitialisation de mot de passe, ou dans un LDAP externe comme OpenLDAP, Active Directory, FreeIPA ou LLDAP. Il n'offre ni inscription ni écran d'administration ; un panneau d'administration figure sur sa feuille de route. VoidAuth garde ses comptes dans sa base et les gère dans une interface web : un compte se crée par invitation, et l'inscription libre est désactivée par défaut. authentik stocke ses utilisateurs dans PostgreSQL et peut les synchroniser depuis LDAP ou Active Directory. Keycloak les répartit en realms isolés dans sa base, ou fédère un annuaire LDAP, Active Directory ou Kerberos. Zitadel les range par organisation au sein d'une instance, et ses organisations permettent de déléguer la gestion des utilisateurs et des rôles, ce que le projet met en avant pour les applications B2B.

Les cinq proposent TOTP et les passkeys (WebAuthn). authentik et Zitadel ajoutent des codes par e-mail ou SMS, Authelia et authentik le push Duo.

Ce que chaque outil demande pour tourner

Relevé dans les dépôts et les documentations le 6 octobre 2026.

OutilLicenceÀ faire tournerProtocolesComptesDernière version
AutheliaApache-2.0un service Go, une base SQL ; Redis et SMTP en productionForwardAuth, OIDC (bêta)fichier YAML ou LDAP externe4.39.28, 17 sept. 2026
VoidAuthAGPL-3.0un conteneur, PostgreSQL ou SQLiteForwardAuth, OIDC, LDAP en lecture seulesa base, par invitation1.16.0, 26 sept. 2026
authentikMIT, hors dossier enterprise/serveur, worker et PostgreSQL ; 2 cœurs et 2 Go au minimumOIDC, SAML, SCIM, LDAP, RADIUS, proxysa base, synchronisable avec LDAP ou AD2026.8.3, 17 sept. 2026
KeycloakApache-2.0une JVM et une base relationnelle ; 1 250 Mo par instanceOIDC, SAML, SCIMrealms dans sa base, ou annuaire fédéré26.8.0, 1er oct. 2026
ZitadelAGPL-3.0 depuis la v3API Go, interface Next.js, PostgreSQL ; 2 Go au minimum en ComposeOIDC, SAML, SCIMsa base, par organisation4.19.4, 1er oct. 2026

Authelia annonce une mémoire habituellement inférieure à 30 Mo, une affirmation du projet plutôt qu'une mesure publiée. Keycloak documente 1 250 Mo par instance, caches et 10 000 sessions compris, et une production type en compte au moins deux. Zitadel chiffre son propre processus à environ 512 Mo mais demande 2 Go pour sa pile Compose, et authentik pose un minimum de 2 cœurs et 2 Go. authentik n'a plus besoin de Redis depuis sa version 2025.10 ; Authelia le recommande en production pour ses sessions, qu'il garde sinon en mémoire. Authelia exige HTTPS même pour un essai, et VoidAuth ne termine pas TLS lui-même : il lui faut un reverse proxy en HTTPS.

Où en sont les projets

Keycloak est en incubation à la CNCF depuis avril 2023 et annonce quatre versions mineures par an. Zitadel a publié onze versions mineures en 2026 et corrige encore sa branche 3.4. authentik sort une version tous les trois mois, mais sa politique de sécurité ne couvre que les deux dernières branches. Authelia enchaîne les correctifs de sa 4.39, dont huit en septembre 2026 ; son README demande d'épingler une version plutôt que latest et indique que l'équipe cherche à financer un audit de sécurité. VoidAuth est le plus jeune : dépôt créé en avril 2025, 57 versions depuis la 1.0.0 de juillet 2025, un développeur qui signe 1 132 des 1 236 commits, et un README qui prévient que le code n'est pas audité.

Licences et éditions payantes

Authelia et Keycloak sont sous Apache-2.0. Zitadel l'était aussi jusqu'à sa branche 2.x : depuis la v3.0.0 du 2 mai 2025, le cœur est sous AGPL-3.0, avec une licence commerciale pour qui veut garder ses modifications privées. Son offre cloud tourne sur le même code, gratuite jusqu'à 100 utilisateurs actifs par jour, puis à partir de 100 dollars par mois. authentik est sous MIT, sauf son dossier enterprise/, sous licence propriétaire : ces fonctions demandent en production un abonnement à 5 dollars par utilisateur et par mois, et l'éditeur s'engage à ne jamais faire passer une fonction libre dans l'édition payante. VoidAuth est sous AGPL-3.0.