Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
NetScaler ADM als API-Proxyserver
NetScaler Application Delivery Management (NetScaler ADM) kann nicht nur NITRO REST-API-Anfragen für seine eigenen Management- und Analysefunktionen 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 ADM senden. NetScaler ADM kann zwischen den API-Anfragen, auf die es antworten muss, und den API-Anfragen, die es unverändert an eine verwaltete Instanz weiterleiten muss, unterscheiden.
Als API-Proxyserver bietet Ihnen NetScaler ADM die folgenden Vorteile:
-
Validierung von API-Anfragen. NetScaler ADM validiert alle API-Anfragen anhand der konfigurierten Sicherheits- und rollenbasierten Zugriffskontrollrichtlinien (RBAC). NetScaler ADM ist auch mandantenorientiert und stellt sicher, dass API-Aktivitäten keine Mandantengrenzen überschreiten.
-
Zentralisiertes Audit. NetScaler ADM führt ein Prüfprotokoll aller API-Aktivitäten im Zusammenhang mit seinen verwalteten Instanzen.
-
Sitzungsverwaltung. NetScaler ADM befreit API-Clients von der Aufgabe, Sitzungen mit verwalteten Instanzen zu verwalten.
So funktioniert NetScaler ADM als API-Proxyserver
Wenn NetScaler ADM eine Anforderung an eine verwaltete Instanz weiterleiten soll, konfigurieren Sie den API-Client so, dass er einen der folgenden HTTP-Header in die API-Anforderung einschließt:
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 ADM auf die angegebene Dauer, bevor die Anforderung abgegeben wird. |
_MPS_API_PROXY_MANAGED_INSTANCE_USERNAME | Benutzername für den Zugriff auf die verwaltete ADC-Instanz. |
_MPS_API_PROXY_MANAGED_INSTANCE_PASSWORD | Kennwort für den Zugriff auf die verwaltete ADC-Instanz. |
_MPS_API_PROXY_MANAGED_INSTANCE_SESSID | Sitzungs-ID für den Zugriff auf die verwaltete Instanz. |
Hinweis
Wenn Sie unter Einstellungen > Administration > Systemkonfigurationen > Grundeinstellungendie Option Anmeldeinformationen für Instanzenanmeldung auffordernauswählen, müssen Sie den Benutzernamen und das Kennwort einer verwalteten Instanz konfigurieren. Alternativ können Sie auch die Instanzsitzungs-ID angeben.
Das Vorhandensein eines dieser HTTP-Header hilft NetScaler ADM, eine API-Anforderung als eine Anforderung zu identifizieren, die an eine verwaltete Instanz weitergeleitet werden muss. Der Wert des Headers hilft NetScaler ADM dabei, die verwaltete Instanz zu identifizieren, an die es die Anfrage weiterleiten muss.
Dieser Fluss ist in der folgenden Abbildung dargestellt:
Wie in der obigen Abbildung gezeigt, verarbeitet NetScaler ADM die Anforderung wie folgt, wenn einer dieser HTTP-Header in einer Anforderung angezeigt wird:
-
Ohne die Anfrage zu ändern, leitet NetScaler ADM die Anfrage an die Instanz-API-Proxy-Engine weiter.
-
Die Instanz-API-Proxy-Engine 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 nicht gegen konfigurierte Sicherheitsrichtlinien, RBAC-Richtlinien, Mandantengrenzen usw. verstößt. Es 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 ADM eine Sitzung, die vom Instanz Session Manager verwaltet wird, und sendet dann die Anfrage an die verwaltete Instanz.
Hinweis:
Stellen Sie sicher, dass die Option Anmeldeinformationen für Instanzanmeldung anfordern deaktiviert ist. Vorgehensweise:
- Navigieren Sie zu Einstellungen > Administration.
- Wählen Sie in Systemkonfigurationen die Optionen System, Zeitzone, Zulässige URLs und Meldung des Tages aus.
Verwenden von NetScaler ADM als API-Proxyserver
Die folgenden Beispiele zeigen REST-API-Anfragen, die ein API-Client an einen NetScaler ADM-Server mit einer IP-Adresse von 192.0.2.5 sendet. NetScaler ADM ist erforderlich, um die Anfragen unverändert an eine verwaltete Instanz mit der IP-Adresse 192.0.2.10 weiterzuleiten. Alle Beispiele verwenden den _MPS_API_PROXY_MANAGED_INSTANCE_IP-Header.
Bevor NetScaler ADM die API-Anfragen sendet, muss der API-Client:
- Melden Sie sich bei NetScaler ADM an
- Besorgen Sie sich eine Sitzungs-ID
- Fügen Sie die Sitzungs-ID in nachfolgende API-Anfragen ein.
Die Anmelde-API-Anforderung hat das folgende Format:
POST /nitro/v1/config/login
Content-Type: application/json
{
"login": {
"username":"nsroot",
"password":"nsroot"
}
}
NetScaler ADM antwortet auf die Anmeldeanforderung mit einer Antwort, die die Sitzungs-ID enthält. Der folgende Beispielantworttext 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: Rufen Sie die Statistiken für virtuelle Load-Balancing-Server ab
Der Client muss NetScaler ADM eine API-Anforderung mit folgendem Formular senden:
GET /nitro/v1/stat/lbvserver
Content-type: application/json
_MPS_API_PROXY_MANAGED_INSTANCE_IP: 192.0.2.10
SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D
Wobei der Wert des Cookie-Headers die Sitzungs-ID ist, die vom Login-API-Aufruf zurückgegeben wird. Und der Wert von _MPS_API_PROXY_MANAGED_INSTANCE_IP ist die IP-Adresse des ADC.
Beispiel 2: Erstellen eines virtuellen Lastausgleichsservers
Der Client muss NetScaler ADM eine API-Anforderung mit folgendem Formular 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: Ändern Sie einen virtuellen Lastausgleichsserver
Der Client muss NetScaler ADM eine API-Anforderung mit folgendem Formular 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: Löschen eines virtuellen Load-Balancing-Servers
Der Client muss NetScaler ADM eine API-Anforderung mit folgendem Formular 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: Laden Sie die CLI running Config auf dem ADC herunter
Der Client muss NetScaler ADM eine API-Anforderung mit folgendem Formular senden:
GET /nitro/v1/config/nsrunningconfig
Accept-type: application/json
_MPS_API_PROXY_MANAGED_INSTANCE_IP: 192.0.2.10
SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D