Application Delivery Management

NetScaler ADM como servidor proxy API

Además de poder recibir solicitudes de la API REST de NITRO para su propia funcionalidad de administración y análisis, NetScaler Application Delivery Management (NetScaler ADM) puede funcionar como un servidor proxy de API REST para sus instancias gestionadas. En lugar de enviar solicitudes de API directamente a las instancias gestionadas, los clientes de la API REST pueden enviar las solicitudes de API a NetScaler ADM. NetScaler ADM puede diferenciar entre las solicitudes de API a las que debe responder y las solicitudes de API que debe reenviar sin cambios a una instancia gestionada.

Como servidor proxy de API, NetScaler ADM le ofrece las siguientes ventajas:

  • Validación de solicitudes de API. NetScaler ADM valida todas las solicitudes de API según las directivas configuradas de seguridad y control de acceso basado en roles (RBAC). NetScaler ADM también reconoce a los arrendatarios y garantiza que la actividad de la API no sobrepase los límites de los arrendatarios.

  • Auditoría centralizada. NetScaler ADM mantiene un registro de auditoría de toda la actividad de la API relacionada con sus instancias gestionadas.

  • Administración de sesiones. NetScaler ADM libera a los clientes de API de la tarea de mantener sesiones con instancias administradas.

Cómo funciona NetScaler ADM como servidor proxy de API

Cuando quiere que NetScaler ADM reenvíe una solicitud a una instancia administrada, configure el cliente de API para que incluya cualquiera de los siguientes encabezados HTTP en la solicitud de API:

valores de encabezado Descripción
_MPS_API_PROXY_MANAGED_INSTANCE_NAME Nombre de la instancia administrada.
_MPS_API_PROXY_MANAGED_INSTANCE_IP Dirección IP de la instancia administrada.
_MPS_API_PROXY_MANAGED_INSTANCE_ID ID de la instancia administrada.
_MPS_API_PROXY_TIMEOUT Valor de tiempo de espera para una solicitud de API de NITRO. Establezca el valor de tiempo de espera en segundos. Cuando se establece un tiempo de espera de proxy, ADM espera la duración especificada antes de agotar el tiempo de espera de la solicitud.
_MPS_API_PROXY_MANAGED_INSTANCE_USERNAME Nombre de usuario para acceder a la instancia de ADC administrada.
_MPS_API_PROXY_MANAGED_INSTANCE_PASSWORD Contraseña para acceder a la instancia de ADC administrada.
_MPS_API_PROXY_MANAGED_INSTANCE_SESSID Id. de sesión para acceder a la instancia administrada.

Nota:

En Configuración > Administración > Configuraciones del sistema > Configuración básica, si selecciona Solicitar credenciales para el inicio de sesión de la instancia, asegúrese de configurar el nombre de usuario y la contraseña de una instancia administrada. Como alternativa, también puede especificar el ID de sesión de instancia.

La presencia de cualquiera de estos encabezados HTTP ayuda a NetScaler ADM a identificar una solicitud de API como una que debe reenviar a una instancia administrada. El valor del encabezado ayuda a NetScaler ADM a identificar la instancia gestionada a la que debe reenviar la solicitud.

Este flujo se representa en la siguiente ilustración:

Device-API

Como se muestra en la ilustración anterior, cuando uno de estos encabezados HTTP aparece en una solicitud, NetScaler ADM procesa la solicitud de la siguiente manera:

  1. Sin modificar la solicitud, NetScaler ADM reenvía la solicitud al motor de proxy de la API de la instancia.

  2. El motor proxy de la API de instancia reenvía la solicitud de API a un validador y registra los detalles de la solicitud de API en el registro de auditoría.

  3. El validador se asegura de que la solicitud no infrinja las directivas de seguridad configuradas, las directivas de RBAC, los límites de arrendamiento, etc. Realiza comprobaciones adicionales, como una comprobación para determinar si la instancia administrada está disponible.

Si la solicitud de API es válida y se puede reenviar a la instancia administrada, NetScaler ADM identifica una sesión mantenida por el Administrador de sesiones de la instancia y, a continuación, envía la solicitud a la instancia administrada.

Nota

Asegúrese de que la opción Solicitar credenciales para inicio de sesión de instancia está inhabilitada. Para ello:

  1. Vaya a Configuración > Administración.
  2. En Configuraciones del sistema, seleccione Sistema, Zona horaria, URL permitidas y Mensaje del día.

Cómo usar NetScaler ADM como servidor proxy API

Los siguientes ejemplos muestran las solicitudes de API REST que un cliente de API envía a un servidor NetScaler ADM que tiene una dirección IP de 192.0.2.5. Se requiere NetScaler ADM para reenviar las solicitudes, sin cambios, a una instancia gestionada con la dirección IP 192.0.2.10. Todos los ejemplos utilizan el encabezado _MPS_API_PROXY_MANAGED_INSTANCE_IP.

Antes de enviar las solicitudes de API a NetScaler ADM, el cliente de API debe:

  • Inicie sesión en NetScaler ADM
  • Obtener un identificador de sesión
  • Incluye el ID de sesión en las solicitudes de API posteriores.

La solicitud de la API de inicio de sesión tiene el siguiente formato:

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

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

NetScaler ADM responde a la solicitud de inicio de sesión con una respuesta que incluye el ID de sesión. El siguiente ejemplo de cuerpo de respuesta muestra un identificador de sesión:

{

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

Ejemplo 1: Recuperar las estadísticas del servidor virtual de equilibrio de carga

El cliente debe enviar a NetScaler ADM una solicitud de API del siguiente formulario:

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

Donde el valor del encabezado de cookie es el ID de sesión devuelto por la llamada a la API de inicio de sesión. Y el valor de _MPS_API_PROXY_MANAGED_INSTANCE_IP es la dirección IP del ADC.

Ejemplo 2: Crear un servidor virtual de equilibrio de carga

El cliente debe enviar a NetScaler ADM una solicitud de API del siguiente formulario:


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

Ejemplo 3: Modificar un servidor virtual de equilibrio de carga

El cliente debe enviar a NetScaler ADM una solicitud de API del siguiente formulario:

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

Ejemplo 4: Eliminar un servidor virtual de equilibrio de carga

El cliente debe enviar a NetScaler ADM una solicitud de API del siguiente formulario:

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

<!--NeedCopy-->

Ejemplo 5: Descargue la configuración de ejecución de CLI en el ADC

El cliente debe enviar a NetScaler ADM una solicitud de API del siguiente formulario:

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

<!--NeedCopy-->
NetScaler ADM como servidor proxy API