保护NodeRED仪表板免受意外访问的侵害

问题描述

我正在尝试创建某种用户身份验证,以防止不必要地访问我的NodeRED用户界面。我在网上搜索并找到了2个解决方案,由于某种原因,它们没有解决。他们在这里:

  1. 试图将httpNodeAuth {user:“ user”,pass:“ password”}键添加到bluemix-settings.js中,但是此后,我的仪表板仍然提示我键入用户名和密码,即使我键入了在pass:“ password”字段中定义的密码。

  2. 添加了用户定义的环境变量NODE_RED_USERNAME:用户名和NODE_RED_PASSWORD:password。但是什么都没有改变。

这些解决方案在这里汇总:How could I prohibit anonymous access to my NodeRed UI Dashboard on IBM Cloud(Bluemix)? 谢谢大家的帮助!

这里有一些'bluemix-settings.js'

 autoInstallModules: true,// Move the admin UI
httpAdminRoot: '/red',// Serve up the welcome page
httpStatic: path.join(__dirname,"public"),//GUI password authentication (ALEX)
httpNodeAuth: {user:"admin",pass:"$2y$12$W2VkVHvBTwRyGCEV0oDw7OkajzG3mdV3vKRDkbXMgIjDHw0mcotLC"},functionGlobalContext: { },// Configure the logging output
logging: {

解决方法

如Node-RED文档here中所述,您需要在settings.js上添加以下部分(或者在Bluemix / IBM Cloud的情况下,添加bluemix-settings.js文件)。

...
httpNodeAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."},...

pass文件是密码的bcrypt哈希。 docs中列出了两种有关如何以正确方式生成哈希的方法。

  1. 如果您安装了Node-RED的本地副本,则可以使用以下命令:

    node-red admin hash-pw
    
  2. 只要您安装了本地NodeJS,就可以使用以下内容:

    node -e "console.log(require('bcryptjs').hashSync(process.argv[1],8));" your-password-here
    

    您可能需要先安装bcryptjs,然后首先安装npm install bcryptjs

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...