コンテンツにスキップ

RS http inノード

RS http inノード

概要

HTTPエンドポイントを作成し、Webサービスを構成します。
標準のhttp inノードの機能に加えて、このRS http inノードは、フロー実行に先立ってアクセスの認可を行うことが可能です。

http inノード(Node-RED版)で発生するバグについて

RS http inノードは、こちらに詳細が記載されている「http inノードの受信先が変わるバグ」を回避するために作成されたロボシュタイン専用のhttp inノードになります。
2025/01に追加されたノードです。このノードが環境にない場合、こちらを参考にインストールしてください。

モジュール名
node-red-contrib-rs-httpin

設定項目

RS http inノード

項目名 説明
メソッド HTTPメソッドを選択します。
URL エンドポイントURLを構成するパスを入力します。設定済のURLは入力できません。
このノードIDをURLにセットする ボタンを押下するとURLにノードIDがセットされます。
設定済のURL一覧 標準のhttp inノードおよびRS http inノードにて設定済のURLを確認することができます。
アクセス認可 アクセス元のIPアドレスやドメイン、特定のヘッダ値、任意のJavaScriptコードによる、アクセスの認可を行うことが可能です。認可されないアクセスは、HTTPステータス403 Forbiddenとして応答(任意のJavaScriptコード実行の場合は応答ステータスや内容も自由に設定)されます。

アクセス認可

要求ヘッダ値による制限

RS http inノード

HTTPリクエストヘッダ内の特定のキー値が一致する要求のみアクセスを許可します。一致判定する値は固定の文字列以外に、環境変数の値や、正規表現を利用することも可能です。 テキストエリアにアクセスを許可するアクセス元のIPアドレス(CIDR形式も可能:192.168.10.0/24)またはドメイン名(ワイルドカード指定可能:*.comsq.com)を、1行に1つずつ入力できます。

要求全文を対象とした制限

RS http inノード

入力された任意のJavaScriptコードによって、リクエスト内容を検査したり、応答するエラーコード(アクセス拒否時)を指定することが可能です。
このコードの記述については、Expressアプリケーションで使用するミドルウェアを参照してください。 node.idやnode.debug("...");といった記述で、IDの参照やログ出力が可能です。lodashオブジェクトを使用することもできます。

JavaScriptコードの例:

var result = false;

// JSON形式のPOSTで、送信されたJSONデータの要素"apikey"はノードのIDと一致している必要があります。
result = (
  req.header('content-type')=="application/json" &&
  _.isObject(req.body) &&
  _.has(req.body, "apikey") &&
  req.body.apikey==node.id
);

if(!result){
  var err = new Error('Forbidden');
  err.statusCode = 403;
  return next(err);
}else{
  return next();
}

URL重複エラー

RS http inノード

フローの読み込み等で重複したままデプロイすると、そのノードは停止状態になります。 エラーステータスが表示されているノードのURLを変更し、再度デプロイしてください。