At first: I'm new on this site. Is there a forum in german language available?
My inquiry:
I'm trying to set a username/password protection for my dashboard.
This already works for my flow-editor, but the dashboard is still without protection.
I tried to set up the ~↓/.node-red/settings.js with these changes:
/** To password protect the node-defined HTTP endpoints (httpNodeRoot),
* including node-red-dashboard, or the static content (httpStatic), the
* following properties can be used.
* The `pass` field is a bcrypt hash of the password.
* See http://nodered.org/docs/security.html#generating-the-password-hash
*/
//httpNodeAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."},
//httpStaticAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."},
/*******************************************************************************
I'm running NodeRED on a RPi4.
NodeRED version: v3.1.3
Node.JS version: v18.19.0
Your node-red is open to the internet and is accessible via http.
You really need to secure this page using https and insure you password is very strong. It will not take long to sniff your password if you remain with no TLS encryption. please sort this issue as soon as possible.
Thx for your effort.
I'm no expecting a solution within 1 hour
I already had a long discussion with ChatGPT - after all ideas didn't work he/she/it said: please ask the community. So we see - finally, we need human to fix some problems
Sei nett zu Dir - und lass' das sein.
Es gibt hier einige Beiträge zum Thema "My Node-RED was hacked!" Lies' sie ganz genau durch & dann ... lass' das sein!
Es gibt auch einige Beiträge zu "How to secure my Node-RED." Ebenfalls durchlesen & umsetzen; ansonsten ... lass' das sein!
How I told before - everything is disabled. I am still in the first phase of configuring and learning. Before my system will go online in a final configuration, I will set up a new debian on that device.
So I would like to solve the basic issues first - like this of this topic here.
Sieht so aus, als ob Du httpNodeAuth definieren solltest.
Und noch einmal:
Ich bin überzeugt, Du bist überzeugt, dass das so ist.
Jedoch kann jeder node einen Endpoint definieren & über einen solchen Endpoint kann alles mögliche manipuliert werden.
Daher ein weiteres & ein letztes Mal: Lass das sein. You have been warned.
Ja... mit httpNodeAuth funktioniert das tatsächlich auch - aber dann nur für einen User. Wenn ich mehrere Einträge für httpNodeAuth setze, funktioniert gar kein Login mehr.
Da hieß es dann an anderer Stelle: NodeAuth wieder disablen und stattdessen bei httpNodeMiddleware setzen.
Wenn ich jetzt einen einzigen User zusätzlich bei NodeAuth setze, dann werden alle Einträge unter NodeMiddleware ignoriert und es kann wieder nur der eine User unter NodeAuth rein.
/** If you installed the optional node-red-dashboard you can set it's path
* relative to httpNodeRoot
* Other optional properties include
* readOnly:{boolean},
* middleware:{function or array}, (req,res,next) - http middleware
* ioMiddleware:{function or array}, (socket,next) - socket.io middleware
*/
//ui: { path: "ui" },
dann läuft das für node-red-dashboard über ui.middleware ... und nicht httpXXMiddleware.
Also:
dashboardMiddleware ist im Quellcode von node-red-dashboard definiert.
Ich würde erst einmal prüfen, ob die Funktion aufgerufen wird ... und damit die weitere Fehlersuche starten: