Bluemix で Starter Boilerplate を使用して NodeRed アプリを作成しました。私が気づいたことの 1 つは、フロー エディターが公開されていることです (つまり、匿名アクセスでノードを編集してデプロイできます)。
Bluemix 上のフロー エディターへの匿名アクセスを防ぐにはどうすればよいですか?
エディタを誰でも表示できるようにし、自分だけが変更できるようにしたい場合は、以下を参照してください。
ユーザー名とパスワードの環境変数を追加すると、Bluemix アプリケーションの node-RED エディターにアクセスするたびにログイン画面が表示されます。エディターを誰でも表示できるようにし、自分だけが変更できるようにしたい場合は、bluemix-settings.js ファイルを変更できます。これにより、誰もがアプリケーションを表示できるようになりますが、変更を保存したり、アプリケーションをデプロイしたりすることはできません。デプロイする前に、エディターの右上隅にログインする必要があります。
これを機能させるための秘訣は、パーミッションが設定されている bluemix-settings.js に、「default: { permissions: "read" }」という行を先頭のコンマと共に追加することでした。このファイルにアクセスするには、ダッシュボードで Bluemix アプリケーションのソース コードをダウンロードします。変更したら、cloudfoundries コマンドを使用して、コードの変更をプッシュ バックする必要があります (プッシュを参照)。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" }
}
}