n8nen.nl logo n8nen.nl

N8N Credentials Beheer: API Keys, OAuth2 & Encryptie Veilig Configureren

2026-03-10 n8nen
N8N Credentials Beheer: API Keys, OAuth2 & Encryptie Veilig Configureren
n8n Vault AES-256 Encrypted Google OAuth Slack API AWS Keys GitHub PAT Credentials Beheer in N8N API Keys • OAuth2 • Encryptie • Key Rotation • Team Sharing

Een gemiddelde n8n productie-instance bevat credentials voor 10-30 externe services. Elk credential is een potentieel beveiligingsrisico. In deze gids leer je hoe n8n credentials beschermt, hoe je ze veilig beheert, en welke best practices je moet volgen om je automatisering waterdicht te houden.

Wat je leert:

  • Hoe n8n credentials versleutelt en opslaat
  • API Keys vs OAuth2: wanneer gebruik je wat?
  • N8N_ENCRYPTION_KEY correct configureren
  • Credentials veilig delen in teams
  • Key rotation workflow bouwen
  • Security audit checklist voor productie

Hoe n8n Credentials Opslaat

n8n slaat credentials niet als platte tekst op. Elke credential wordt versleuteld voordat het in de database terechtkomt.

Encryptie

  • Algoritme: AES-256-GCM
  • Sleutel: N8N_ENCRYPTION_KEY environment variable
  • Opslag: Encrypted in database (SQLite of PostgreSQL)
  • In transit: HTTPS verplicht voor Cloud, aanbevolen voor self-hosted

Redaction

  • Frontend: Gevoelige velden worden nooit naar de browser gestuurd
  • OAuth tokens: Alleen een boolean "token aanwezig" is zichtbaar
  • Wachtwoorden: Vervangen door sterretjes (***) in de UI
  • API responses: Credentials gefilterd uit execution logs

De N8N_ENCRYPTION_KEY

Dit is de belangrijkste secret van je hele n8n installatie. Zonder deze key zijn alle opgeslagen credentials onleesbaar. Raak je hem kwijt, dan moet je alle credentials opnieuw invoeren.

# Docker Compose voorbeeld
services:
  n8n:
    image: n8nio/n8n
    environment:
      # KRITIEK: Genereer een sterke, unieke key
      - N8N_ENCRYPTION_KEY=jouw-supersterke-key-minimaal-32-karakters
      
      # NOOIT:
      # - Hard-coden in Dockerfiles
      # - Committen naar Git
      # - Dezelfde key voor dev en productie gebruiken
      
      # WEL:
      # - Bewaar in een secret manager (AWS Secrets, Vault)
      # - Of in een .env file (niet in Git!)
      # - Maak een backup op een veilige plek

# Sterke key genereren:
# openssl rand -hex 32
# Output: a1b2c3d4e5f6...  (64 hex karakters)

Wat als je de encryption key verliest?

Alle credentials in de database worden onleesbaar. Er is geen recovery mogelijk. Je moet elke credential handmatig opnieuw invoeren. Maak daarom altijd een backup van je encryption key op een aparte, veilige locatie.

Authenticatie Methoden

n8n ondersteunt meerdere authenticatiemethoden. De juiste keuze hangt af van de service die je verbindt.

Methode Hoe het werkt Veiligheid Voorbeelden
API Key Statische key in header of query parameter Goed — mits je roteert OpenAI, Anthropic, Sendgrid
OAuth2 Token-based flow met scoped permissions Beste optie Google, GitHub, Slack, HubSpot
Basic Auth Username + password in Base64 Basis — altijd over HTTPS Interne API's, legacy systemen
Header Auth Custom header met token Goed Custom API's, Bearer tokens

OAuth2 vs API Keys: De Afweging

OAuth2 (aanbevolen)

  • n8n ziet je wachtwoord nooit
  • Tokens zijn scoped (alleen benodigde permissions)
  • Tokens verlopen automatisch (short-lived)
  • Toegang eenvoudig intrekken bij de provider

Nadeel: meer setup (redirect URI, client ID/secret)

API Keys

  • Simpele setup: kopieer en plak
  • Geen browser-based flow nodig
  • Werkt overal (ook in containers zonder browser)
  • Makkelijk te scripten en automatiseren

Nadeel: statisch, breed bereik, handmatig roteren

Credentials Delen in Teams

In teamomgevingen moeten meerdere mensen dezelfde credentials gebruiken — zonder de daadwerkelijke keys te zien.

// n8n Credential Sharing (Cloud & Enterprise)

// Scenario: Marketing team moet Mailchimp credential gebruiken
// maar mag de API key niet zien.

// 1. Admin maakt credential aan:
//    Settings → Credentials → Add → Mailchimp
//    Name: "Mailchimp - Marketing Team"
//    API Key: mc_xxxxxxxxxxxx

// 2. Admin deelt met gebruikers/projecten:
//    Credential → Sharing → Add Users
//    → Selecteer teamleden
//    → Permission: "Can use" (NIET "Can manage")

// 3. Teamleden zien:
//    - De credential naam in hun dropdown
//    - Kunnen het selecteren in Mailchimp nodes
//    - Zien NIET de daadwerkelijke API key
//    - Kunnen de credential NIET bewerken of exporteren

// Resultaat: Veilig gedeeld zonder key exposure

Best Practices: De Security Checklist

1

Principle of Least Privilege

Geef elke credential alleen de minimaal benodigde permissions. Als je workflow alleen data leest, maak dan een read-only API key — geen admin key.

2

Dedicated API Keys voor n8n

Maak aparte API keys specifiek voor n8n. Hergebruik nooit keys van andere applicaties. Zo kun je n8n-toegang intrekken zonder andere tools te beïnvloeden.

3

Roteer Keys Elke 6-12 Maanden

Stel een herinnering in om API keys periodiek te vernieuwen. Dit beperkt de schade als een key ooit uitlekt.

4

Gebruik Environment Variables

Bewaar de N8N_ENCRYPTION_KEY en database wachtwoorden als environment variables. Nooit hard-coden in Docker Compose of config bestanden die in Git staan.

5

Audit Je Credentials Regelmatig

Check elke 3 maanden: welke credentials zijn nog in gebruik? Welke zijn ongebruikt? Verwijder wat je niet meer nodig hebt.

6

OAuth Revocation bij de Provider

Verwijder je een OAuth credential in n8n? Dan is de token bij de provider (Google, GitHub) nog actief. Ga naar de provider en trek de toegang daar ook in.

Credential Audit Workflow Bouwen

Automatiseer je security audits met een n8n workflow die je credentials monitort:

// Maandelijkse Credential Audit Workflow

Schedule Trigger (1e van elke maand, 09:00)
  ↓
HTTP Request → n8n Internal API
  GET /api/v1/credentials
  Headers: { "X-N8N-API-KEY": "{{ $env.N8N_API_KEY }}" }
  ↓
Code Node (analyseer credentials)
  const creds = items;
  const report = {
    total: creds.length,
    byType: {},
    unused: [],  // Credentials niet gekoppeld aan actieve workflows
    oldOAuth: [] // OAuth tokens ouder dan 90 dagen
  };
  
  creds.forEach(c => {
    const type = c.json.type;
    report.byType[type] = (report.byType[type] || 0) + 1;
    
    if (!c.json.nodesAccess?.length) {
      report.unused.push(c.json.name);
    }
  });
  
  return { json: report };
  ↓
Slack Node (#security-audit)
  "🔐 *Maandelijkse Credential Audit*
   Totaal: {{ $json.total }} credentials
   Ongebruikt: {{ $json.unused.length }}
   {{ $json.unused.length > 0 
      ? '⚠️ Overweeg om ongebruikte credentials te verwijderen:\n' + 
        $json.unused.join('\n') 
      : '✅ Geen ongebruikte credentials' }}"

Relatie met Environment Variables en Secrets

n8n heeft twee manieren om gevoelige data op te slaan:

Feature Credentials Manager Environment Variables
Wat het opslaat API keys, OAuth tokens, wachtwoorden Configuratiewaarden, secrets
Beheer via n8n UI (Settings → Credentials) Server configuratie (.env, Docker)
Toegang in workflows Automatisch via node configuratie Via {{ $env.VARIABLE_NAME }}
Delen met team Ja, via credential sharing Nee — server-level configuratie

Lees meer over environment variables in onze Workflow Variables & Secrets gids — dit is een van onze best gelezen artikelen met meer dan 19.000 impressies per maand.

Veelgemaakte Fouten

API keys hard-coden in Code nodes

Nooit const apiKey = "sk-xxx" in een Code node zetten. Gebruik altijd de credentials manager of environment variables. Hard-coded keys belanden in execution logs en workflow exports.

Dezelfde API key voor dev en productie

Maak aparte keys per omgeving. Een fout in een development workflow mag nooit productiedata raken.

Admin keys gebruiken als read-only volstaat

Geef je workflow alleen de permissions die het nodig heeft. Een read-only key kan nooit per ongeluk data wissen.

Vergeten OAuth bij de provider in te trekken

Als je een OAuth credential in n8n verwijdert, is de autorisatie bij de provider (Google, GitHub) nog actief. Trek het daar ook in.

Conclusie

Credential management is geen bijzaak — het is de fundering van veilige automatisering. n8n biedt sterke encryptie en redaction uit de doos, maar de verantwoordelijkheid voor key rotation, least privilege, en audit ligt bij jou.

Security Checklist

  • 1. N8N_ENCRYPTION_KEY veilig opgeslagen en gebackupt
  • 2. Alle credentials via de credentials manager (niet hard-coded)
  • 3. OAuth waar mogelijk, API keys waar nodig
  • 4. Least privilege: alleen benodigde permissions
  • 5. Dedicated keys per applicatie en per omgeving
  • 6. Key rotation elke 6-12 maanden
  • 7. Maandelijkse credential audit

Gerelateerde Artikelen

#n8n #credentials #API keys #OAuth2 #encryptie #security #best practices #key rotation #team sharing