NetScaler® ADM を API プロキシサーバーとして

最終公開日 : Oct 02, 2026
NetScaler Application Delivery Management (NetScaler ADM) は、独自の管理および分析機能のために NITRO REST API リクエストを受信できるだけでなく、管理対象インスタンスの REST API プロキシサーバーとしても機能します。REST API クライアントは、API リクエストを管理対象インスタンスに直接送信する代わりに、NetScaler ADM に送信できます。NetScaler ADM は、自身が応答する必要がある API リクエストと、変更せずに管理対象インスタンスに転送する必要がある API リクエストを区別できます。
API プロキシサーバーとして、NetScaler ADM は以下の利点を提供します。
  • API リクエストの検証。NetScaler ADM は、構成されたセキュリティポリシーとロールベースのアクセス制御 (RBAC) ポリシーに対してすべての API リクエストを検証します。NetScaler ADM はテナントを認識しており、API アクティビティがテナントの境界を越えないようにします。
  • 集中監査。NetScaler ADM は、管理対象インスタンスに関連するすべての API アクティビティの監査ログを保持します。
  • セッション管理。NetScaler ADM は、API クライアントが管理対象インスタンスとのセッションを維持する手間を省きます。

NetScaler ADM が API プロキシサーバーとして機能する方法

NetScaler ADM にリクエストを管理対象インスタンスに転送させたい場合は、API クライアントが API リクエストに以下のいずれかの HTTP ヘッダーを含めるように構成します。
ヘッダー値 説明
_MPS_API_PROXY_MANAGED_INSTANCE_NAME 管理対象インスタンスの名前。
_MPS_API_PROXY_MANAGED_INSTANCE_IP 管理対象インスタンスの IP アドレス。
_MPS_API_PROXY_MANAGED_INSTANCE_ID 管理対象インスタンスのID。
_MPS_API_PROXY_TIMEOUT NITRO APIリクエストのタイムアウト値。タイムアウト値を秒単位で設定します。プロキシタイムアウトを設定すると、ADMはリクエストがタイムアウトするまで指定された期間待機します。
_MPS_API_PROXY_MANAGED_INSTANCE_USERNAME 管理対象ADCインスタンスにアクセスするためのユーザー名。
_MPS_API_PROXY_MANAGED_INSTANCE_PASSWORD 管理対象ADCインスタンスにアクセスするためのパスワード。
_MPS_API_PROXY_MANAGED_INSTANCE_SESSID 管理対象インスタンスにアクセスするためのセッションID。
注
設定 > 管理 > システム構成 > 基本設定で、インスタンスログインの資格情報を要求を選択した場合、管理対象インスタンスのユーザー名とパスワードを設定してください。または、インスタンスセッションIDを指定することもできます。
これらのHTTPヘッダーのいずれかが存在すると、NetScaler ADMはAPIリクエストを管理対象インスタンスに転送する必要があるものとして識別します。ヘッダーの値は、NetScaler ADMがリクエストを転送すべき管理対象インスタンスを特定するのに役立ちます。
このフローを次の図に示します。
デバイスAPI
上図に示すように、これらのHTTPヘッダーのいずれかがリクエストに現れると、NetScaler ADMはリクエストを次のように処理します。
  1. リクエストを変更せずに、NetScaler ADM はリクエストをインスタンス API プロキシエンジンに転送します。
  2. インスタンス API プロキシエンジンは、API リクエストをバリデーターに転送し、API リクエストの詳細を監査ログに記録します。
  3. バリデーターは、リクエストが設定されたセキュリティポリシー、RBAC ポリシー、テナンシー境界などに違反しないことを保証します。また、管理対象インスタンスが利用可能かどうかを判断するチェックなど、追加のチェックを実行します。
API リクエストが有効で、管理対象インスタンスに転送できる場合、NetScaler ADM はインスタンスセッションマネージャーによって維持されているセッションを識別し、そのリクエストを管理対象インスタンスに送信します。
注
インスタンスログインの資格情報を要求オプションが無効になっていることを確認してください。そのためには:
  1. 設定 > 管理に移動します。
  2. システム構成で、システム、タイムゾーン、許可された URL、および今日のメッセージを選択します。

NetScaler ADM を API プロキシサーバーとして使用する方法

次の例は、IP アドレス 192.0.2.5 を持つ NetScaler ADM サーバーに API クライアントが送信する REST API リクエストを示しています。NetScaler ADM は、リクエストを未変更のまま、IP アドレス 192.0.2.10 を持つ管理対象インスタンスに転送する必要があります。すべての例で _MPS_API_PROXY_MANAGED_INSTANCE_IP ヘッダーを使用します。
NetScaler ADM に API リクエストを送信する前に、API クライアントは次のことを行う必要があります。
  • NetScaler ADM にログインする
  • セッション ID を取得する
  • 後続の API リクエストにセッション ID を含める。
ログオン API リクエストは次の形式です。
    POST /nitro/v1/config/login
    Content-Type: application/json

    {
        "login": {
            "username":"nsroot",
            "password":"nsroot"
         }
    }
NetScaler ADM は、セッション ID を含む応答でログオン要求に応答します。次のサンプル応答本文は、セッション ID を示しています。
{

  "errorcode": 0,

  "message": "Done",

  "operation": "add",

  "resourceType": "login",

  "username": "***********",

  "tenant_name": "Owner",

  "resourceName": "nsroot",

  "login": [

    {

      "tenant_name": "Owner",

      "permission": "superuser",

      "session_timeout": "36000",

      "challenge_token": "",

      "username": "",

      "login_type": "",

      "challenge": "",

      "client_ip": "",

      "client_port": "-1",

      "cert_verified": "false",

      "sessionid": "##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D",

      "token": "b2f3f935e93db6a"
    }

  ]

}

例 1: 負荷分散仮想サーバーの統計情報を取得する

クライアントは、次の形式の API リクエストを NetScaler ADM に送信する必要があります。
GET /nitro/v1/stat/lbvserver
Content-type: application/json
_MPS_API_PROXY_MANAGED_INSTANCE_IP: 192.0.2.10
SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D
ここで、Cookie ヘッダーの値はログイン API 呼び出しから返されたセッション ID です。そして、_MPS_API_PROXY_MANAGED_INSTANCE_IP の値は ADC の IP アドレスです。

例 2: 負荷分散仮想サーバーを作成する

クライアントは、次の形式の API リクエストを NetScaler ADM に送信する必要があります。

    POST /nitro/v1/config/lbvserver/sample_lbvserver
    Content-type: application/json
    Accept-type: application/json
    _MPS_API_PROXY_MANAGED_INSTANCE_IP: 192.0.2.10
    SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D

    {
         "lbvserver":{
             "name":"sample_lbvserver",
             "servicetype":"HTTP",
             "ipv46":"10.102.1.11",
             "port":"80"
         }
    }

例 3: 負荷分散仮想サーバーを変更する

クライアントは、次の形式の API リクエストを NetScaler ADM に送信する必要があります。
    PUT /nitro/v1/config/lbvserver
    Content-type: application/json
    Accept-type: application/json
    _MPS_API_PROXY_MANAGED_INSTANCE_IP: 192.0.2.10
    SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D

    {
       "lbvserver":{
            "name":"sample_lbvserver",
            "appflowlog":"DISABLED"
       }
    }

例 4: 負荷分散仮想サーバーを削除する

クライアントは、次の形式の API リクエストを NetScaler ADM に送信する必要があります。
    DELETE /nitro/v1/config/lbvserver/sample_lbvserver
    Accept-type: application/json
    _MPS_API_PROXY_MANAGED_INSTANCE_IP: 192.0.2.10
    SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D

例 5: ADC 上の CLI 実行構成をダウンロードする

クライアントは、次の形式の API リクエストを NetScaler ADM に送信する必要があります。
    GET /nitro/v1/config/nsrunningconfig
    Accept-type: application/json
    _MPS_API_PROXY_MANAGED_INSTANCE_IP: 192.0.2.10
    SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D