ibm-cloud - 保护 NodeRED 仪表板免受不必要的访问
问题描述
我正在尝试创建某种用户身份验证,以防止对我的 NodeRED 用户界面进行不必要的访问。我在网上搜索并找到了 2 个解决方案,但由于某种原因没有解决。他们来了:
尝试将 httpNodeAuth{user:"user", pass:"password"} 键添加到 bluemix-settings.js 但之后我的仪表板一直提示我输入用户名和密码,即使我输入了通过时定义的密码: “密码”字段。
添加了用户定义的环境变量 NODE_RED_USERNAME:用户名和 NODE_RED_PASSWORD:密码。但一切都没有改变。
此处建议使用这些解决方案:如何禁止匿名访问 IBM Cloud(Bluemix) 上的 NodeRed UI Dashboard? 谢谢你们的帮助,伙计们!
这是“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 文档中所述,您需要将如下部分添加到文件settings.js
(或者在 Bluemix/IBM Cloud 的情况下为bluemix-settings.js
文件。
...
httpNodeAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."},
...
这些pass
文件是密码的 bcrypt 哈希。文档中列出了 2 种有关如何以正确方式生成哈希的方法。
如果您安装了 Node-RED 的本地副本,则可以使用以下命令:
node-red admin hash-pw
只要您安装了本地 NodeJS,您就可以使用以下内容:
node -e "console.log(require('bcryptjs').hashSync(process.argv[1], 8));" your-password-here
您可能需要先
bcryptjs
安装npm install bcryptjs
。
推荐阅读
- airflow - 气流调度器模式
- python - 如何正确添加自定义字段作为 Django 管理员更改表单的可调用项?
- arrays - 为每个操作选择正确的块大小
- python - selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素:选择器有时不同
- android - Android Kotlin Volley 如何发送 JSON 数据
- flutter - 在 Flutter 2.5 中在 Android 中全屏后仰、粘性、粘性沉浸式、边到边
- ubuntu - 我在 Intellij idea 中打开模拟器时出错
- android - RecyclerView 重置自定义视图的 LayoutParams
- c - 如果我只能访问指针变量,如何在调用函数时将指向结构的指针传递给 C 中的另一个函数
- java - javax.el.PropertyNotFoundException:在类型 [com.something.something.models.something] 上找不到属性 [版本] 我哪里出错了?