Authentifizierung nicht vergessen

Da n8n so einfach zu verwenden ist, ist es sehr leicht, die Authentifizierung zu vergessen. Das bedeutet, dass jeder, der die URL vom MCP Server kennt, auf Ihre Daten zugreifen könnte. Autsch.

Ich arbeite seit Jahren mit n8n. Jetzt, da es ziemlich populär wird, sehe ich immer mehr Video-Tutorials und Artikel darüber, was großartig ist. Beim Versuch, die Benutzerfreundlichkeit von n8n zu demonstrieren, wird leider auf die Authentifizierung vergessen. Ich verstehe es - dieser Teil ist langweilig, er nimmt Zeit von der eigentlichen Demonstration der Automatisierung weg, und Videos zu machen ist schon schwer genug, ohne zu viel über den Authentifizierungsteil nachzudenken.

Man soll aber natürlich nicht alle Content Creator in den gleichen Topf werfen Nehmen Sie die Videos von Nate Hark zum Beispiel, wo auf die Authentifizierung explizit eingegangen wird.

Ich möchte trotzdem einen Beitrag erstellen, der diesem Thema gewidmet ist. Man könnte argumentieren, dass das etwas ist, was von den Erstellern von n8n gemacht werden sollte, aber das ist keine Schwäche von n8n, es ist Ihre Verantwortung, Ihre Daten zu sichern. Genauso wie Sie es als Ihre Verantwortung ansehen würden, Ihre Tür zu schließen und zu versperren, richtig?

Wie in der realen Welt könnten Sie andere Maßnahmen haben, um Ihre Daten zu sichern. n8n kann keine Authentifizierung bei Ihren Webhooks und MCP Servern erzwingen. Es ist Ihre Aufgabe zu entscheiden, wie und wann Sie Ihren Zugang sichern (immer! Sie müssen immer den Zugang sichern).

Webhooks und MCP Server

Webhooks

Beginnen wir zuerst mit Webhooks. Wenn Sie einen Webhook-Trigger in n8n einfügen, wird er standardmäßig so aussehen:

Screenshot eines n8n Webhook-Trigger-Node

n8n Webhook-Trigger

Wenn Sie sich die Details ansehen, werden Sie sehen, dass die Authentifizierung auf None gesetzt ist.

Screenshot der Detaileinstellungen eines n8n Webhook-Trigger-ohne Authentifizierung

n8n Webhook-Trigger ohne Authentifizierung

Was das bedeutet ist, dass jeder mit der URL des Webhooks diesen Workflow auslösen und potentiell auf Ihre Daten zugreifen kann.

Lassen Sie mich das mit einem einfachen Beispiel demonstrieren. Ich habe einen Node hinzugefügt, der einen geheimen Text zurückgeben wird. Dieser sollte natürlich nicht öffentlich zugänglich sein.

curl https://cvx.app.n8n.cloud/webhook/2fd7f5ee-0cef-4213-bc1c-b8194333fd90
{"secret":"this data is secret and should not be public"}

Autsch, das ist nicht gut. Unsere supergeheimen Daten sind jetzt öffentlich zugänglich.

Authentifizierung hinzufügen

Authentifizierung hinzuzufügen ist super einfach, aber wie immer hängt es davon ab, welche Optionen Sie im Tool haben, das den Webhook aufruft. Typischerweise würden Sie sich für Header-basierte Authentifizierung entscheiden. Das bedeutet, dass Sie den Header sowie den Wert definieren, der vom Tool gesendet werden soll, das den Webhook aufruft.

Um Header-basierte Authentifizierung hinzuzufügen, würden Sie zum Webhook-Trigger gehen, auf Authentication klicken, und Header Auth auswählen.

Screenshot eines n8n Webhook-Triggers, wo Authentifizierung hinzugefügt wird

Authentifizierung zum Webhook hinzufügen

Dann, wenn Sie das erste Mal Authentifizierung hinzufügen, werden Sie aufgefordert, einen neuen Header hinzuzufügen.

Screenshot eines n8n Webhook-Triggers, wo eine neue Berechtigung hinzugefügt wird

neue Berechtigung erstellen

Jetzt können Sie den Header und den Wert hinzufügen, der vom Tool gesendet werden soll, das den Webhook aufruft. Sie können jeden Header-Namen und Wert verwenden, den Sie möchten; Sie müssen nur den gleichen Header und Wert verwenden, wenn Sie den Webhook aufrufen.

Screenshot der n8n-Berechtigungseinstellungen

neue Berechtigungseinstellungen

In diesem Beispiel verwende ich den Header Authentication und den Wert SuperSecretPassword. Bitte verwenden Sie niemals dieses Passwort in der Produktion, es ist nur ein Beispiel.

Jetzt einfach speichern, und Sie können loslegen.

Screenshot der n8n-Berechtigungseinstellungen mit dem Speicher-Button und einem sehr unsicheren Passwort SuperSecretPassword

Verwenden Sie niemals dieses Passwort

Der Webhook wird jetzt mit dem Header Authentication und dem Wert SuperSecretPassord gesichert, ich weiß, dass ist ein furchtbares Passwort, aber besser als es komplett offen zu lassen.

Screenshot des n8n Trigger-Node mit aktivierter Header-Authentifizierung

Webhook mit Authentifizierung

Also, versuchen wir das nochmal.

curl https://cvx.app.n8n.cloud/webhook/2fd7f5ee-0cef-4213-bc1c-b8194333fd90
Authorization data is wrong!⏎

Viel besser! Jetzt können wir sehen, dass der Webhook-Aufruf abgelehnt wird, wenn der Header nicht korrekt oder, in diesem Fall, fehlend ist.

Header-basierte Authentifizierung verwenden

Ich verstehe es—ich erkläre hier, wie man Header-basierte Authentifizierung verwendet, was super einfach in n8n ist, aber zeige Beispiele, wie man es mit curl verwendet, was für die meisten Menschen sehr verwirrend sein könnte. Leider hängt es vom Tool ab, das Sie verwenden; die Einrichtung ist unterschiedlich. Mit diesem curl-Beispiel versuche ich nur, Ihnen zu zeigen, wie n8n in jedem Fall reagiert.

curl -H "Authentication: SuperSecretPassword" https://cvx.app.n8n.cloud/webhook/2fd7f5ee-0cef-4213-bc1c-b8194333fd90
{"secret":"this data is secret and should not be public"}

🎉 Erfolg!

Die geheimen Daten werden jetzt zurückgegeben, aber nur wenn der Header korrekt ist. In curl würden Sie den Header mit dem -H Flag hinzufügen: -H "Authentication: SuperSecretPassword". In Ihrem Tool der Wahl wird die Einrichtung anders sein, aber höchstwahrscheinlich wird es Header-Name- und Wert-Felder geben.

MCP Server

Jetzt zum MCP Server—die Einrichtung hier ist im Grunde die gleiche wie die Webhook-Einrichtung. Diesmal werden wir jedoch die Bearer Auth-Option verwenden.

Authentifizierung hinzufügen

Die Bearer-Auth ist in diesem Fall fast das gleiche wie die Header-Auth, aber anstatt einen Header hinzuzufügen, würden Sie ein Bearer-Token hinzufügen. Es klingt kompliziert, aber es ist tatsächlich sehr einfach. Denken Sie einfach an das Token als ein Passwort, das Sie definieren.

Erstellen Sie jetzt einen neuen MCP Server Trigger und wählen Sie Bearer Auth im Authentication-Bereich.

Screenshot eines n8n MCP Server Trigger-nodes

n8n MCP Server Trigger

Klicken Sie auf neue Berechtigung und fügen Sie eine neue Berechtigung hinzu.

Screenshot eines n8n MCP Server Triggers, wo eine neue Berechtigung hinzugefügt wird

eine neue Berechtigung hinzufügen

Machen Sie Ihre Hände bereit und schlagen Sie auf die Tastatur, um eine lange zufällige Zeichenfolge zu generieren, oder noch besser, verwenden Sie einen Zufallspasswort-Generator— etwas wie das: dXL6SCTazoYC6BF6d087UMNsYQTZJgsNutV

Nehmen Sie jetzt diese zufällige Zeichenfolge, setzen Sie sie in einen Texteditor Ihrer Wahl und fügen Sie das Wort Bearer davor hinzu. Es sollte jetzt so aussehen: Bearer dXL6SCTazoYC6BF6d087UMNsYQTZJgsNutV Kopieren Sie das Ganze und fügen Sie es in das Token-Feld in n8n ein.

Screenshot eines n8n MCP Server Triggers, wo Bearer Auth hinzugefügt wird

Bearer Auth zum MCP Server hinzufügen

Und das war’s—Sie haben jetzt Bearer Auth zu Ihrem MCP Server hinzugefügt.

Screenshot eines n8n MCP Server Triggers, wo Bearer Auth hinzugefügt wird

MCP Server mit Bearer Auth

Das in Claude Desktop verwenden

Um das in Claude Desktop zu verwenden, müssen Sie die Claude Desktop-Einstellungen in der Datei claude_desktop_config.json aktualisieren. Sie finden Details darüber, wo Sie die Datei finden, in der offiziellen MCP-Dokumentation. Zusätzliche Informationen finden Sie auch in der n8n-Dokumentation.

Hier ist ein Beispiel der Konfigurationsdatei:

{
  "mcpServers": {
    "n8n": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://foo.app.n8n.cloud/mcp/7d11cb75-5d95-4d8f-bcea-36785d4c4b3e/sse",
        "--header",
        "Authorization: Bearer ${AUTH_TOKEN}"
      ],
	  "env": {
	    "AUTH_TOKEN": "dXL6SCTazoYC6BF6d087UMNsYQTZJgsNutV"
	  }
    }
  }
}

Eine allgemeine Anmerkung zur Authentifizierung

Authentifizierung ist auch eine sehr häufige Sache, die in mehreren Tools erforderlich ist. Wenn diese Tools einen Node in n8n haben, werden Sie aufgefordert, Authentifizierung zu diesem Tool hinzuzufügen. n8n wird in diesem Fall dafür sorgen, dass die Authentifizierung sicher und verschlüsselt bleibt. Aber da n8n so flexibel ist, können Sie auch HTTP-Node verwenden, um andere Tools aufzurufen, und wenn diese Tools Authentifizierung erfordern, könnten Sie versucht sein, einen HTTP-Header zum Node hinzuzufügen. Bitte tun Sie das niemals, und verwenden Sie stattdessen die Authentifizierungsoptionen, die in n8n verfügbar sind. Ich habe darüber im n8n Forum geschrieben, nachdem ich gesehen habe, dass Leute versehentlich ihre Workflows mit ihren Authentifizierungsdetails gepostet haben.

Ihre nächsten Schritte

  1. Überprüfen Sie Ihre aktuellen n8n-Workflows - prüfen Sie jeden Webhook und MCP Server auf fehlende Authentifizierung
  2. Implementieren Sie Header- oder Bearer-Auth auf allen ungesicherten Endpunkten
  3. Dokumentieren Sie Ihre Authentifizierungseinrichtung für Ihr Team

Brauchen Sie Hilfe bei der Implementierung dieser Sicherheitsmaßnahmen? Buchen Sie eine Beratung und lassen Sie uns gemeinsam Ihre Automatisierungen sichern.


Foto von Max Bender auf Unsplash

essential