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

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

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

NetScaler Console に管理対象インスタンスへのリクエストを転送させたい場合、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リクエストのタイムアウト値。タイムアウト値を秒単位で設定します。プロキシタイムアウトを設定すると、NetScaler Consoleは、リクエストがタイムアウトするまで指定された期間待機します。
MPS-API-PROXY-MANAGED-INSTANCE-USERNAME 管理対象のNetScalerインスタンスにアクセスするためのユーザー名。
MPS-API-PROXY-MANAGED-INSTANCE-PASSWORD 管理対象のNetScalerインスタンスにアクセスするためのパスワード。
MPS-API-PROXY-MANAGED-INSTANCE-SESSID 管理対象インスタンスにアクセスするためのセッションID。
注
Settings > Administration > System Configurations > Basic Settings で、Prompt Credentials for Instance Login を選択した場合、管理対象インスタンスのユーザー名とパスワードを設定してください。または、インスタンスのセッションIDを指定することもできます。
これらのHTTPヘッダーのいずれかが存在すると、NetScaler ConsoleはAPIリクエストを管理対象インスタンスに転送する必要があるものとして識別するのに役立ちます。ヘッダーの値は、NetScaler Consoleがリクエストを転送すべき管理対象インスタンスを識別するのに役立ちます。
このフローを次の図に示します。
デバイスAPI
上記の図に示すように、これらのHTTPヘッダーのいずれかがリクエストに現れると、NetScaler Consoleは次のようにリクエストを処理します。
  1. リクエストを変更せずに、NetScaler ConsoleはリクエストをインスタンスAPIプロキシエンジンに転送します。
  2. インスタンスAPIプロキシエンジンは、APIリクエストをバリデーターに転送し、APIリクエストの詳細を監査ログに記録します。
  3. バリデーターは、リクエストが設定されたセキュリティポリシー、RBACポリシー、テナンシー境界などに違反しないことを保証します。また、管理対象インスタンスが利用可能かどうかを判断するチェックなど、追加のチェックを実行します。
APIリクエストが有効で、管理対象インスタンスに転送できる場合、NetScaler Consoleはインスタンスセッションマネージャーによって維持されているセッションを識別し、そのリクエストを管理対象インスタンスに送信します。
注
インスタンスログインの資格情報のプロンプトオプションが無効になっていることを確認してください。これを行うには:
  1. 設定 > 管理に移動します。
  2. システム構成で、システム、タイムゾーン、許可されたURL、および今日のメッセージを選択します。

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

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

    {
        "login": {
            "username":"nsroot",
            "password":"nsroot"
         }
    }
NetScaler Consoleは、セッション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:負荷分散仮想サーバーの統計情報を取得する

クライアントは、NetScaler Consoleに次の形式のAPIリクエストを送信する必要があります。
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の値はNetScalerのIPアドレスです。

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

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

    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:負荷分散仮想サーバーを変更する

クライアントは、NetScaler Consoleに次の形式のAPIリクエストを送信する必要があります。
    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:負荷分散仮想サーバーを削除する

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

例5:NetScalerでCLI実行中の構成をダウンロードする

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