Application Delivery Management

NetScaler® ADM en tant que serveur proxy d’API

En plus de pouvoir recevoir des requêtes d’API REST NITRO pour ses propres fonctionnalités de gestion et d’analyse, NetScaler Application Delivery Management (NetScaler ADM) peut fonctionner comme un serveur proxy d’API REST pour ses instances gérées. Au lieu d’envoyer des requêtes d’API directement aux instances gérées, les clients d’API REST peuvent envoyer les requêtes d’API à NetScaler ADM. NetScaler ADM peut différencier les requêtes d’API auxquelles il doit répondre et celles qu’il doit transférer sans modification à une instance gérée.

En tant que serveur proxy d’API, NetScaler ADM vous offre les avantages suivants :

  • Validation des requêtes d’API. NetScaler ADM valide toutes les requêtes d’API par rapport aux politiques de sécurité et de contrôle d’accès basé sur les rôles (RBAC) configurées. NetScaler ADM est également conscient des locataires et garantit que l’activité d’API ne dépasse pas les limites des locataires.

  • Audit centralisé. NetScaler ADM conserve un journal d’audit de toutes les activités d’API liées à ses instances gérées.

  • Gestion des sessions. NetScaler ADM libère les clients d’API de la tâche de devoir maintenir des sessions avec les instances gérées.

Fonctionnement de NetScaler ADM en tant que serveur proxy d’API

Lorsque vous souhaitez que NetScaler ADM transfère une requête à une instance gérée, vous configurez le client d’API pour qu’il inclue l’un des en-têtes HTTP suivants dans la requête d’API :

Valeurs d’en-tête Description
_MPS_API_PROXY_MANAGED_INSTANCE_NAME Nom de l’instance gérée.
_MPS_API_PROXY_MANAGED_INSTANCE_IP Adresse IP de l’instance gérée.
_MPS_API_PROXY_MANAGED_INSTANCE_ID ID de l’instance gérée.
_MPS_API_PROXY_TIMEOUT Valeur de délai d’attente pour une requête d’API NITRO. Définissez la valeur de délai d’attente en secondes. Lorsque vous définissez un délai d’attente de proxy, ADM attend la durée spécifiée avant d’expirer la requête.
_MPS_API_PROXY_MANAGED_INSTANCE_USERNAME Nom d’utilisateur pour accéder à l’instance ADC gérée.
_MPS_API_PROXY_MANAGED_INSTANCE_PASSWORD Mot de passe pour accéder à l’instance ADC gérée.
_MPS_API_PROXY_MANAGED_INSTANCE_SESSID ID de session pour accéder à l’instance gérée.

Remarque

Dans Paramètres > Administration > Configurations système > Paramètres de base, si vous sélectionnez Demander les informations d’identification pour la connexion à l’instance, assurez-vous de configurer le nom d’utilisateur et le mot de passe d’une instance gérée. Vous pouvez également spécifier l’ID de session de l’instance.

La présence de l’un de ces en-têtes HTTP aide NetScaler ADM à identifier une requête d’API comme étant une requête qu’il doit transférer à une instance gérée. La valeur de l’en-tête aide NetScaler ADM à identifier l’instance gérée à laquelle il doit transférer la requête.

Ce flux est représenté dans la figure suivante :

API de l'appareil

Comme le montre la figure ci-dessus, lorsqu’un de ces en-têtes HTTP apparaît dans une requête, NetScaler ADM traite la requête comme suit :

  1. Sans modifier la requête, NetScaler ADM transfère la requête au moteur proxy d’API de l’instance.

  2. Le moteur proxy d’API de l’instance transfère la requête d’API à un validateur et enregistre les détails de la requête d’API dans le journal d’audit.

  3. Le validateur s’assure que la requête ne viole pas les politiques de sécurité configurées, les politiques RBAC, les limites de locataires, etc. Il effectue des vérifications supplémentaires, telles qu’une vérification pour déterminer si l’instance gérée est disponible.

Si la requête d’API est valide et peut être transférée à l’instance gérée, NetScaler ADM identifie une session maintenue par le gestionnaire de sessions de l’instance, puis envoie la requête à l’instance gérée.

Remarque

Assurez-vous que l’option Demander les informations d’identification pour la connexion à l’instance est désactivée. Pour ce faire :

  1. Accédez à Paramètres > Administration.
  2. Dans Configurations système, sélectionnez Système, Fuseau horaire, URL autorisées et Message du jour.

Comment utiliser NetScaler ADM comme serveur proxy d’API

Les exemples suivants montrent des requêtes d’API REST qu’un client d’API envoie à un serveur NetScaler ADM ayant l’adresse IP 192.0.2.5. NetScaler ADM est tenu de transférer les requêtes, sans modification, à une instance gérée avec l’adresse IP 192.0.2.10. Tous les exemples utilisent l’en-tête _MPS_API_PROXY_MANAGED_INSTANCE_IP.

Avant d’envoyer les requêtes d’API à NetScaler ADM, le client d’API doit :

  • Se connecter à NetScaler ADM
  • Obtenir un ID de session
  • Inclure l’ID de session dans les requêtes d’API ultérieures.

La requête d’API de connexion se présente sous la forme suivante :

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

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

NetScaler ADM répond à la requête de connexion par une réponse qui inclut l’ID de session. Le corps de réponse d’exemple suivant montre un ID de session :

{

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

Exemple 1 : Récupérer les statistiques du serveur virtuel d’équilibrage de charge

Le client doit envoyer à NetScaler ADM une requête d’API de la forme suivante :

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

Où la valeur de l’en-tête Cookie est l’ID de session renvoyé par l’appel d’API de connexion. Et la valeur de _MPS_API_PROXY_MANAGED_INSTANCE_IP est l’adresse IP de l’ADC.

Exemple 2 : Créer un serveur virtuel d’équilibrage de charge

Le client doit envoyer à NetScaler ADM une requête d’API de la forme suivante :


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

Exemple 3 : Modifier un serveur virtuel d’équilibrage de charge

Le client doit envoyer à NetScaler ADM une requête d’API de la forme suivante :

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

Exemple 4 : Supprimer un serveur virtuel d’équilibrage de charge

Le client doit envoyer à NetScaler ADM une requête d’API de la forme suivante :

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

<!--NeedCopy-->

Exemple 5 : Télécharger la configuration CLI en cours d’exécution sur l’ADC

Le client doit envoyer à NetScaler ADM une requête d’API de la forme suivante :

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

<!--NeedCopy-->
NetScaler® ADM en tant que serveur proxy d’API