Cybersécurité

SSO Authentik pour applications SaaS et auto-hébergées : tutoriel 2026

9 دقائق للقراءة

📍 Article principal de la série : Authentik 2026 : guide pratique.

Authentik installé, MFA activé, prochaine étape : connecter vos services existants. Ce tutoriel détaille la configuration SSO pour les 6 applications les plus déployées chez les PME francophones : Vaultwarden, Forgejo, Grafana, Outline, Coolify, Plausible Analytics. Chaque section donne le pas-à-pas exact, sans dépendance à des tutoriels externes.

Prérequis

  • Authentik en production avec HTTPS (voir tutoriel d’installation).
  • Au moins une des apps cibles déjà déployée.
  • Niveau attendu : intermédiaire.
  • Temps estimé : 15 à 30 minutes par application.

Pattern général : OIDC en 4 étapes

Pour toute app supportant OIDC, le pattern est :

  1. Authentik : créer Provider → Application → noter client_id + client_secret.
  2. App cible : configurer OIDC → coller client_id, client_secret, et discovery URL Authentik.
  3. Tester le login via flow Authentik.
  4. Restreindre l’accès via Policy Authentik.

1. Vaultwarden via Authentik (Outpost Proxy)

Vaultwarden ne supporte pas OIDC nativement. Solution : Authentik Proxy Provider + Outpost.

# Authentik admin
1. Providers → Create → Proxy Provider
   - Name: vaultwarden-proxy
   - Mode: Forward auth (single application)
   - External host: https://vault.votre-entreprise.com
2. Applications → Create
   - Provider: vaultwarden-proxy
   - Slug: vaultwarden
3. Outpost → Create → Type: Proxy
   - Applications: vaultwarden
4. Caddy ou Traefik (devant Vaultwarden) :
vault.votre-entreprise.com {
  forward_auth authentik-outpost:9000 {
    uri /outpost.goauthentik.io/auth/caddy
    copy_headers X-authentik-username X-authentik-email
  }
  reverse_proxy vaultwarden:80
}

2. Forgejo (Gitea fork) via OIDC

# Authentik
1. Providers → Create → OAuth2/OpenID Provider
   - Name: forgejo
   - Redirect URIs: https://git.votre-entreprise.com/user/oauth2/Authentik/callback
   - Signing Key: authentik Self-signed Certificate
2. Applications → Create → Provider: forgejo
3. Note client_id et client_secret

# Forgejo
Site Administration → Identity & Access → Authentication Sources → Add
- Type: OAuth2
- Name: Authentik
- OAuth2 Provider: OpenID Connect
- Client ID: ...
- Client Secret: ...
- Auto Discovery URL: https://auth.votre-entreprise.com/application/o/forgejo/.well-known/openid-configuration

3. Grafana via OIDC

# Authentik : Provider OIDC + Application "grafana"
# Grafana grafana.ini
[auth.generic_oauth]
enabled = true
name = Authentik
allow_sign_up = true
client_id = ...
client_secret = ...
scopes = openid profile email
auth_url = https://auth.votre-entreprise.com/application/o/authorize/
token_url = https://auth.votre-entreprise.com/application/o/token/
api_url = https://auth.votre-entreprise.com/application/o/userinfo/
role_attribute_path = contains(groups[*], 'grafana-admins') && 'Admin' || contains(groups[*], 'grafana-editors') && 'Editor' || 'Viewer'

Redémarrer Grafana, login → cliquer « Sign in with Authentik ».

4. Outline (wiki) via OIDC

# Outline .env
OIDC_CLIENT_ID=...
OIDC_CLIENT_SECRET=...
OIDC_AUTH_URI=https://auth.votre-entreprise.com/application/o/authorize/
OIDC_TOKEN_URI=https://auth.votre-entreprise.com/application/o/token/
OIDC_USERINFO_URI=https://auth.votre-entreprise.com/application/o/userinfo/
OIDC_DISPLAY_NAME=Authentik
OIDC_USERNAME_CLAIM=email
OIDC_SCOPES=openid profile email

5. Coolify via OIDC

Coolify v4.0.0-beta.420+ supporte OIDC.

# Coolify Settings → Authentication → OIDC
Provider URL: https://auth.votre-entreprise.com/application/o/coolify/
Client ID: ...
Client Secret: ...
Scope: openid profile email

6. Plausible Analytics via OIDC

Plausible CE v2.0+ supporte SSO via plugin.

# Plausible config.exs
config :plausible, :sso,
  enabled: true,
  provider: :oidc,
  oidc_client_id: "...",
  oidc_client_secret: "...",
  oidc_discovery_url: "https://auth.votre-entreprise.com/application/o/plausible/.well-known/openid-configuration"

Politique d’accès par groupes

Avec 6 apps connectées, restreindre selon les groupes est essentiel :

  • Group admins : toutes les apps.
  • Group devs : Forgejo + Grafana + Coolify.
  • Group marketing : Outline + Plausible.
  • Group finance : Vaultwarden uniquement.

Authentik admin → Applications → chaque app → Policy bindings → Group X.

Erreurs fréquentes

Erreur Cause Solution
Redirect URI mismatch URL exacte différente Vérifier https/http, slash final
Invalid scope Scope non déclaré côté provider Ajouter dans Authentik Property Mappings
User récupéré sans email Claim email pas mappé Vérifier scope email et property mapping
Roles Grafana toujours Viewer role_attribute_path mal écrit Tester avec JSONPath validator
Discovery URL 404 Slug application différent Vérifier slug exact dans Authentik
Outpost Vaultwarden refuse Header forward auth manquant Vérifier Caddy/Traefik headers

Trois choses à retenir pour le contexte local

Trois précisions concrètes. Synchronisation Active Directory : pour les ESN à Casablanca avec AD existant, Authentik LDAP source synchronise utilisateurs/groupes en background. Onboarding zéro effort. Compte commun pour clients : éviter les comptes partagés. Plutôt créer comptes individuels pour chaque collaborateur client, avec accès limité à 2-3 apps. Audit trail conformité : exporter logs Authentik vers Loki + Grafana avec rétention minimum 1 an pour ARTCI, CDP, NESA.

Tutoriels frères

FAQ

Combien d’apps maximum sur Authentik ? Aucune limite hard. Testé jusqu’à 50 apps simultanées.

Mes apps internes (custom) peuvent-elles utiliser SSO ? Oui. Tout app supportant OIDC, SAML, ou compatible Forward Auth.

SCIM provisioning automatique ? Oui pour Slack, Google Workspace, Microsoft 365. Configuration côté Authentik admin.

Switch entre apps sans re-login ? Oui via cookie session Authentik. Single Sign-On effectif.

Logout global sur tous les services ? Authentik → Settings → Single Logout. Quelques apps ne supportent pas (Forgejo notamment).

À lire ensuite

Démarrer en production sur un VPS

Pour passer du local à un serveur réellement accessible en ligne, Hostinger propose des plans VPS abordables avec sauvegarde automatique.

Voir les VPS →

Lien d affiliation. Si vous achetez via ce lien, le blog reçoit une petite commission sans surcoût pour vous.

Pourquoi adopter Authentik comme hub SSO de vos applications SaaS

Quand votre equipe utilise une vingtaine d’outils SaaS — GitHub, Notion, Slack, Google Workspace, GitLab self-hosted, Grafana, Sentry — gerer manuellement les comptes individuels devient un cauchemar. Un developpeur qui quitte l’agence laisse derriere lui 20 acces a revoquer un par un, avec le risque permanent d’en oublier. Authentik centralise toutes les authentifications via un Identity Provider unique compatible SAML 2.0, OIDC et LDAP — un seul off-boarding suffit pour couper tout le perimetre.

Authentik 2026.1 est l’IdP open source le plus complet en 2026, devant Keycloak sur l’ergonomie et devant Zitadel sur la maturite des protocoles. Sa version Community gratuite couvre tous les besoins d’une agence de moins de 100 utilisateurs.

Etape 1 — Provisionner le serveur Authentik avec Docker Compose

Authentik se deploie nativement avec Docker Compose, qui orchestre 4 conteneurs — server, worker, PostgreSQL et Redis. Sur un VPS Hetzner CX22 (4,51 EUR / mois soit environ 2 960 FCFA), telechargez le compose officiel et generez les secrets.

mkdir authentik && cd authentik
wget https://goauthentik.io/docker-compose.yml
echo "PG_PASS=$(openssl rand -base64 36)" > .env
echo "AUTHENTIK_SECRET_KEY=$(openssl rand -base64 60)" >> .env

Lancez la stack avec docker compose up -d. La premiere demarrage prend 2 a 3 minutes — Authentik effectue les migrations PostgreSQL et indexe les modeles. Verifiez l’etat avec docker compose ps — les 4 services doivent afficher healthy.

Etape 2 — Configurer le compte super-utilisateur initial

Authentik genere automatiquement un token d’initialisation au premier demarrage. Recuperez l’URL dans les logs.

docker compose logs server | grep "initial-setup"

Vous obtenez une URL du type https://votre-domaine/if/flow/initial-setup/. Ouvrez-la dans le navigateur, definissez le mot de passe administrateur (24 caracteres minimum) et un email valide pour la recuperation. Cet email sera aussi utilise pour les notifications de securite.

Etape 3 — Mettre Authentik derriere Caddy avec HTTPS

Caddy gere les certificats Let’s Encrypt sans configuration. Creez un Caddyfile pointant vers le port local 9000.

auth.exemple.sn {
  reverse_proxy localhost:9000
}

Rechargez avec caddy reload --config /etc/caddy/Caddyfile. En moins d’une minute le certificat est emis et l’interface est accessible en HTTPS. C’est obligatoire — la plupart des fournisseurs SaaS refusent les redirections SSO via HTTP.

Etape 4 — Connecter Google Workspace en SAML

Dans la console Authentik, ouvrez Applications > Providers puis creez un provider SAML. Renseignez l’ACS URL fournie par Google Workspace dans Security > SSO with third party IdP. Authentik genere alors les metadonnees XML a importer cote Google.

Issuer: https://auth.exemple.sn
ACS URL: https://www.google.com/a/exemple.sn/acs
Audience: google.com/a/exemple.sn

Cote Google Admin, importez le certificat X.509 d’Authentik et activez le SSO pour les utilisateurs hors super-admins. Testez avec un compte de test — vous devez etre redirige vers Authentik puis revenir authentifie sur Gmail.

Etape 5 — Brancher GitHub Enterprise via OIDC

GitHub Enterprise Cloud accepte OpenID Connect depuis 2024. Dans Authentik, creez un provider OAuth2/OpenID puis copiez le Client ID et le Client Secret generes.

Authorization URL: https://auth.exemple.sn/application/o/authorize/
Token URL: https://auth.exemple.sn/application/o/token/
Userinfo URL: https://auth.exemple.sn/application/o/userinfo/

Cote GitHub Enterprise, allez dans Settings > Authentication security > OIDC single sign-on et collez ces URLs. Verifiez le mapping email — Authentik doit envoyer le claim email identique au compte GitHub existant pour eviter les doublons.

Etape 6 — Integrer Slack avec SAML 2.0

Slack Business+ supporte le SSO SAML. Dans Authentik, dupliquez le provider Google et adaptez les URLs Slack.

SP Entity ID: https://exemple.slack.com
ACS URL: https://exemple.slack.com/sso/saml

Cote Slack, dans Settings > Authentication > SAML, collez l’URL de metadonnees Authentik (auto-decouverte) et activez la regle SSO requis. Pour les comptes invites externes, gardez le login par mot de passe en option.

Etape 7 — Creer des groupes et des regles d’acces granulaires

Le vrai gain Authentik vient des bindings — vous attachez chaque application a un groupe d’utilisateurs precis. Creez un groupe devs-senior avec acces a GitHub, Sentry et Grafana, et un groupe commercial avec acces a Slack et Notion uniquement.

Groups > Create > devs-senior
Applications > GitHub > Policy/Group/User Bindings > Add > Group: devs-senior

Cette segmentation permet d’onboarder un nouveau commercial en 30 secondes — vous l’ajoutez au groupe et il herite automatiquement de Slack + Notion sans intervention manuelle dans chaque outil.

Etape 8 — Activer le MFA TOTP obligatoire

Le SSO sans MFA reste vulnerable au phishing du mot de passe maitre. Activez Authy ou Google Authenticator de maniere obligatoire pour tous.

Flows > default-authentication-flow > Stage Bindings > Add
Stage Type: Authenticator Validation Stage
Device classes: TOTP, WebAuthn

Au prochain login, chaque utilisateur sera force d’enroller un second facteur. Pour les profils a haut risque (CTO, admin systeme), forcez WebAuthn avec une cle Yubikey — interdit le phishing par construction.

Etape 9 — Sauvegarder PostgreSQL Authentik chaque nuit

Une perte de la base = perte de tous les mappings SSO et obligation de reconnecter chaque application. Programmez un dump pg_dump dans un cron quotidien vers MinIO ou Backblaze B2.

0 3 * * * docker compose -f /opt/authentik/docker-compose.yml exec -T postgresql pg_dump -U authentik authentik | gzip > /backup/authentik-$(date +\%F).sql.gz

Conservez 30 jours de retention puis testez la restauration tous les trois mois sur un VPS de test — un backup non teste n’existe pas.

Cout reel Authentik vs Okta pour 30 utilisateurs

Okta facture environ 6 USD par utilisateur par mois sur le plan Workforce SSO, soit 180 USD soit environ 108 000 FCFA / mois pour 30 personnes. Authentik self-hosted sur un VPS a 2 960 FCFA + sauvegardes 1 000 FCFA = environ 4 000 FCFA / mois — economie de plus de 100 000 FCFA mensuels avec un controle total des donnees d’identite.

Dans la continuité, lisez notre guide cybersecurite Afrique francophone defense 2026 et le tutoriel installer Caddy HTTPS automatique.

مشاركة