Authelia OIDC : le piège du {{ }} dans un commentaire YAML
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 validateattrape le fichier cassé avant qu’il ne parte sur le cluster. - Le
client_secretest 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.