Vérification Google OAuth avec le nœud Gmail : comment passer la vérification quand GmailOAuth2Api force 6 scopes ?

Bonjour à tous,

Je développe un assistant email IA auto-hébergé avec n8n pour les petites entreprises et je me prépare actuellement à la vérification OAuth de Google.

Le flux de travail :

  • Lit les messages Gmail non lus
  • Filtre les emails automatisés
  • Envoie le contenu à Claude
  • Crée des brouillons Gmail
  • Marque le message comme lu uniquement après un traitement réussi
  • Envoie un résumé d’exécution

L’application ne supprime jamais définitivement les emails.

Ce que j’ai découvert

Après investigation, j’ai découvert que l’identifiant Gmail OAuth2 API natif a ses portées codées en dur.

Il demande toujours :

  • gmail.labels
  • gmail.addons.current.action.compose
  • gmail.addons.current.message.action
  • mail.google.com
  • gmail.modify
  • gmail.compose

La propriété Scope est masquée, il n’y a donc aucun moyen de la personnaliser depuis l’interface.

J’ai également trouvé des discussions communautaires montrant que la simple restriction des portées dans Google Cloud provoque l’échec de l’autorisation OAuth avec l’erreur HTTP 403 car l’identifiant Gmail demande toujours la liste complète des portées codées en dur.

Il existe également une demande de fonctionnalité ouverte demandant au nœud Gmail de supporter l’identifiant OAuth Google générique au lieu de l’identifiant Gmail fixe.

Ma question

Quelqu’un ici a-t-il réellement complété la vérification OAuth de Google tout en conservant le nœud Gmail natif ?

Si oui :

  • Google a-t-il accepté les portées codées en dur par défaut ?
  • Avez-vous dû justifier mail.google.com ?
  • Google a-t-il demandé des modifications ?

Ou avez-vous fini par remplacer les nœuds Gmail par des nœuds HTTP Request utilisant un identifiant OAuth2 Google générique et l’API REST Gmail ?

Je ne cherche pas de conseils théoriques — j’aimerais vraiment des retours de quelqu’un qui a complété avec succès le processus de vérification de Google avec une application n8n en production.

Merci !

Partagez votre flux de travail

(Sélectionnez les nœuds sur votre canevas et utilisez les raccourcis clavier CMD+C/CTRL+C et CMD+V/CTRL+V pour copier et coller le flux de travail.)

Partagez la sortie renvoyée par le dernier nœud

Informations sur votre installation n8n

  • Version n8n : « localhost »
  • Base de données (par défaut : SQLite) :
  • Paramètre n8n EXECUTIONS_PROCESS (par défaut : own, main) :
  • Exécution de n8n via (Docker, npm, n8n cloud, application de bureau) : DOCKER
  • Système d’exploitation :

Salut @Jidenkaes
Le problème n’est pas les six périmètres en tant que groupe, c’est que le nœud Gmail natif codifie en dur https://mail.google.com/, un périmètre restreint (accès complet, y compris la suppression permanente). Ce seul périmètre vous place sur la piste des périmètres restreints de Google : l’évaluation de sécurité tierce annuelle, plus les examinateurs qui rejettent une demande d’accès complet d’une application qui se contente de lire, de créer des brouillons et de marquer comme lus.

Tout votre flux de travail (lire les non-lus, créer des brouillons, supprimer le libellé NON LU) s’inscrit dans un seul périmètre, gmail.modify. Google le classe comme sensible plutôt que restreint, précisément parce qu’il ne peut pas supprimer définitivement les e-mails, ce que le vôtre ne fait déjà jamais. Cela vous maintient sur la vérification des périmètres sensibles plus légère au lieu de celle restreinte, et vous donne une justification du moindre privilège impeccable.

Le nœud Gmail ne vous laisse pas réduire ses périmètres, donc remplacez ces nœuds par des nœuds HTTP Request accédant à l’API REST de Gmail, authentifiés avec une identifiant Google OAuth2 API générique où vous entrez vous-même le périmètre :

https://www.googleapis.com/auth/gmail.modify

Merci, c’est très utile. Juste pour clarifier : avez-vous personnellement complété la vérification OAuth de Google en utilisant l’approche HTTP Request + OAuth2 générique de Google, ou s’agit-il de l’architecture que vous recommanderiez ? J’essaie de déterminer si quelqu’un a réussi à passer l’examen de Google avec cette configuration.