Application Delivery Management

NetScaler Console als API-Proxy-Server

Neben der Fähigkeit, NITRO-REST-API-Anfragen für die eigene Verwaltungs- und Analysefunktionalität zu empfangen, kann NetScaler Application Delivery Management (NetScaler Console) als REST-API-Proxy-Server für seine verwalteten Instanzen fungieren. Anstatt API-Anfragen direkt an die verwalteten Instanzen zu senden, können REST-API-Clients die API-Anfragen an NetScaler Console senden. NetScaler Console kann zwischen API-Anfragen unterscheiden, auf die es selbst antworten muss, und API-Anfragen, die es unverändert an eine verwaltete Instanz weiterleiten muss.

Als API-Proxy-Server bietet Ihnen NetScaler Console die folgenden Vorteile:

  • Validierung von API-Anfragen. NetScaler Console validiert alle API-Anfragen anhand konfigurierter Sicherheits- und rollenbasierter Zugriffssteuerungsrichtlinien (RBAC). NetScaler Console ist auch mandantenfähig und stellt sicher, dass API-Aktivitäten Mandantengrenzen nicht überschreiten.

  • Zentrale Auditierung. NetScaler Console führt ein Audit-Protokoll aller API-Aktivitäten, die sich auf seine verwalteten Instanzen beziehen.

  • Sitzungsverwaltung. NetScaler Console entbindet API-Clients von der Aufgabe, Sitzungen mit verwalteten Instanzen aufrechterhalten zu müssen.

Funktionsweise von NetScaler Console als API-Proxy-Server

Wenn NetScaler Console eine Anfrage an eine verwaltete Instanz weiterleiten soll, konfigurieren Sie den API-Client so, dass er einen der folgenden HTTP-Header in die API-Anfrage aufnimmt:

Header-Werte Beschreibung
_MPS_API_PROXY_MANAGED_INSTANCE_NAME Name der verwalteten Instanz.
_MPS_API_PROXY_MANAGED_INSTANCE_IP IP-Adresse der verwalteten Instanz.
_MPS_API_PROXY_MANAGED_INSTANCE_ID ID der verwalteten Instanz.
_MPS_API_PROXY_TIMEOUT Timeout-Wert für eine NITRO-API-Anfrage. Legen Sie den Timeout-Wert in Sekunden fest. Wenn Sie ein Proxy-Timeout festlegen, wartet NetScaler Console die angegebene Dauer, bevor die Anfrage ein Timeout erhält.
_MPS_API_PROXY_MANAGED_INSTANCE_USERNAME Benutzername für den Zugriff auf die verwaltete NetScaler-Instanz.
_MPS_API_PROXY_MANAGED_INSTANCE_PASSWORD Passwort für den Zugriff auf die verwaltete NetScaler-Instanz.
_MPS_API_PROXY_MANAGED_INSTANCE_SESSID Sitzungs-ID für den Zugriff auf die verwaltete Instanz.

Hinweis

Unter Einstellungen > Administration > Systemkonfigurationen > Grundeinstellungen müssen Sie, wenn Sie Anmeldeinformationen für Instanz-Login anfordern auswählen, den Benutzernamen und das Passwort einer verwalteten Instanz konfigurieren. Alternativ können Sie auch die Sitzungs-ID der Instanz angeben.

Das Vorhandensein eines dieser HTTP-Header hilft NetScaler Console, eine API-Anfrage als eine zu identifizieren, die an eine verwaltete Instanz weitergeleitet werden muss. Der Wert des Headers hilft NetScaler Console, die verwaltete Instanz zu identifizieren, an die die Anfrage weitergeleitet werden muss.

Dieser Ablauf ist in der folgenden Abbildung dargestellt:

Geräte-API

Wie in der obigen Abbildung gezeigt, verarbeitet NetScaler Console die Anfrage wie folgt, wenn einer dieser HTTP-Header in einer Anfrage erscheint:

  1. Ohne die Anfrage zu ändern, leitet NetScaler Console die Anfrage an die Instanz-API-Proxy-Engine weiter.

  2. Die Instanz-API-Proxy-Engine leitet die API-Anfrage an einen Validator weiter und protokolliert die Details der API-Anfrage im Audit-Protokoll.

  3. Der Validator stellt sicher, dass die Anfrage keine konfigurierten Sicherheitsrichtlinien, RBAC-Richtlinien, Mandantengrenzen usw. verletzt. Er führt zusätzliche Prüfungen durch, z. B. eine Prüfung, ob die verwaltete Instanz verfügbar ist.

Wenn die API-Anfrage gültig ist und an die verwaltete Instanz weitergeleitet werden kann, identifiziert NetScaler Console eine vom Instanz-Sitzungsmanager verwaltete Sitzung und sendet die Anfrage dann an die verwaltete Instanz.

Hinweis

Stellen Sie sicher, dass die Option Anmeldeinformationen für Instanz-Login anfordern deaktiviert ist. Gehen Sie dazu wie folgt vor:

  1. Navigieren Sie zu Einstellungen > Administration.
  2. Wählen Sie unter Systemkonfigurationen die Optionen System, Zeitzone, Zugelassene URLs und Nachricht des Tages aus.

NetScaler Console als API-Proxy-Server verwenden

Die folgenden Beispiele zeigen REST-API-Anfragen, die ein API-Client an einen NetScaler Console-Server mit der IP-Adresse 192.0.2.5 sendet. NetScaler Console muss die Anfragen unverändert an eine verwaltete Instanz mit der IP-Adresse 192.0.2.10 weiterleiten. Alle Beispiele verwenden den Header _MPS_API_PROXY_MANAGED_INSTANCE_IP.

Bevor der API-Client die API-Anfragen an NetScaler Console sendet, muss er:

  • Sich bei NetScaler Console anmelden
  • Eine Sitzungs-ID erhalten
  • Die Sitzungs-ID in nachfolgende API-Anfragen aufnehmen.

Die Anmelde-API-Anfrage hat die folgende Form:

    POST /nitro/v1/config/login
    Content-Type: application/json

    {
        "login": {
            "username":"nsroot",
            "password":"nsroot"
         }
    }
<!--NeedCopy-->

NetScaler Console antwortet auf die Anmeldeanfrage mit einer Antwort, die die Sitzungs-ID enthält. Der folgende Beispiel-Antworttext zeigt eine Sitzungs-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"
    }

  ]

}
<!--NeedCopy-->

Beispiel 1: Abrufen von Statistiken für den virtuellen Lastausgleichsserver

Der Client muss NetScaler Console eine API-Anfrage in der folgenden Form senden:

    GET /nitro/v1/stat/lbvserver
    Content-type: application/json
    _MPS_API_PROXY_MANAGED_INSTANCE_IP: 192.0.2.10
    SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D
<!--NeedCopy-->

Dabei ist der Wert des Cookie-Headers die von der Login-API-Anfrage zurückgegebene Sitzungs-ID. Und der Wert von _MPS_API_PROXY_MANAGED_INSTANCE_IP ist die IP-Adresse des NetScaler.

Beispiel 2: Erstellen eines virtuellen Lastausgleichsservers

Der Client muss NetScaler Console eine API-Anfrage in der folgenden Form senden:


    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"
         }
    }
<!--NeedCopy-->

Beispiel 3: Ändern eines virtuellen Lastausgleichsservers

Der Client muss NetScaler Console eine API-Anfrage in der folgenden Form senden:

    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"
       }
    }
<!--NeedCopy-->

Beispiel 4: Löschen eines virtuellen Lastausgleichsservers

Der Client muss NetScaler Console eine API-Anfrage in der folgenden Form senden:

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

<!--NeedCopy-->

Beispiel 5: Herunterladen der CLI-Laufzeitkonfiguration auf dem NetScaler

Der Client muss NetScaler Console eine API-Anfrage in der folgenden Form senden:

    GET /nitro/v1/config/nsrunningconfig
    Accept-type: application/json
    _MPS_API_PROXY_MANAGED_INSTANCE_IP: 192.0.2.10
    SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D

<!--NeedCopy-->
NetScaler Console als API-Proxy-Server