[Node-RED]パスワード認証を設ける

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...(←生成したハッシュ)"},
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする