Application Delivery Management

NetScaler ADM como servidor proxy API

Además de poder recibir solicitudes de API REST de NITRO para sus propias funciones de administración y análisis, Citrix Application Delivery Management (Citrix ADM) puede funcionar como un servidor proxy de API REST para sus instancias administradas. En lugar de enviar solicitudes de API directamente a las instancias administradas, los clientes de API REST pueden enviar las solicitudes de API a Citrix ADM. Citrix 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 administrada.

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

  • Validación de solicitudes de API. Citrix ADM valida todas las solicitudes de API comparándolas con las políticas configuradas de seguridad y control de acceso basado en roles (RBAC). Citrix ADM también reconoce a los inquilinos y garantiza que la actividad de las API no sobrepase los límites de los inquilinos.

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

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

Cómo funciona Citrix 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 Sistema > 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 Citrix ADM a identificar la instancia administrada 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, Citrix ADM la reenvía al motor 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 Sistema > 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

En los siguientes ejemplos se muestran las solicitudes de API REST que un cliente de API envía a un servidor Citrix ADM que tiene una dirección IP de 192.0.2.5. Se requiere Citrix 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 a Citrix ADM las solicitudes de API, el cliente de API debe:

  • Inicie sesión en Citrix 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-->

Citrix ADM responde a la solicitud de inicio de sesión con una respuesta que incluye el identificador 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