如何禁止匿名访问 IBM Cloud(Bluemix) 上的 NodeRed UI 仪表板?

How could I prohibit anonymous access to my NodeRed UI Dashboard on IBM Cloud(Bluemix)?

我正在使用 node-red 在样板 IBM 云上工作。我知道有一种方法,可以通过更改环境变量(NODE_RED_USERNAME 和 NODE_RED_PASSWORD)的值来更改编辑器流程的用户名和密码。但是,UI 仪表板呢?我的意思是使用仪表板节点。禁止访问

https://noderedservicename.mybluemix.net/ui/

我知道在代码上,更改文件 httpNodeAuth 上的变量 settings.js 我可以做我想做的事。在 IBM Cloud 上执行此操作的方法是什么? 提前致谢!

此 link 会对您有所帮助,但它是用日语写的。 http://dotnsf.blog.jp/archives/1030376575.html

总结

您可以通过 IBM Cloud 仪表板定义 "user-defined" 环境变量。 它包含保护 Node-RED GUI 的变量。 你必须设置如下

NODE_RED_USERNAME : 用户名

NODE_RED_PASSWORD : 密码

您需要添加 httpNodeAuth(不是 httpAdminAuth,因为这是为了控制对 Node-RED 编辑器的访问,并且可以使用其他答案中讨论的环境变量来完成。 ) 到 app/bluemix-settings.js 文件。

像这样:

...
httpStatic: path.join(__dirname,"public"),
httpNodeAuth: {user:"user",pass:"a$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."},
functionGlobalContext: { },
...

有关如何生成 pass 的详细信息,请参见 here

您可以通过多种方式编辑文件,其中一些包括 link 将 Node-RED 部署到 git 存储库或下载整个应用程序,编辑文件并将其推回 Bluemix(当您首次从入门包部署 Node-RED 时,它会向您提供有关如何下载源代码以进行更改然后将其推回的说明。您可以通过单击"Getting started" link 在您的 Node-RED Bluemix 控制台页面中。

但是 quickest/simplest/dirtiest 方法可能只是通过 SSH 进入实例并使用类似 vi 的东西更改文件。可以找到有关如何通过 ssh 连接到应用程序实例的详细信息 here。但以下应该有效:

cf ssh [app name]

编辑文件后,您需要告诉 bluemix 重新启动应用程序。您可以从 Web 控制台或使用 cf 命令行工具执行此操作。

(如果重新暂存应用程序,或者 bluemix 决定将您的实例移动到另一台机器内部,则此方法所做的更改将无法保留,因为它将从推送的源重建应用程序。永久解决方案是下载来源、编辑和推回)