Ce article a été traduit automatiquement. (Clause de non responsabilité)
NetScaler ADM en tant que serveur proxy d’API
En plus de pouvoir recevoir des demandes 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 demandes d’API directement aux instances gérées, les clients de l’API REST peuvent envoyer les demandes d’API à NetScaler ADM. NetScaler ADM peut faire la différence entre les demandes d’API auxquelles il doit répondre et les demandes d’API qu’il doit transmettre sans modification à une instance gérée.
En tant que serveur proxy d’API, NetScaler ADM vous offre les avantages suivants :
-
Validation des demandes d’API. NetScaler ADM valide toutes les demandes d’API par rapport aux stratégies de sécurité et de contrôle d’accès basées sur les rôles (RBAC) configurées. NetScaler ADM tient également compte des locataires et garantit que l’activité des API ne dépasse pas les limites des locataires.
-
Audit centralisé. NetScaler ADM tient à jour un journal d’audit de toutes les activités d’API liées à ses instances gérées.
-
Gestion de session. NetScaler ADM évite aux clients d’API de devoir gérer des sessions avec des instances gérées.
Comment fonctionne NetScaler ADM en tant que serveur proxy d’API
Lorsque vous souhaitez que NetScaler ADM transfère une demande à une instance gérée, vous configurez le client d’API pour inclure l’un des en-têtes HTTP suivants dans la demande d’API :
Valeur 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 du délai d’expiration pour une demande d’API NITRO. Définissez la valeur du délai d’attente en secondes. Lorsque vous définissez un délai d’expiration proxy, ADM attend la durée spécifiée avant d’expiration de la demande. |
_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 permettant d’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 d’instance.
La présence de l’un de ces en-têtes HTTP aide NetScaler ADM à identifier une demande d’API comme devant être transmise à une instance gérée. La valeur de l’en-tête aide NetScaler ADM à identifier l’instance gérée à laquelle il doit transmettre la demande.
Ce flux est représenté dans la figure suivante :
Comme le montre la figure ci-dessus, lorsque l’un de ces en-têtes HTTP apparaît dans une demande, NetScaler ADM traite la demande comme suit :
-
Sans modifier la demande, NetScaler ADM transmet la demande au moteur proxy de l’API de l’instance.
-
Le moteur proxy de l’API d’instance transmet la demande d’API à un validateur et consigne les détails de la demande d’API dans le journal d’audit.
-
Le validateur s’assure que la demande ne viole pas les stratégies de sécurité configurées, les stratégies RBAC, les limites de location, 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 demande d’API est valide et peut être transférée à l’instance gérée, NetScaler ADM identifie une session gérée par le gestionnaire de session de l’instance, puis envoie la demande à l’instance gérée.
Remarque
Assurez-vous que l’option Invite les informations d’identification pour la connexion d’instance est désactivée. Pour ce faire :
- Accédez à Paramètres > Administration.
- 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 les requêtes d’API REST qu’un client d’API envoie à un serveur NetScaler ADM dont l’adresse IP est 192.0.2.5. NetScaler ADM doit transmettre les demandes, sans modification, à une instance gérée dont l’adresse IP est 192.0.2.10. Tous les exemples utilisent l’en-tête _MPS_API_PROXY_MANAGED_INSTANCE_IP.
Avant d’envoyer les demandes d’API à NetScaler ADM, le client d’API doit :
- Connectez-vous à NetScaler ADM
- Obtenir un ID de session
- Incluez l’ID de session dans les demandes d’API suivantes.
La demande d’API d’ouverture de session est de la forme suivante :
POST /nitro/v1/config/login
Content-Type: application/json
{
"login": {
"username":"nsroot",
"password":"nsroot"
}
}
NetScaler ADM répond à la demande d’ouverture de session par une réponse qui inclut l’ID de session. L’exemple de corps de réponse suivant affiche 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"
}
]
}
Exemple 1 : Récupérer des statistiques de serveur virtuel d’équilibrage de charge
Le client doit envoyer à NetScaler ADM une demande d’API sous la forme suivante :
GET /nitro/v1/stat/lbvserver
Content-type: application/json
_MPS_API_PROXY_MANAGED_INSTANCE_IP: 192.0.2.10
SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D
Où la valeur de l’en-tête de 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 demande d’API sous 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"
}
}
Exemple 3 : Modifier un serveur virtuel d’équilibrage de charge
Le client doit envoyer à NetScaler ADM une demande d’API sous 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"
}
}
Exemple 4 : Suppression d’un serveur virtuel d’équilibrage de charge
Le client doit envoyer à NetScaler ADM une demande d’API sous 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
Exemple 5 : Télécharger l’interface de ligne de commande exécutant la configuration sur l’ADC
Le client doit envoyer à NetScaler ADM une demande d’API sous la forme suivante :
GET /nitro/v1/config/nsrunningconfig
Accept-type: application/json
_MPS_API_PROXY_MANAGED_INSTANCE_IP: 192.0.2.10
SESSID: ##D2BF9C5F40E5B2E884A9C45C89F0ADE24DA8A8169BE6358D39F5D471B73D