Skip to content
G. G. testé !
🌐rĂ©seau 🔒sĂ©curitĂ© 📖guide

n8n 🔒 RĂ©soudre les galĂšres d'authentification et de connexion Google [SWAG, Authelia, Docker]

Deux problĂšmes concrets avec n8n derriĂšre SWAG + Authelia : supprimer la double authentification via SSO, et corriger l'erreur 500 lors du renouvellement des credentials Google.

2 min de lecture
n8n 🔒  RĂ©soudre les galĂšres d'authentification et de connexion Google [SWAG, Authelia, Docker]
Regarder la vidĂ©o — timecodes, vidĂ©os liĂ©es 42min 30s

En bref

PrĂ©requisn8n dĂ©ployĂ© en Docker, SWAG comme reverse proxy, Authelia pour l’authentification
RésultatConnexion à n8n en un clic via SSO Authelia + credentials Google fonctionnels
Ressourcesdocs.n8n.io · faircode.io · github.com/n8n-io

Cette vidĂ©o fait suite Ă  la vidĂ©o de dĂ©ploiement de n8n. Deux limitations que j’avais laissĂ©es de cĂŽtĂ© Ă  l’époque, rĂ©solues ici.

Problùme 1 — Double authentification

Le problùme : quand on accùde à n8n depuis SWAG + Authelia, il faut s’identifier une premiùre fois sur le portail Authelia, puis une deuxiùme fois sur la page de login n8n. C’est inutile et frustrant.

La solution : utiliser le mĂ©canisme de trusted headers de n8n. Authelia peut injecter dans les headers HTTP l’adresse email de l’utilisateur authentifiĂ© (Remote-Email). n8n peut lire ce header via un fichier de hook JavaScript et bypasser sa propre page de login.

Ce qu’il faut faire :

1. Créer le fichier de hook

Dans votre rĂ©pertoire de donnĂ©es n8n (ex : appdata/n8n-data/), crĂ©er un fichier hook.js. Le code est disponible sur le blog rĂ©fĂ©rencĂ© en commentaire Reddit (chercher “n8n Authelia SSO hook”). Utiliser la version pour n8n > 0.87.

Le principe : quand n8n est prĂȘt, le hook vĂ©rifie si le header Remote-Email est prĂ©sent. Si oui, il cherche l’utilisateur correspondant dans la base n8n, gĂ©nĂšre le cookie de session et bypass la page de login.

2. Modifier le docker-compose de n8n

Ajouter plusieurs variables d’environnement dans la section environment du docker-compose n8n : le chemin vers les extensions custom et le fichier hook.js, la durĂ©e des tokens JWT, et la variable qui indique quel header HTTP contient l’email de l’utilisateur (ici le header Remote-Email transmis par Authelia). Configurer aussi les proxies de confiance.

3. S’assurer que les emails correspondent

L’email de l’utilisateur dans Authelia (champ email dans users_database.yml) doit ĂȘtre exactement le mĂȘme que l’email du compte créé dans n8n. Sans ça, le hook ne peut pas faire le lien.

4. Redéployer n8n

RedĂ©ployer le conteneur n8n avec l’option --force-recreate pour que les nouvelles variables d’environnement soient bien prises en compte.

Résultat : aprÚs connexion sur Authelia, on arrive directement dans n8n. Le SSO fonctionne aussi avec les passkeys Authelia 4.39. Et si on est déjà connecté sur un autre service (Nextcloud, Jellyfin
), n8n est directement accessible sans nouvelle authentification.

Limitation : le bouton “logout” intĂ©grĂ© Ă  n8n ne fonctionne plus. Il faut se dĂ©connecter via Authelia.


Problùme 2 — Erreur 500 sur le renouvellement des credentials Google

Le problùme : dans n8n → Credentials → Gmail, quand on clique “Sign in with Google” pour renouveler les tokens OAuth, une erreur 500 apparaüt. Le callback OAuth de Google ne passe pas correctement à cause d’un problùme de cookie via SWAG + Authelia.

La solution de contournement prĂ©cĂ©dente consistait Ă  dĂ©sactiver temporairement Authelia sur n8n — ce qui est une mauvaise pratique.

La solution propre : ajouter une location spĂ©cifique dans le fichier de configuration SWAG pour le sous-domaine n8n, qui exclut Authelia uniquement sur le chemin de callback OAuth (/rest/oauth2-credential/callback). Cette location fait passer les requĂȘtes directement vers n8n sans interception par Authelia.

GrĂące Ă  l’auto-reload de SWAG, la configuration est prise en compte sans redĂ©marrage.

RĂ©sultat : “Sign in with Google” fonctionne directement, les credentials se renouvellent sans manipulation.


En bonus — Comment j’utilise le workflow n8n en pratique

J’ai simplifiĂ© le workflow de traitement automatique des emails de collaboration. PlutĂŽt que de laisser le LLM catĂ©goriser les mails lui-mĂȘme (trop d’erreurs, obligation de tout revĂ©rifier), je pose manuellement un label sur chaque mail reçu. Ça prend quelques secondes.

n8n rĂ©cupĂšre tous les mails labelisĂ©s, passe dans un switch selon le label (reply-deny, no-reply
), appelle Gemini 2 Flash pour rĂ©diger une rĂ©ponse adaptĂ©e en français ou anglais selon la langue du mail reçu, crĂ©e un brouillon dans Gmail, marque le message comme lu et ajoute le label “n8n-done” pour ne pas retraiter.

Je valide ou ajuste le brouillon avant d’envoyer. Le LLM sait qu’il ne faut pas mentionner de rĂ©munĂ©ration, pas de contrat, et qu’il faut rediriger vers YouTube ou Discord pour tout Ă©change public.

C’est moins automatique qu’avant, mais ça ne me fait plus perdre de temps Ă  corriger des erreurs de catĂ©gorisation.

Signaler une erreur

Pour les questions techniques

Passe par les commentaires YouTube ou le Discord — ta question profite à tout le monde.

Ce formulaire est uniquement pour signaler une erreur dans le contenu.

Retour aux articles
Partager :

Suivre la chaĂźne

Une vidĂ©o chaque jeudi Ă  17h30 — abonnez-vous pour ne rien rater.