EN
en direct

Authentik verrouille tous vos services self-hostés derrière un mot de passe unique

Authentik s’impose en 2026 comme le fournisseur d’identité de référence pour le self-hosting, devant Authelia et Keycloak. Un Docker Compose, cinq minutes de configuration, et tous vos services partagent le même login, la même MFA et le même annuaire.

Authentik verrouille tous vos services self-hostés derrière un mot de passe unique — illustration ETTAYEB

Le 19 juin 2026, Authentik cumule plus de 15 000 étoiles GitHub et une communauté qui double chaque année. Il y a trois ans, le projet était encore un outsider face à Keycloak et Authelia. Aujourd’hui, c’est le fournisseur d’identité que la communauté self-hosted recommande par défaut — et ce n’est pas par hasard.

Si vous gérez plus de trois services self-hostés, vous connaissez la douleur : un compte Nextcloud, un autre pour Grafana, un troisième pour Gitea, un quatrième pour Jellyfin. Votre Vaultwarden ressemble à un annuaire téléphonique. Authentik règle ce problème définitivement : un seul mot de passe, une seule MFA, et tous vos services s’alignent derrière.

Un fournisseur d’identité complet, pas un simple proxy

Authentik n’est pas un forward auth léger qui vérifie des headers HTTP. C’est un IdP (Identity Provider) complet, capable de parler tous les protocoles qu’une infrastructure moderne exige.

La stack technique est en Python (Django) pour le serveur principal et en Go pour les workers asynchrones. Le stockage repose sur PostgreSQL, avec Redis pour le cache et la gestion des sessions. La licence est MPL 2.0 — copyleft faible, pas de surprise commerciale.

Le périmètre protocolaire couvre tout ce qui existe :

  • OAuth2 et OpenID Connect pour les applications modernes (Grafana, Gitea, Nextcloud)
  • SAML 2.0 pour les services d’entreprise et les outils legacy
  • LDAP pour l’intégration avec des annuaires existants ou des appliances NAS
  • SCIM 2.0 pour le provisionnement automatique des utilisateurs
  • Proxy authentication pour les applications qui ne supportent aucun standard — Authentik s’intercale devant et injecte l’identité dans les headers HTTP

La MFA couvre TOTP, WebAuthn (clés physiques FIDO2), Duo et les tokens statiques. Le tout est configurable par utilisateur, par groupe ou par application.

Des flux d’authentification que vous dessinez, pas que vous codez

Là où Keycloak vous enterre sous des écrans de configuration imbriqués et où Authelia vous demande d’écrire du YAML pour chaque scénario, Authentik propose un designer visuel de flux. Vous chaînez des stages — vérification de mot de passe, challenge TOTP, vérification d’empreinte navigateur, contrôle d’appartenance à un groupe — comme des blocs sur un canevas.

Ce modèle permet des politiques impossibles ailleurs sans code custom :

  • Exiger la MFA uniquement depuis un réseau externe, la désactiver en VPN
  • Bloquer l’accès à une application sensible si l’utilisateur n’a pas changé son mot de passe depuis 90 jours
  • Rediriger vers un portail de consentement avant la première connexion à un nouveau service
  • Injecter une vérification de risque (géolocalisation, empreinte navigateur) avant d’autoriser l’accès admin

Un flux, c’est une séquence de stages. Un stage, c’est une brique unitaire. La combinaison est infinie — et l’interface visuelle évite de perdre le fil entre trois fichiers YAML et un middleware Nginx.

Docker Compose : trois conteneurs, un annuaire

Le déploiement officiel repose sur Docker Compose avec quatre services :

  • server : l’API et l’interface web (port 9000 en HTTP, 9443 en HTTPS)
  • worker : les tâches asynchrones (envoi d’emails, nettoyage, événements)
  • postgresql : la base de données principale
  • redis : le cache et le bus de messages

Le docker-compose.yml de référence tient en une cinquantaine de lignes :

yaml
services:
  postgresql:
    image: docker.io/library/postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_PASSWORD: ${PG_PASS:?}
      POSTGRES_USER: ${PG_USER:-authentik}
      POSTGRES_DB: ${PG_DB:-authentik}
    volumes:
      - ./db:/var/lib/postgresql/data

  redis:
    image: docker.io/library/redis:alpine
    restart: unless-stopped
    command: --save 60 1 --loglevel warning
    volumes:
      - ./redis:/data

  server:
    image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2025.12}
    restart: unless-stopped
    command: server
    environment:
      AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY:?}
      AUTHENTIK_POSTGRESQL__HOST: postgresql
      AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS:?}
      AUTHENTIK_REDIS__HOST: redis
      AUTHENTIK_ERROR_REPORTING__ENABLED: "true"
    volumes:
      - ./media:/media
      - ./custom-templates:/templates
    ports:
      - "9000:9000"
    depends_on:
      - postgresql
      - redis

  worker:
    image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2025.12}
    restart: unless-stopped
    command: worker
    environment:
      AUTHENTIK_SECRET_KEY: ${AUTHENTIK_SECRET_KEY:?}
      AUTHENTIK_POSTGRESQL__HOST: postgresql
      AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS:?}
      AUTHENTIK_REDIS__HOST: redis
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./media:/media
      - ./certs:/certs
      - ./custom-templates:/templates
    depends_on:
      - postgresql
      - redis

Deux variables d’environnement à générer avant le premier docker compose up -d :

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

La première connexion se fait sur http://<ip>:9000/if/flow/initial-setup/ pour créer le compte administrateur. Ensuite, mettez immédiatement un reverse proxy devant (Nginx Proxy Manager, Caddy, Traefik) avec Let’s Encrypt. Un port 9000 exposé nu sur Internet pendant la phase de setup, c’est une invitation à la compromission — le compte admin se crée en clair avant que vous n’ayez configuré quoi que ce soit.

La consommation au repos tourne autour de 500 Mo de RAM — plus lourd qu’Authelia (50-100 Mo) mais infiniment plus léger que Keycloak (1-2 Go minimum). Pour un homelab typique avec 2 Go de RAM disponibles, Authentik passe sans problème ; Keycloak, lui, ne démarre même pas.

Le proxy provider : la baguette magique pour les apps sans SSO

La fonctionnalité qui fait basculer le choix vers Authentik plutôt qu’Authelia, c’est le proxy provider intégré. Il fonctionne comme un forward auth classique — Authentik s’intercale entre votre reverse proxy et l’application, vérifie la session, et transmet ou bloque la requête — mais il est intégré au même outil que votre IdP.

Vous n’avez pas besoin de déployer un Authelia à côté d’un Keycloak pour couvrir à la fois les apps modernes (OIDC/SAML) et les apps legacy (auth par headers). Authentik fait les deux, dans la même interface, avec les mêmes groupes et les mêmes politiques.

Le flux pour protéger Uptime Kuma ou Portainer avec Authentik :

  1. Créer un Proxy Provider dans l’interface admin
  2. Définir l’URL interne de l’application (http://uptime-kuma:3001)
  3. Créer une Application qui référence ce provider
  4. Configurer le reverse proxy pour déléguer l’authentification à Authentik (/outpost.goauthentik.io)

Vingt minutes, montre en main. Et l’utilisateur voit une page de login cohérente, avec le même thème et la même MFA, quelle que soit l’application protégée.

La comparaison qui tranche

AuthentikAutheliaKeycloakLangagePython + GoGoJava (Quarkus)RAM au repos~500 Mo~50-100 Mo~1-2 GoProtocolesOIDC, OAuth2, SAML, LDAP, SCIMOIDC, headersOIDC, SAML, LDAP, KerberosMFATOTP, WebAuthn, Duo, SMSTOTP, WebAuthn, DuoTOTP, WebAuthn, OTPInterface adminSPA moderne, designer visuel de fluxYAML + UI minimaleConsole admin (redesignée)Proxy intégréOuiOui (cœur du produit)NonPortail utilisateurComplet (reset MDP, gestion devices)AucunConsole de compteComplexitéMoyenneFaibleÉlevéeMeilleur pourHomelab → PMEHomelab légerEnterprise, grosse org

Le verdict est mécanique. Authelia gagne si vous avez cinq services en HTTP basic auth et que vous voulez juste une couche de login unique par-dessus — le YAML suffit, la RAM est ridicule, le Go démarre en deux secondes. Keycloak gagne si vous gérez un parc de 500+ utilisateurs avec des fédérations Kerberos, des délégations SAML complexes et des exigences de conformité qui nécessitent un audit trail normé.

Pour tout le reste — le homelab de 10 à 50 services, la petite équipe de 5 à 50 développeurs, l’association qui héberge son Nextcloud et son GitLab — Authentik est le point d’équilibre exact. Assez léger pour tourner sur un VPS d’entrée de gamme, assez complet pour ne jamais vous faire dire « il me manque tel protocole », assez moderne pour que l’interface ne soit pas une punition.

Mettre Authentik en place avant qu’il ne soit trop tard

Le piège classique avec un IdP, c’est de le déployer après avoir accumulé quinze services avec quinze comptes séparés. La migration est alors un calvaire : il faut reconfigurer chaque application pour déléguer l’authentification, fusionner les comptes existants, gérer la transition sans coupure.

La bonne stratégie : déployez Authentik en premier, avant le prochain service que vous ajoutez à votre stack. Configurez le reverse proxy pour pointer les nouvelles applications vers le provider Authentik dès le départ. Pour les services existants, migrez-les un par un, en commençant par ceux qui supportent nativement OIDC — Nextcloud, Grafana, Gitea et Jellyfin ont tous des intégrations documentées.

Le temps total pour un setup complet — installation, reverse proxy, première application protégée — ne dépasse pas une heure. Le retour sur investissement est immédiat : vous ne retapez plus jamais un mot de passe.

Références

Le brief cyber, chaque mardi

Les failles qui comptent, les correctifs à appliquer, en dix minutes de lecture.

Pas de spam. Désinscription en un clic.
à lire ensuite

Sur le même sujet

Immich remplace Google Photos dès qu’on a un NAS et une sauvegarde hors site

Immich publie sa version 3.0 le 2 juillet 2026, neuf mois après sa première version stable et un mois après le bilan de ses deux ans sous l’aile de FUTO. Il remplace Google Photos à condition d’investir dans un mini PC et d’organiser une vraie sauvegarde hors site : sans cette discipline, la bascule est un pari perdant.

Coolify met un Vercel gratuit sur votre serveur en une commande

Coolify publie sa version 4.2.0 le 21 juillet 2026, trois jours avant cet article. Ce PaaS open-source déploie vos apps, vos bases de données et 280 services en un clic sur n’importe quel serveur Linux — sans facture au Go ni limite de bande passante.

← Retour au fil

Tapez au moins deux caractères.

naviguer ouvrir esc fermer