【Node-RED】安全登陆时,账号密码设置
- 前言
- 实现步骤
- 密码生成
- setting.js 文件修改
- 安全权限
前言
Node-RED 在初始下载完成时,登录是无账号密码的。基于安全性考虑,本期博文介绍在安全登陆时,如何进行账号密码设置。当然,此处可以参考官方使用指南Securing Node-RED,里面有更为详细的介绍。而本博文只对用到的进行日志记录,方便后续回顾查看。
实现步骤
密码生成
在使用指南中,对于密码有如下介绍:
Note that the passwords are securely hashed using the bcrypt algorithm.
翻译过来,就是:请注意,密码是使用bcrypt算法安全散列的。
这里涉及到了NodeJS 的bcryptjs 依赖,当然,可以采用下载依赖然后生成密码的方式实现。但在官方指南中,对于密码生成,提供了2种方式,比较而言,可能更加方便。
由于下载的最新版本是 v3.1.1,因此可采用第一种方式进行密码生成:
node-red admin hash-pw
对应会输出加密后的密码。
setting.js 文件修改
完成密码设置后,打开NodeRed的设置文件setting.js ,如果没有找到,也可以在cmd 中输入开启指令node-red
,输出的Settings file 路径即为我们需要打开的文件路径。
将文件中如下代码,注释打开:
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password: "$2b$08$igJZH0SQceXYgbNXqlFTzus7QnN2/8MYs0Tx1/LNst69KU9nIWQZ.",
permissions: "*"
},
{
username: "admin1",
password: "$2b$08$nM1gIJDoaq/msTjpR9Md4eK/C0YTMXW6EHMEdI84BiCL3A2hawIKO",
permissions: "read"
}]
},
可以直接定位adminAuth 查找,应该只有一处注释代码,还有一个是说明。我这边是已经修改过的代码
修改完成后,重启即可。
安全权限
笼统的说,支持的权限有2种:
- 只读(read)
- 可读写(*)
但在Node-RED 0.14后,可以进行更加细致的设置,如登录时长等等,官方说明文档中都有详细介绍,可以直接参考使用Securing Node-RED。