我使用Bluemix上的Starter Boilerplate创建了一个NodeRed应用程序。我注意到的一件事是我的Flow Editor可供公众使用(即匿名访问可以编辑我的节点并进行部署)。
如何防止匿名访问Bluemix上的Flow Editor?
答案 0 :(得分:5)
如果您返回节点红色实例的索引页面,您应该会看到" 下的链接转到您的Node-RED流编辑器"说" 了解如何使用密码保护您的实例" (或只是向下滚动页面)
这将带您了解如何使用环境变量为流编辑器设置用户名和密码
密码保护流程编辑器
默认情况下,任何人都可以打开编辑器来访问和修改流程。 密码保护编辑器:
- 在Bluemix信息中心中,选择'环境变量'申请页面
- 添加以下用户定义的变量:
- NODE_RED_USERNAME - 使用
保护编辑器的用户名- NODE_RED_PASSWORD - 使用
保护编辑器的密码- 点击保存。
醇>
答案 1 :(得分:1)
如果您希望所有人都可以查看编辑器,但只能由您自己更改,请参阅以下内容:
添加用户名和密码环境变量后,每次进入Bluemix应用程序的node-red编辑器时都会出现登录屏幕。如果您希望编辑器可供所有人查看,但只能由您自己更改,则可以修改bluemix-settings.js文件。这将允许每个人查看应用程序,但不保存所做的任何更改或部署应用程序。在部署之前,您需要立即登录编辑器的右上角。
让这个工作的诀窍是添加以下行“default:{permissions:”read“}”以及设置权限的bluemix-settings.js中的前导逗号。通过在仪表板中下载Bluemix应用程序的源代码来访问此文件。一旦更改,您将需要使用cloud foundries命令并推回代码更改(cf push)。您对Bluemix应用程序源代码所做的任何更新都不会影响node-RED编辑器,因为它们是完全不同的实体并在不同的地方进行了更改。
bluemix-settings.js的代码段:
if (process.env.NODE_RED_USERNAME && process.env.NODE_RED_PASSWORD) {
settings.adminAuth = {
type: "credentials",
users: function(username) {
if (process.env.NODE_RED_USERNAME == username) {
return when.resolve({username:username,permissions:"*"});
} else {
return when.resolve(null);
}
},
authenticate: function(username, password) {
if (process.env.NODE_RED_USERNAME == username &&
process.env.NODE_RED_PASSWORD == password) {
return when.resolve({username:username,permissions:"*"});
} else {
return when.resolve(null);
}
},
default: { permissions: "read" }
}
}