Skip to content

Déploiement d'Authentik avec Docker Compose

Toutes vos applications, un seul compte, un seul mot de passe, une seule page de connexion : c'est la promesse d'un fournisseur d'identité. Authentik la tient avec une élégance rare. Plus moderne et plus léger à prendre en main que les mastodontes historiques, il centralise l'authentification de tout votre parc — et va même plus loin : il sait protéger des applications qui n'ont aucun support SSO natif, grâce à son mode forward auth.

Concrètement, Authentik se glisse entre vos utilisateurs et vos services : il vérifie l'identité une fois, puis laisse passer. OIDC, SAML, LDAP, proxy transparent — il parle tous les protocoles, et se pilote entièrement depuis une interface soignée (ou en code, via ses blueprints).

La SECRET_KEY ne se change pas à la légère

Authentik chiffre une partie de ses données sensibles (secrets des providers, sessions) avec la variable AUTHENTIK_SECRET_KEY. Générez-la une fois, gardez-la précieusement, et ne la modifiez jamais sur une instance en service : la changer rendrait ces données indéchiffrables. C'est aussi le fichier à sauvegarder en priorité, avec la base PostgreSQL.


Architecture

Authentik n'est pas un conteneur unique mais un petit orchestre de quatre services, tous décrits dans le docker-compose.yml officiel :

Composant Rôle
server l'interface web et l'API
worker les tâches de fond (envoi d'e-mails, application des blueprints, synchro LDAP…)
postgresql la base de données (utilisateurs, applications, configuration)
redis le cache et la file de tâches

Prérequis

  • Docker et Docker Compose installés — voir Installation Docker
  • Un reverse proxy avec TLS devant Authentik (voir Caddy ou Traefik)
  • De quoi générer deux secrets (mot de passe PostgreSQL + SECRET_KEY)

1⃣ Récupérer le compose officiel et préparer le .env

Authentik fournit un docker-compose.yml de référence — on ne le réécrit pas, on le récupère et on l'alimente par un .env :

mkdir authentik && cd authentik
curl -O https://goauthentik.io/docker-compose.yml

Générez les secrets et déposez-les dans un fichier .env (jamais versionné) :

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

Variables utiles à ajouter selon le besoin :

Variable Rôle
AUTHENTIK_SECRET_KEY clé de chiffrement interne (voir l'avertissement plus haut)
PG_PASS mot de passe de la base PostgreSQL
AUTHENTIK_EMAIL__* configuration SMTP (réinitialisation de mot de passe, notifications)
COMPOSE_PORT_HTTP / HTTPS ports exposés (par défaut 9000 / 9443)

2⃣ Démarrer la stack

docker compose pull
docker compose up -d

Le premier démarrage crée la base et applique les blueprints par défaut — comptez une minute ou deux avant que tout réponde.


3⃣ Créer le compte administrateur

Rendez-vous sur l'assistant de configuration initiale, servi à une URL dédiée :

https://authentik.exemple.fr/if/flow/initial-setup/

Vous y définissez le mot de passe du compte akadmin. Faites-le sans tarder : tant que cet assistant est accessible, n'importe qui peut s'approprier l'administration de l'instance.


4⃣ Les concepts à connaître

Authentik s'articule autour de quelques briques. Les comprendre, c'est tenir tout le reste :

Brique Rôle
Provider comment on s'authentifie pour une application : OAuth2/OIDC, SAML, ou Proxy (forward auth)
Application l'entrée visible dans le portail, adossée à un provider
Flow le parcours d'authentification (identification → mot de passe → MFA → …), entièrement personnalisable
Outpost le composant qui applique le forward auth devant les applications sans SSO natif

5⃣ Deux façons de connecter une application

  • L'application parle OIDC/SAML (Jellyfin, Portainer, GitLab…) : créez un Provider OAuth2 + une Application, récupérez le client id/secret, et configurez le service. Voir la procédure Connecter un service à Authentik (SSO/OIDC).
  • L'application n'a aucun SSO (une vieille interface, un service interne) : utilisez un Provider Proxy et le forward auth de votre reverse proxy. Authentik s'interpose alors devant l'application et exige une connexion avant de laisser passer — même si l'appli, elle, n'y connaît rien.

Gestion du service

Action Commande
Voir les logs docker compose logs -f
Redémarrer docker compose restart
Mettre à jour docker compose pull && docker compose up -d
Arrêter docker compose down

En résumé

Authentik demande un rien plus de mise en place qu'un service isolé — quatre conteneurs, deux secrets, un reverse proxy — mais il change la donne dès qu'on gère plus d'une poignée d'applications. Une identité unique, des parcours de connexion sur mesure, du MFA, et ce fameux forward auth qui met du SSO là où il n'y en avait pas. Sauvegardez la base et la SECRET_KEY, placez-le derrière du TLS, et vous tenez le cœur d'une infrastructure auto-hébergée qui sait qui est qui.