NetScaler Console als API-Proxyserver
NetScaler Application Delivery Management (NetScaler Console) kann nicht nur NITRO-REST-API-Anfragen für seine eigene Verwaltungs- und Analysefunktionalität empfangen, sondern auch als REST-API-Proxyserver 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 den API-Anfragen unterscheiden, auf die es antworten muss, und den API-Anfragen, die es unverändert an eine verwaltete Instanz weiterleiten muss.
Als API-Proxyserver bietet 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.
-
Zentralisiertes Auditing. NetScaler Console führt ein Audit-Protokoll aller API-Aktivitäten im Zusammenhang mit seinen verwalteten Instanzen.
-
Sitzungsverwaltung. NetScaler Console entbindet API-Clients von der Aufgabe, Sitzungen mit verwalteten Instanzen aufrechterhalten zu müssen.
Als API-Proxyserver unterstützt NetScaler Console die Admin-Partition.
Wie NetScaler Console als API-Proxyserver funktioniert
Wenn Sie möchten, dass NetScaler Console eine Anfrage an eine verwaltete Instanz weiterleitet, 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 stellen Sie, wenn Sie Anmeldeinformationen für die Instanzanmeldung anfordern auswählen, sicher, dass Sie Benutzername und Passwort einer verwalteten Instanz konfigurieren. Alternativ können Sie auch die Instanz-Sitzungs-ID 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 wird in der folgenden Abbildung dargestellt:
Wie in der obigen Abbildung dargestellt, verarbeitet NetScaler Console die Anfrage wie folgt, wenn einer dieser HTTP-Header in einer Anfrage erscheint:
-
Ohne die Anfrage zu ändern, leitet NetScaler Console die Anfrage an die API-Proxy-Engine der Instanz weiter.
-
Die API-Proxy-Engine der Instanz leitet die API-Anfrage an einen Validator weiter und protokolliert die Details der API-Anfrage im Audit-Protokoll.
-
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, um festzustellen, 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 Sitzung, die vom Instanz-Sitzungsmanager verwaltet wird, und sendet die Anfrage dann an die verwaltete Instanz.
Hinweis
Stellen Sie sicher, dass die Option Anmeldeinformationen für Instanzanmeldung anfordern deaktiviert ist. Gehen Sie dazu wie folgt vor:
-
Navigieren Sie zu Einstellungen > Administration.
-
Wählen Sie unter Systemkonfigurationen die Option System, Zeitzone, Zugelassene URLs und Nachricht des Tages.
So verwenden Sie NetScaler Console als API-Proxy-Server
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 API-Anfrage zur Anmeldung hat das folgende Format:
POST /nitro/v1/config/login
Content-Type: application/json
{
"login": {
"username":"nsroot",
"password":"nsroot"
}
}
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"
}
]
}
Beispiel 1: Statistiken des virtuellen Lastausgleichsservers abrufen
Der Client muss NetScaler Console eine API-Anfrage im folgenden Format senden:
GET /nitro/v1/stat/lbvserver
Content-type: application/json
MPS-API-PROXY-MANAGED-INSTANCE-IP: 192.0.2.10
SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D
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: Einen virtuellen Lastausgleichsserver erstellen
Der Client muss NetScaler Console eine API-Anfrage im folgenden Format 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"
}
}
Beispiel 3: Einen virtuellen Lastausgleichsserver ändern
Der Client muss NetScaler Console eine API-Anfrage im folgenden Format 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"
}
}
Beispiel 4: Einen virtuellen Lastausgleichsserver löschen
Der Client muss NetScaler Console eine API-Anfrage im folgenden Format senden:
DELETE /nitro/v1/config/lbvserver/sample_lbvserver
Accept-type: application/json
MPS-API-PROXY-MANAGED-INSTANCE-IP: 192.0.2.10
SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D
Beispiel 5: Die CLI-Laufzeitkonfiguration auf dem NetScaler herunterladen
Der Client muss NetScaler Console eine API-Anfrage im folgenden Format senden:
GET /nitro/v1/config/nsrunningconfig
Accept-type: application/json
MPS-API-PROXY-MANAGED-INSTANCE-IP: 192.0.2.10
SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D