Citrix Application Delivery Management 13.0

Citrix ADM als API-Proxyserver

Citrix Application Delivery Management (Citrix ADM) kann nicht nur NITRO REST-API-Anforderungen für eigene Verwaltungs- und Analysefunktionen empfangen, sondern auch als REST-API-Proxyserver für seine verwalteten Instanzen fungieren. Anstatt API-Anforderungen direkt an die verwalteten Instanzen zu senden, können REST-API-Clients die API-Anforderungen an Citrix ADM senden. Citrix ADM kann zwischen den API-Anforderungen, auf die es antworten muss, und den API-Anforderungen unterscheiden, die unverändert an eine verwaltete Instanz weitergeleitet werden müssen.

Citrix ADM bietet Ihnen als API-Proxyserver folgende Vorteile:

  • Validierung von API-Anforderungen. Citrix ADM validiert alle API-Anforderungen anhand konfigurierter Sicherheits- und rollenbasierter Zugriffssteuerungsrichtlinien (RBAC). Citrix ADM ist ebenfalls mandantenfähig und stellt sicher, dass die API-Aktivität die Mandantengrenzen nicht überschreitet.

  • Zentrales Auditing. Citrix ADM verwaltet ein Überwachungsprotokoll aller API-Aktivitäten im Zusammenhang mit den verwalteten Instanzen.

  • Sitzungsverwaltung. Citrix ADM befreit API-Clients von der Aufgabe, Sitzungen mit verwalteten Instanzen zu verwalten.

Funktionsweise von Citrix ADM als API-Proxyserver

Wenn Citrix 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:

  • _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.

Das Vorhandensein eines dieser HTTP-Header hilft Citrix ADM, eine API-Anforderung als eine Anforderung zu identifizieren, die an eine verwaltete Instanz weitergeleitet werden muss. Der Wert der Kopfzeile hilft Citrix ADM dabei, die verwaltete Instanz zu identifizieren, an die die Anforderung weitergeleitet werden muss.

Dieser Fluss ist in der folgenden Abbildung dargestellt:

Geräte-API

Wie in der obigen Abbildung gezeigt, verarbeitet Citrix ADM die Anforderung wie folgt, wenn einer dieser HTTP-Header in einer Anforderung angezeigt wird:

  1. Ohne Änderung der Anforderung leitet Citrix ADM die Anforderung an die Instanz-API-Proxy-Engine weiter.

  2. Die Instanz-API-Proxy-Engine leitet die API-Anforderung an einen Validator weiter und protokolliert die Details der API-Anforderung im Überwachungsprotokoll.

  3. Der Validator stellt sicher, dass die Anforderung 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-Anforderung gültig ist und an die verwaltete Instanz weitergeleitet werden kann, identifiziert Citrix ADM eine Sitzung, die vom Instanzsitzungsmanager verwaltet wird, und sendet die Anforderung dann an die verwaltete Instanz.

Verwenden von Citrix ADM als API-Proxyserver

Die folgenden Beispiele zeigen REST-API-Anforderungen, die ein API-Client an einen Citrix ADM -Server mit der IP-Adresse 192.0.2.5 sendet. Citrix ADM ist erforderlich, um die Anforderungen unverändert an eine verwaltete Instanz mit der IP-Adresse 192.0.2.10 weiterzuleiten. Alle Beispiele verwenden den Header _MPS_API_PROXY_MANAGED_INSTANCE_IP.

Bevor die API-Anforderungen von Citrix ADM gesendet werden, muss der API-Client Folgendes ausführen:

  • Anmelden bei Citrix ADM
  • Abrufen einer Sitzungs-ID
  • Fügen Sie die Sitzungs-ID in nachfolgende API-Anforderungen ein.

Die Anmelde-API-Anforderung hat die folgende Form:

    POST /nitro/v1/config/login HTTP/1.1
    Host: 192.0.2.5
    Cache-Control: no-cache
    object=
    {
    "login":
        {
            "username":"nsroot",
            "password":"nsroot"
         }
    }
<!--NeedCopy-->

Citrix 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"

    }

  ]

}
<!--NeedCopy-->

Beispiel 1: Abrufen von Statistiken für den Lastausgleich virtueller Server

Der Client muss Citrix ADM eine API-Anforderung mit folgendem Formular senden:

    GET /nitro/v1/stat/lbvserver HTTP/1.1
    Host: 192.0.2.5
    _MPS_API_PROXY_MANAGED_INSTANCE_IP: 192.0.2.10
    SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D
    Content-type: application/json
    Cache-Control: no-cache
<!--NeedCopy-->

Beispiel 2: Erstellen eines virtuellen Lastausgleichsservers

Der Client muss Citrix ADM eine API-Anforderung mit folgendem Formular senden:


    POST /nitro/v1/config/lbvserver/sample_lbvserver HTTP/1.1
    Host: 192.0.2.5
    _MPS_API_PROXY_MANAGED_INSTANCE_IP: 192.0.2.10
    SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D
    Content-type: application/vnd.com.citrix.netscaler.lbvserver+json
    Accept-type: application/vnd.com.citrix.netscaler.lbvserver+json
    Cache-Control: no-cache
    {"lbvserver":{"name":"sample_lbvserver","servicetype":"HTTP","ipv46":"10.102.1.11","port":"80"}}
<!--NeedCopy-->

Beispiel 3: Ändern eines virtuellen Lastausgleichsservers

Der Client muss Citrix ADM eine API-Anforderung mit folgendem Formular senden:

    PUT /nitro/v1/config/lbvserver HTTP/1.1
    Host: 192.0.2.5
    SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D
    _MPS_API_PROXY_MANAGED_INSTANCE_IP: 192.0.2.10
    Content-type: application/vnd.com.citrix.netscaler.lbvserver+json
    Accept-type: application/vnd.com.citrix.netscaler.lbvserver+json
    Cache-Control: no-cache
    {"lbvserver":{"name":"sample_lbvserver","appflowlog":"DISABLED"}}
<!--NeedCopy-->

Beispiel 4: Löschen eines virtuellen Lastausgleichsservers

Der Client muss Citrix ADM eine API-Anforderung mit folgendem Formular senden:

    DELETE /nitro/v1/config/lbvserver/sample_lbvserver HTTP/1.1
    Host: 192.0.2.5
    SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D
    _MPS_API_PROXY_MANAGED_INSTANCE_IP: 192.0.2.10
    Cache-Control: no-cache
<!--NeedCopy-->
Citrix ADM als API-Proxyserver