Guide de déploiement

Stirling PDF v3 : SSO OAuth2 gratuit, fini le verrou Enterprise

Déployer sur un VPS Cloud →

Tutoriel

Stirling PDF v3 : SSO OAuth2 gratuit, fini le verrou Enterprise

Self-hosting8 min de lecture3 étapes

Jusqu'à la v2, le SSO OAuth2 de Stirling PDF était réservé à l'édition Enterprise : les équipes qui voulaient sécuriser leur instance avec un fournisseur d'identité devaient soit payer, soit s'en passer. La PR #8137, mergée en septembre 2026 et livrée dans la v3.0.0, a levé ce verrou — le SSO est désormais disponible sur toutes les installations, gratuitement, sans changer de plan. Si votre instance tourne aujourd'hui sans authentification centralisée, vous pouvez corriger ça en quinze minutes.

Sommaire· Le SSO Enterprise est devenu gratuit dans la v31/9
  1. 01Le SSO Enterprise est devenu gratuit dans la v3
  2. 02Ce que le SSO gratuit change concrètement
  3. 03Prérequis
  4. 04Activer le SSO dans Stirling PDF
  5. 05Configurer Authentik comme fournisseur d'identité
  6. 06Configurer Keycloak comme fournisseur d'identité
  7. 07Durcissement : désactivez le formulaire de connexion local après le SSO
  8. 08Dépannage des erreurs courantes
  9. 09SSO sans surcoût, un bloc à la fois

Le SSO Enterprise est devenu gratuit dans la v3

Stirling PDF regroupe plus de 50 opérations PDF — fusion, découpe, compression, conversion de format, OCR, signature, réorganisation de pages — dans une interface web auto-hébergée. Depuis sa création, l'outil a grossi sur GitHub (87 000 étoiles, licence MIT) et s'est imposé comme la référence open source pour le traitement documentaire en équipe.

La v2 compartimentait les fonctions : les opérations de base étaient libres, le SSO OAuth2 et quelques fonctions avancées étaient réservées au plan Enterprise. Ce modèle freemium avait du sens commercial, mais il créait une situation inconfortable pour les équipes auto-hébergées : Stirling PDF accessible sans mot de passe sur un port ouvert, ou avec des comptes locaux impossible à révoquer depuis un annuaire central.

La PR #8137 a fusionné en septembre 2026 et a réorganisé la grille de fonctionnalités. La v3.0.0 (release note : github.com/Stirling-Tools/Stirling-PDF/releases/tag/v3.0.0) a livré ce changement, confirmé stable dans la v3.1.0 (5 octobre 2026). Résultat : SECURITY_OAUTH2_ENABLED=true fonctionne sur n'importe quelle installation ≥ v3.0.0, sans clé de licence, sans plan payant.

Ce que le SSO gratuit change concrètement

  • Accès centralisé : tous les membres de l'équipe s'authentifient via votre fournisseur d'identité existant (Authentik, Keycloak, Zitadel, Okta…) — aucun compte local à créer ni à révoquer manuellement.
  • Révocation immédiate : désactiver un compte dans votre IdP ferme l'accès à Stirling PDF en même temps qu'au reste de votre stack — pas de comptes orphelins.
  • Conformité : les accès sont journalisés côté IdP, pas dans Stirling PDF. Audit trail centralisé, sans configuration supplémentaire.
  • Désactivation du formulaire local : une seule variable (SECURITY_OAUTH2_AUTO_CREATE_USER=false combinée à la désactivation du login formulaire) empêche tout contournement.
  • Support PKCE : la v3 implémente correctement le flux PKCE — les IdP qui l'exigent (Authentik en particulier) fonctionnent sans configuration dérogatoire.
  • Mise à jour non destructive : activer le SSO sur une instance existante ne supprime pas les fichiers traités ni l'historique.

Prérequis

Avant de commencer :

Stirling PDF ≥ v3.0.0 déjà déployé. Si votre instance tourne en v2.x, mettez-la à jour (docker compose pull && docker compose up -d) et vérifiez avec docker compose logs stirling-pdf | grep version.

Un fournisseur d'identité OIDC opérationnel. Ce guide couvre les deux IdP les plus répandus en stack auto-hébergée : Authentik (un conteneur dédié, généralement sur le même VPS) et Keycloak (déployé séparément, recommandé pour les environnements multi-applications). Si vous n'avez pas encore d'IdP, le guide Héberger Authentik sur un VPS couvre l'installation complète.

Un reverse proxy avec TLS actif. Stirling PDF doit être servi en HTTPS — les cookies de session OAuth2 sont Secure par défaut. nginx, Caddy et Traefik fonctionnent tous sans modification.

Ressources : 1 vCPU / 2 Go RAM minimum. L'OCR et la conversion de PDF complexes sont gourmands — prévoir 2 vCPU / 4 Go pour un usage en équipe au-dessus de 5 utilisateurs simultanés.

Activer le SSO dans Stirling PDF

  1. Mettre à jour vers v3.0.0 ou supérieur

    Si votre docker-compose.yml pointe encore sur l'image frooodle/s-pdf:latest ou une version figée ≤ 2.x, mettez d'abord l'image à jour :

    docker compose pull stirling-pdf
    docker compose up -d stirling-pdf
    docker compose logs stirling-pdf --tail=20

    Vérifiez que la ligne Stirling-PDF version affiche 3.0.0 ou supérieur avant de continuer.

  2. Ajouter les variables OAuth2 dans settings.yml

    Stirling PDF charge sa configuration depuis ./configs/settings.yml (chemin du volume monté dans le compose). Ouvrez ce fichier et ajoutez ou complétez le bloc security :

    security:
      enableLogin: true
      oauth2:
        enabled: true
        provider: oidc
        issuer: https://authentik.votre-domaine.com/application/o/stirling-pdf/
        clientId: VOTRE_CLIENT_ID
        clientSecret: VOTRE_CLIENT_SECRET
        scopes: openid,profile,email
        useAsUsername: email
        autoCreateUser: true

    Les six variables sont obligatoires. SECURITY_OAUTH2_USE_AS_USERNAME détermine quel champ du token OIDC sert de nom d'utilisateur dans Stirling PDF — email est le choix habituel, preferred_username fonctionne aussi si votre IdP le fournit.

    Alternativement, ces variables peuvent être passées directement dans le docker-compose.yml sous environment: avec le préfixe SECURITY_OAUTH2_ :

    environment:
      SECURITY_OAUTH2_ENABLED: "true"
      SECURITY_OAUTH2_PROVIDER: oidc
      SECURITY_OAUTH2_ISSUER: https://authentik.votre-domaine.com/application/o/stirling-pdf/
      SECURITY_OAUTH2_CLIENT_ID: VOTRE_CLIENT_ID
      SECURITY_OAUTH2_CLIENT_SECRET: VOTRE_CLIENT_SECRET
      SECURITY_OAUTH2_SCOPES: openid,profile,email
      SECURITY_OAUTH2_USE_AS_USERNAME: email
      SECURITY_OAUTH2_AUTO_CREATE_USER: "true"
  3. Redémarrer le conteneur et vérifier les logs

    Appliquez la configuration :

    docker compose restart stirling-pdf
    docker compose logs stirling-pdf --follow --tail=30

    Cherchez la ligne OAuth2 SSO enabled dans les logs de démarrage. Si vous voyez Error loading OAuth2 issuer metadata, le point de découverte OIDC (/.well-known/openid-configuration) est inaccessible depuis le conteneur — vérifiez que l'URL de issuer est joignable en réseau Docker.

    Testez ensuite que l'endpoint de redirection existe :

    curl -I https://pdf.votre-domaine.com/oauth2/authorization/oidc

    Réponse attendue : HTTP/2 302 vers l'URL d'autorisation de votre IdP. Un 404 signifie que le SSO n'est pas activé (variable mal lue ou container non redémarré).

Configurer Authentik comme fournisseur d'identité

Dans l'interface d'administration Authentik (https://authentik.votre-domaine.com/if/admin/) :

1. Créer un Provider OAuth2/OIDC

Allez dans Applications → Providers → Create. Choisissez OAuth2/OpenID Connect Provider. Donnez-lui un nom (par exemple stirling-pdf-provider). Dans le champ Redirect URIs, entrez exactement :

https://pdf.votre-domaine.com/login/oauth2/code/oidc

Activez PKCE (Proof Key for Code Exchange) si la case est disponible — Authentik l'exige par défaut depuis la version 2024.x. Laissez les scopes sur openid, profile, email.

Notez le Client ID et le Client Secret générés — ce sont les valeurs à reporter dans settings.yml.

2. Créer l'Application

Allez dans Applications → Applications → Create. Nommez-la Stirling PDF, sélectionnez le Provider créé à l'étape précédente. Enregistrez.

3. Récupérer l'URL de l'issuer

L'URL de découverte OIDC d'Authentik suit le motif :

https://authentik.votre-domaine.com/application/o/stirling-pdf/

Où stirling-pdf est le slug de l'Application (pas du Provider). Vérifiez en ouvrant https://authentik.votre-domaine.com/application/o/stirling-pdf/.well-known/openid-configuration dans un navigateur — vous devez recevoir un JSON valide avec authorization_endpoint.

Configurer Keycloak comme fournisseur d'identité

Dans la console d'administration Keycloak (https://keycloak.votre-domaine.com/admin/) :

1. Sélectionner le Realm

Choisissez le realm qui héberge vos utilisateurs (par exemple master pour un usage interne, ou un realm dédié internal-apps).

2. Créer un Client OIDC

Allez dans Clients → Create client. Renseignez :
- Client ID : stirling-pdf (valeur libre, mais à reporter dans settings.yml)
- Client Protocol : openid-connect
- Access Type : confidential

Dans l'onglet Settings, ajoutez la Redirect URI :

https://pdf.votre-domaine.com/login/oauth2/code/oidc

Activez Standard Flow et désactivez Implicit Flow.

3. Récupérer le Client Secret

Onglet Credentials → copiez la valeur de Secret.

4. URL de l'issuer pour Keycloak

L'URL suit le motif :

https://keycloak.votre-domaine.com/realms/VOTRE_REALM

Vérifiez en ouvrant https://keycloak.votre-domaine.com/realms/VOTRE_REALM/.well-known/openid-configuration.

Durcissement : désactivez le formulaire de connexion local après le SSO

Une fois le SSO validé et tous vos utilisateurs migrés, il est conseillé de désactiver le formulaire de connexion par mot de passe local — qui reste actif par défaut même avec OAuth2 activé. Ajoutez dans settings.yml :

security:
  enableLogin: true
  loginMethod: oauth2

Désactiver loginMethod: oauth2 (et retirer local) empêche tout contournement du SSO via le formulaire. Conservez un compte administrateur d'urgence dans votre IdP avant d'appliquer cette configuration — si votre IdP devient inaccessible, vous ne pourrez plus vous connecter.

Dépannage des erreurs courantes

redirect_uri mismatch — L'URI enregistrée dans le fournisseur ne correspond pas exactement à ce que Stirling PDF envoie. La valeur attendue est https://pdf.votre-domaine.com/login/oauth2/code/oidc, sans slash final, en HTTPS obligatoire. Vérifiez l'absence d'espace ou de caractère invisible dans le champ de votre IdP.

PKCE required ou code_challenge_method unsupported — Authentik exige PKCE par défaut depuis 2024.x. Si votre version de Stirling PDF est < 3.0.0, elle ne supporte pas PKCE — mettez à jour. Sur la v3, le flux PKCE est pris en charge nativement.

Cookies cross-domain perdus après le retour de l'IdP — Si Stirling PDF est servi sur un sous-domaine différent de votre IdP, vérifiez que votre reverse proxy n'injecte pas de SameSite=Strict sur les cookies de session. La valeur correcte est SameSite=Lax. Symptôme : la redirection depuis l'IdP aboutit à une page blanche ou un rechargement en boucle.

Error loading OAuth2 issuer metadata au démarrage — Le conteneur Stirling PDF ne peut pas atteindre le point de découverte de votre IdP. Causes fréquentes : réseau Docker isolé (le conteneur ne peut pas résoudre le nom de domaine de l'IdP), certificat TLS auto-signé non approuvé, ou IdP éteint. Testez depuis le conteneur : docker compose exec stirling-pdf curl -s https://authentik.votre-domaine.com/application/o/stirling-pdf/.well-known/openid-configuration.

L'utilisateur se connecte mais voit une erreur 403 Forbidden — SECURITY_OAUTH2_AUTO_CREATE_USER est à false (valeur par défaut) et l'utilisateur n'existe pas encore dans Stirling PDF. Passez-le à true le temps que les comptes se créent à la première connexion, ou créez les utilisateurs manuellement depuis l'interface d'administration de Stirling PDF.

SSO sans surcoût, un bloc à la fois

Le SSO n'est plus un argument de vente d'une édition payante — c'est une configuration de trois blocs dans un fichier YAML. La v3.0.0 a rendu ce changement définitif, et la v3.1.0 (5 octobre 2026) confirme la stabilité du nouveau comportement.

Si votre instance Stirling PDF est exposée à votre équipe sans authentification centralisée aujourd'hui, la correction tient en une mise à jour du conteneur, trois variables d'environnement, et deux écrans de configuration dans votre IdP. Le retour : révocation instantanée, audit trail centralisé, et un vecteur d'accès non contrôlé fermé.

Un point mérite d'être souligné sur le déclencheur de la migration : le passage à la v3 ne nécessite pas de réinstaller Stirling PDF depuis zéro. Les volumes Docker existants — fichiers traités, configuration — sont préservés. La seule étape obligatoire avant d'activer le SSO est de vérifier que l'image tourne bien en v3.0.0 ou supérieur, puis d'ajouter les variables dans le fichier de configuration. L'ensemble de la procédure est réversible : retirer les variables SECURITY_OAUTH2_* et redémarrer le conteneur désactive le SSO sans effet de bord.

Pour aller plus loin sur les IdP open source couverts ici, les guides Héberger Authentik sur un VPS et Authentik, Authelia ou Keycloak : choisir son SSO couvrent le déploiement et les arbitrages de chaque solution.

Déployez Stirling PDF avec SSO sur votre VPS

Provisionnez un environnement Stirling PDF prêt à l'emploi — Docker Compose, reverse proxy et configuration SSO inclus. Connectez votre fournisseur OIDC et sécurisez l'accès de toute votre équipe dès le premier démarrage.

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.

Écrire sur WhatsApps'ouvre dans un nouvel onglet