認証

Node-REDのAdmin APIはsettings.jsファイルのadminAuthプロパティによって保護できます。 セキュリティでは このプロパティの設定方法について説明しています。

このプロパティが設定されていない場合、 Node-REDのAdmin APIは誰からでもネットーワークを介してアクセスできることになります。

Step 0 - 認証方式の確認

/auth/loginに対するHTTP GETメソッドで有効な認証方式が返されます。

curlコマンドの例:
curl http://localhost:1880/auth/login

現バージョンのこのAPIでは、2つの結果が想定されます。:

有効な認証方式が存在しない場合
{}

すべてのAPIリクエストが、 さらなる認証についての情報を提供していません。

認証情報による認証がおこなわれた場合
{
  "type": "credentials",
  "prompts": [
    {
      "id": "username",
      "type": "text",
      "label": "Username"
    },
    {
      "id": "password",
      "type": "password",
      "label": "Password"
    }
  ]
}

APIはアクセストークンによって保護されます。

Step 1 - アクセストークンの取得

/auth/tokenに対するHTTP POSTメソッドはユーザの認証情報によって、 アクセストークンを取得するために利用されます。

以下のパラメータを提供しなくてはなりません。:

  • client_id - クライアントを特定します。現在はnode-red-adminまたはnode-red-editorを設定します。
  • grant_type - 必ずpasswordにします。
  • scope - 必要な権限を空白区切りのリストにします。現在は*またはreadに設定しなくてはなりません。
  • username - 認証に用いるユーザ名
  • password - 認証に用いるパスワード
curlコマンドの例:
curl http://localhost:1880/auth/token --data 'client_id=node-red-admin&grant_type=password&scope=*&username=admin&password=password'

認証に成功した場合、レスポンスにはアクセストークンが含まれています。:

{
  "access_token": "A_SECRET_TOKEN",
  "expires_in":604800,
  "token_type": "Bearer"
}

Step 2 - アクセストークンの利用

その後のすべてのAPI呼び出しではAuthorizationヘッダに 取得したアクセストークン含めて提供します。

curlコマンドの例:
curl -H "Authorization: Bearer A_SECRET_TOKEN" http://localhost:1880/settings

アクセストークンの削除

アクセストークンが不要になったときにトークンを削除するため、 HTTP POSTで/auth/revokeを送ります。:

curlコマンドの例:
curl --data 'token=A_SECRET_TOKEN' -H "Authorization: Bearer A_SECRET_TOKEN" http://localhost:1880/auth/revoke