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
用户在登录后只能进行读取操作,而在进行部署等更改之前,仍然需要进行身份验证。