← tous les articles

Authelia OIDC : le piège du {{ }} dans un commentaire YAML

11 juin 2026 · 2 min de lecture

autheliaoidcssogotcha

Objectif : faire d’Authelia un fournisseur OIDC pour authentifier une première application maison, le tout sans jamais committer le moindre secret.

Livrer la clé d’émetteur sans _FILE

Authelia chiffre les tokens OIDC avec une clé RSA d’émetteur. Tentation initiale : la passer via une variable d’environnement ..._FILE pointant sur un secret Swarm. Sauf que pour la clé JWKS, ce mécanisme _FILE n’est pas supporté → boucle de crash au démarrage.

La bonne approche : le filtre de template de la config. On active X_AUTHELIA_CONFIG_FILTERS=template, on stocke la clé en secret Swarm, et on l’injecte dans la config :

identity_providers:
  oidc:
    jwks:
      - key: {{`{{ secret "/run/secrets/oidc_issuer_key" | mindent 10 "|" }}`}}

La clé n’est jamais dans le dépôt git ; seul le hash pbkdf2 du client_secret l’est, et lui est inoffensif à committer.

Le bug qui m’a coûté une heure

Après une modif, toute la config se met à hurler que chaque section est “option required” — comme si le fichier était vide. Pourtant la syntaxe YAML est valide.

Le coupable : une paire d’accolades laissée dans un commentaire.

# exemple : key: {{ secret "..." }}   ← CE commentaire casse tout

Le filtre de template s’applique au fichier entier, commentaires compris. Ce {{ … }} oublié dans un commentaire est interprété comme une directive de template, échoue, et fait sauter le rendu de tout le document. Authelia reçoit alors une config vide.

Avec un filtre de template, un commentaire n’est plus un commentaire. Toute séquence {{ … }}, même “désactivée” en commentaire, est du code.

Garde-fous adoptés

  • Aucune accolade {{/}} dans les commentaires des fichiers templatés.
  • Une validation hors-ligne avant déploiement : authelia config validate attrape le fichier cassé avant qu’il ne parte sur le cluster.
  • Le client_secret est généré sur le serveur ; je ne manipule que son hash. Le secret en clair ne transite jamais par mes notes.

Résultat : SSO OIDC fonctionnel de bout en bout, et deux pièges bien gravés dans la mémoire.


📬 La newsletter homelab

Les nouveaux articles + retours d'expérience self-hosting, sans spam. Désinscription en un clic.