Node-RED 提供了內置的 “adminAuth” 功能,使你能夠通過用戶名和密碼來保護對 Node-RED 編輯器的訪問。本文將向你展示如何配置登錄權限,以及一些相關的最佳實踐。以下是設置登錄權限的步驟:
步驟一:配置 AdminAuth
在 Node-RED 的設置文件 “settings.js” 中找到 “adminAuth” 部分。將 type
設置為 “credentials”,表示使用用戶名和密碼進行身份驗證。在 users
數組中,添加包含用戶名、密碼哈希和權限的對象。
為了安全地設置密碼,你可以使用 node-red-admin
工具生成密碼的哈希值。(也使用 bcrypt
庫或者在線哈希生成工具來生成密碼的哈希值。)
在 Node環境下,安裝 node-red-admin
工具。你可以使用以下命令全局安裝:
npm install -g node-red-admin
node-red-admin hash-pw
輸入你想要的密碼并按回車鍵。工具將生成密碼的哈希值。
確保將生成的哈希密碼替換 settings.js
文件中 password
字段的值。
步驟二:權限設置
在 Node-RED 的權限設置中,*
號通常表示所有權限。使用 *
可以授予用戶全部權限,包括讀、寫、部署、調試等。建議只授予可信用戶,以確保系統的安全性。
Node-RED 中的權限分為幾個級別,主要包括以下幾種:
- read: 允許用戶查看工作區中的流程。
- write: 允許用戶編輯和創建流程,包括創建和編輯節點。
- deploy: 允許用戶部署更改,包括啟動和停止流程。
- debug: 允許用戶使用調試功能,例如在節點上設置調試節點。
- status: 允許用戶查看流程的狀態信息。
- settings: 允許用戶訪問 Node-RED 的設置。
以下是一個權限設置的例子(用戶1:admin admin;用戶2:reader 123456):
adminAuth: {type: "credentials",users: [{username: "admin",password: "$2b$08$3pXFyrc2ZyuxwlpRbJDwq.6IveqCb9M6mGh.PSfFjp8sq39KYL0mO",permissions: "*"},{username: "reader",password: "$2b$08$oYvtQTLylB28FArpVmdPJ.l1PtQkS0JZS14.Gjtx.4zwaYamOcLWa",permissions: "read"}]},
步驟三:保存和重啟 Node-RED
保存 settings.js
文件并重新啟動 Node-RED 以應用更改。
登錄 Node-RED
訪問 http://127.0.0.1:1880/ 進入登錄面板,輸入之前設置的用戶名和密碼登錄。
![]() | ![]() |
現在,reader
用戶在登錄后只能進行讀取操作,而在進行部署等更改之前,仍然需要進行身份驗證。