Documentation

Nœuds n8n pour Credentials Dynamiques

Ce module permet de recevoir des credentials via webhook et de les utiliser dynamiquement dans les workflows n8n sans avoir à les stocker dans la base de données.

Fonctionnalités

  • Réception de credentials via webhook
  • Formatage et validation des credentials selon leur type
  • Injection transparente des credentials dans les nœuds n8n existants
  • Support des credentials Microsoft (Graph, Outlook, Entra)
  • Extensible pour d'autres types de credentials

Installation

# Dans le répertoire du projet
npm install
npm run build

# Créer un lien symbolique vers ce module dans n8n
cd /home/guillaume/Rikka/volumes/n8n.volume
npm link /home/guillaume/Rikka/custom-nodes-dynamic-credentials

Comment utiliser

Étape 1: Configurer le webhook pour recevoir les credentials

  1. Ajoutez le nœud Dynamic Credential Webhook au début de votre workflow
  2. Configurez le type de credential que vous attendez (ex: microsoftGraph)
  3. Vous pouvez ajouter un secret de validation pour sécuriser le webhook

Étape 2: Traiter les credentials reçus

  1. Connectez le nœud Dynamic Credential Provider au webhook
  2. Configurez-le pour formater ou valider les credentials selon vos besoins

Étape 3: Utiliser le proxy pour préparer les credentials

  1. Connectez le nœud Microsoft Credential Proxy au fournisseur
  2. Configurez-le avec le type de credential Microsoft spécifique que vous souhaitez utiliser

Étape 4: Utiliser les credentials dans vos nœuds Microsoft

  1. Connectez vos nœuds Microsoft standards (ex: Microsoft Graph, Outlook) au proxy
  2. Les credentials seront automatiquement injectés dans ces nœuds

Format des données à envoyer au webhook

Pour que le système fonctionne correctement, les données envoyées au webhook doivent suivre ce format :

{
  "credentials": {
    "access_token": "votre_token_d_acces",
    "refresh_token": "votre_token_de_rafraichissement",
    "expires_in": 3600,
    "scope": "https://graph.microsoft.com/.default",
    "token_type": "Bearer"
  }
}

Exemples par type de credential

Microsoft Graph

{
  "credentials": {
    "access_token": "eyJ0eXAiOiJKV1QiLCJub25jZSI6IlVhU...",
    "refresh_token": "0.AR8A8lVO4wF-XEiYGz9lk-hFIzD1ZS...",
    "expires_in": 3599,
    "scope": "https://graph.microsoft.com/.default",
    "token_type": "Bearer"
  }
}

Microsoft Outlook OAuth2

{
  "credentials": {
    "access_token": "eyJ0eXAiOiJKV1QiLCJub25jZSI6IlVhU...",
    "refresh_token": "0.AR8A8lVO4wF-XEiYGz9lk-hFIzD1ZS...",
    "expires_in": 3599,
    "scope": "https://outlook.office.com/.default",
    "token_type": "Bearer"
  }
}

Personnalisé

Vous pouvez également envoyer d'autres types de credentials avec la structure qui correspond à vos besoins :

{
  "credentials": {
    "apiKey": "votre_cle_api",
    "apiSecret": "votre_secret_api",
    "baseUrl": "https://api.example.com",
    "customField": "valeur_personnalisee"
  }
}

En-têtes de sécurité

Si vous avez configuré un secret pour le webhook, n'oubliez pas d'inclure l'en-tête suivant dans votre requête :

X-Webhook-Secret: votre_secret_configuré
{
  "credentials": {
    "access_token": "votre_token_oauth2",
    "refresh_token": "votre_refresh_token",
    "expires_in": 3600,
    "token_type": "Bearer",
    "scope": "openid profile email"
  }
}

Exemple d'utilisation avec Microsoft Graph

  1. Configurez le nœud Dynamic Credential Webhook avec le type microsoftGraph
  2. Envoyez un token OAuth2 valide à l'URL du webhook
  3. Utilisez le nœud Microsoft Credential Proxy pour préparer les credentials
  4. Connectez un nœud Microsoft Graph standard qui utilisera automatiquement ces credentials

Sécurité

  • Utilisez toujours un secret de validation pour votre webhook
  • Les credentials ne sont jamais stockés en base de données
  • Ils sont uniquement conservés en mémoire pendant l'exécution du workflow
  • Utilisez HTTPS pour sécuriser la transmission des credentials

Avantages

  1. Flexibilité : Permet de recevoir des credentials depuis n'importe quelle source externe
  2. Sécurité : Les credentials sensibles ne sont jamais stockés en base de données
  3. Compatibilité : Fonctionne avec les nœuds n8n existants sans modification
  4. Évolutivité : Peut être étendu pour prendre en charge d'autres types de credentials

Limitations actuelles

  1. Les credentials sont valides uniquement pendant l'exécution du workflow
  2. Le rafraîchissement automatique des tokens n'est pas encore implémenté
  3. L'intégration avec certains nœuds complexes peut nécessiter des ajustements

Contribuer

N'hésitez pas à contribuer à ce projet en proposant des améliorations ou en signalant des problèmes.

Discussion