Node-REDのダッシュボード(node-red-dashboard)にパスワードをかけてアクセス制限する方法を解説します。
Node-RED自体には「ユーザー認証」の仕組みがあり、それを有効化することでダッシュボードも含めてパスワード保護できます。
ダッシュボード単体にだけパスワードをかける機能は標準ではありませんが、
Node-REDのエディタやダッシュボード全体に認証をかけるのが一般的です。
ステップバイステップ
1. 設定ファイルを開く
Raspberry Piの場合、Node-REDの設定ファイルは~/.node-red/settings.js
にあります。
cd ~/.node-red
nano settings.js
2. 認証設定の追加
2-1. adminAuth 設定を追加
// settings.jsの一部
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password: "$2b$08$123456789012345678901uQhexxWzvtnakzQ1y8u1B9t.PxPCtaqC", // ハッシュ化されたパスワード
permissions: "*"
}]
},
2-2. ダッシュボード用(HTTP API)にも認証
httpNodeAuth: {user:"user",pass:"$2b$08$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}, // bcryptハッシュ
httpNodeAuth
を設定すると、/ui
ダッシュボードにもパスワードをかけられます。
3. パスワードのハッシュ値を生成
パスワードは「ハッシュ化」して書く必要があります。
Node-REDの管理者パスワード生成コマンドを使います。
Node-REDのインストール済み端末で下記コマンドを実行:
node -e "console.log(require('bcryptjs').hashSync('your_password', 8));"
'your_password'
の部分を好きなパスワードに置き換えてください。- 例)パスワードが
mypassword
の場合 shコピーする編集するnode -e "console.log(require('bcryptjs').hashSync('mypassword', 8));"
- 出力された文字列(例:
$2a$08$...
)を設定ファイルのpassword欄にコピペします。
4. Node-REDを再起動
node-red-stop
node-red-start
または
systemctl restart nodered.service
5. 動作確認
- ブラウザでNode-REDエディタ (
http://[IP]:1880/
) や ダッシュボード (http://[IP]:1880/ui
) にアクセス - ログイン画面が出れば成功
注意
- adminAuth:エディタの保護(ノードの編集画面)
- httpNodeAuth:
/ui
やREST API(http inノードで作るエンドポイントなど)の保護
ダッシュボードだけに認証をかけたい場合は、httpNodeAuth を使います。
例:最低限のsettings.js抜粋
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password: "$2b$08$Z0a1U1uK9f...(←生成したハッシュ)",
permissions: "*"
}]
},
httpNodeAuth: {user:"user",pass:"$2b$08$7NydhX...(←生成したハッシュ)"},
コメント