Node-RED mittels Passwort absichern

node red logoNach der Installation ist der Zugang zum Node-RED Editor nicht beschränkt. Dadurch hat jeder, im eigenen Netzwerk, Zugang zum Editor und kann dort Einstellungen manipulieren. Solltet ihr evtl auch noch daran denken euren Editor von extern zugänglich zumachen, durch eine Portweiterleitung, dann stellt das ebenfalls ein Hindernis dar. Es muss also eine Authentifizierung mittels Passwort her.

Es ist aber kein Problem eine Authentifizierung per Username und Passwort zu aktivieren. Dieses ist auch bei Node-RED beschrieben, leider fehlte ein kleiner Hinweis.

 

Ein Passwort Hash erzeugen

Das zu verwendende Passwort muss als Hash in die settings.js von Node-RED hinterlegt werden. Dieses erledigt ihr  mit den Admin CLI Tools, welche aber vorher installiert werden müssen.


sudo npm install -g node-red-admin

Anschließend könnt ihr den Hash für euer Passwort erzeugen. Ihr werdet nach dem Passwort gefragt und erhaltet als Ausgabe den Hash.


sudo node-red-admin hash-pw

 

Konfig Datei anpassen

Nun könnt ihr die Konfiguration in der settings.js anpassen. In meinem Fall liegt die Datei unter /home/pi/.node-red/settings.js. Mittel ps -ef|grep node-red, könnt ihr sehen, unter welchem User Node-RED läuft, bei mir als User pi.

 

[code]
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password: "your hash",
permissions: "*"
}]
},
[/code]

Damit habt ihr einem User admin alle Berechtigungen erteilt. Nach einem Neustrat von Node-RED mittels sudo service nodered restart, begrüßt euch euer Node-RED mit einer Login Maske. Es ist auch möglich weitere User einzurichten die nur eine Leseberechtigung besitzen.

 

Node-RED Passwort abfrage

Somit habt ihr den Zugang abgesichert und könnt euer Node-RED von extern erreichbar machen. Eure Familienmitglieder können nun ebenfalls keine ungewollten Änderungen mehr durchführen.

11 Gedanken zu „Node-RED mittels Passwort absichern“

    • Hallo Reinhard,

      wir haben beide recht. Auf meinem Raspberry ist es nodered, auf anderen Systemen node-red. Auf meinem Debian nutze ich PM2, dort ist es pm2 restart node-red.

      Antworten
  1. Ich bekomme beim installieren von Node-Red-Admin immer Fehler ausgespuckt. Weiß auch nicht woran das liegt.

    npm WARN deprecated bcrypt@0.8.7: bcrypt = v2.0.0 for improved support for newer bcrypt ha shes
    npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
    /usr/bin/node-red-admin -> /usr/lib/node_modules/node-red-admin/node-red-admin.js

    > bcrypt@0.8.7 install /usr/lib/node_modules/node-red-admin/node_modules/bcrypt
    > node-gyp rebuild

    gyp WARN EACCES user „root“ does not have permission to access the dev dir „/root/.node-gyp/8.11.3“
    gyp WARN EACCES attempting to reinstall using temporary dev dir „/tmp/.node-gyp“
    gyp ERR! configure error
    gyp ERR! stack Error: EACCES: permission denied, mkdir ‚/usr/lib/node_modules/node-red-admin/node_modules/bcrypt/build‘
    gyp ERR! System Linux 4.14.52-v7+
    gyp ERR! command „/usr/bin/node“ „/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js“ „rebuild“
    gyp ERR! cwd /usr/lib/node_modules/node-red-admin/node_modules/bcrypt
    gyp ERR! node -v v8.11.3
    gyp ERR! node-gyp -v v3.6.2
    gyp ERR! not ok
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: bcrypt@0.8.7 (node_modules/node-red-admin/node_modules/bcrypt):
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: bcrypt@0.8.7 install: `node-gyp rebuild`
    npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1

    + node-red-admin@0.1.3
    updated 1 package in 14.026s

    Antworten
  2. Es fehlt noch was ganz entscheidendes:

    Für den passwortgeschützten Zugriff auf das Dashboard ist ein weiterer Schritt nötig. Das Dashboard, wie auch viele andere Erweiterungen die HTTP-Endpunkte bereitstellen, sichert die Option httpNodeAuth ab. Diese erwartet nur Benutzername und Passwort-Hash als Parameter:

    httpNodeAuth: {user:“user“,pass:“erzeugte Passwort-hash einfügen“},

    Antworten

Schreibe einen Kommentar