Citrix Application Delivery Management

Citrix ADM como servidor proxy API

Además de poder recibir solicitudes de API NITRO REST para su propia funcionalidad 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 API, Citrix ADM ofrece las siguientes ventajas:

  • Validación de solicitudes API. Citrix ADM valida todas las solicitudes de API con respecto a las directivas de seguridad y control de acceso basado en roles (RBAC) configuradas. Citrix ADM también es consciente de los arrendatarios y garantiza que la actividad de API no cruce los límites de los arrendatarios.

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

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

Cómo funciona Citrix ADM como servidor proxy API

Cuando quiere que Citrix 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_NOMBRE_INSTANCIA 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 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_NOMBRE_USUARIO 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 Citrix 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:

API de dispositivo

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

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

  2. El motor proxy de 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 garantiza que la solicitud no infringe las directivas de seguridad configuradas, las directivas 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, Citrix 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 Citrix ADM como servidor proxy API

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

  • Inicie sesión en Citrix ADM
  • Obtener un ID de sesión
  • Incluya el ID de sesión en las solicitudes API posteriores.

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

    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 ID de sesión. El siguiente cuerpo de respuesta de ejemplo muestra un ID 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 estadísticas del servidor virtual de equilibrio de carga

El cliente debe enviar a Citrix 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 Citrix 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 Citrix 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 Citrix 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 Citrix 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-->
Citrix ADM como servidor proxy API