Resolución de IP de cliente

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

Identificar con precisión la dirección IP del cliente en las solicitudes de API es importante para algunas funciones de Apigee, como Analytics y Seguridad avanzada de las APIs, como la detección de abusos y las acciones de seguridad.

El proceso de identificación de la IP del cliente es complicado en las arquitecturas de red modernas que utilizan proxies y balanceadores de carga, ya que estos intermediarios pueden ocultar la verdadera dirección IP de origen.

Para superar este problema, Apigee admite un ajuste a nivel de entorno que especifica cómo resolver la dirección IP del cliente a partir del encabezado X-Forwarded-For (XFF), identificando el índice del encabezado que coincide con la dirección IP de tu topología de red y tus requisitos de seguridad. Si usa este ajuste, podrá ver, mantener la coherencia y controlar cómo se determinan las direcciones IP de los clientes en todas las solicitudes del entorno. Además, se identificarán las direcciones IP de los clientes de forma coherente en la seguridad avanzada de las APIs, las variables de flujo y las variables de analíticas del entorno.

Si la resolución de la IP del cliente a nivel de entorno no se configura como se describe en esta página, las variables de dirección IP del cliente se rellenarán con el comportamiento de resolución de la dirección IP del cliente predeterminado.

Resolución predeterminada de la dirección IP del cliente

Si la resolución de la IP del cliente no está configurada a nivel de entorno, el valor predeterminado de la dimensión ax_resolved_client_ip se calcula como se describe en Dimensiones de Analytics.

Si la resolución de la IP del cliente está configurada en un entorno, las variables de flujo y de Analytics se definen a partir de la configuración de la resolución de la IP del cliente. Consulta Definir la resolución de IP de cliente de un entorno.

Cuándo definir la resolución de la IP del cliente de un entorno

Aunque no es obligatorio definir la resolución de la IP del cliente, puede que le interese hacerlo si la resolución de la dirección IP del cliente predeterminada no satisface sus necesidades y quiere anularla para proporcionar una resolución de la dirección IP del cliente específica para Analytics, la seguridad avanzada de la API o cualquier otra función que requiera información coherente y fiable sobre las direcciones IP de los clientes.

Interpretar la sintaxis de configuración de resolución de IP de cliente

El ajuste de resolución de IP del cliente tiene este formato:

"clientIpResolutionConfig": {
  "headerIndexAlgorithm": {
     "ipHeaderName" : "X-Forwarded-For",
     "ipHeaderIndex": 2
  }
}
donde
  • ipHeaderName es el encabezado que se debe usar para la IP del cliente. Por el momento, el valor de encabezado admitido es X-Forwarded-For.
  • ipHeaderIndex es el valor del índice de ipHeaderName.

    Un número positivo selecciona una dirección empezando por la izquierda (la primera dirección añadida al encabezado), donde la primera posición de la izquierda es 0 y aumenta en uno por cada dirección posterior (por ejemplo, 0, 1, 2). Por ejemplo, si la lista es 192.0.2.1, 192.0.2.2, 192.0.2.3, un índice de 1 se resuelve como 192.0.2.2.

    Un número negativo selecciona una dirección empezando por la derecha (la última dirección añadida al encabezado), donde la primera posición de la derecha es -1 y se reduce en uno por cada dirección posterior (por ejemplo, -3, -2, -1). Por ejemplo, si la lista es 192.0.2.1, 192.0.2.2, 192.0.2.3, 192.0.2.4, el índice -1 se resuelve como 192.0.2.4 y el índice -2 se resuelve como 192.0.2.3.

Consulta la API organizations.environment para obtener más información sobre este ajuste.

Ver las configuraciones de resolución de IP de cliente

Puede ver la configuración actual de resolución de IP de cliente de un entorno mediante la interfaz de usuario de Apigee o las APIs de gestión.

Ver la configuración de resolución de IP de cliente mediante la interfaz de usuario

Para ver la configuración de resolución de IP del cliente, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Gestión > Entornos.

    Ir a Entornos

  2. Selecciona el entorno y consulta la configuración de IP del cliente en la pestaña Información.

    Resolución de la IP del cliente en la interfaz de usuario de Apigee

Ver la configuración de resolución de IP de cliente mediante la API

Para usar las APIs de gestión de Apigee y ver la configuración de resolución de IP del cliente, envía una solicitud a la API organizations.environments.get.

Definir la resolución de IP de cliente de un entorno

Después de configurar la resolución de IP de cliente para un entorno, la variable de flujo client.resolved.ip se rellena con el algoritmo especificado. Lo mismo ocurre con la dimensión de Resolved Client IPAnalytics.

Una vez que hayas definido la configuración de resolución de IP de cliente para un entorno, los cambios pueden afectar a las configuraciones de seguridad de API avanzadas que ya tengas en las reglas de acciones de seguridad. Revise y, si es necesario, vuelva a generar las reglas que ya tenga para usar las nuevas variables y ajustes.

Ten en cuenta estas implicaciones al seleccionar el índice de resolución de IP de cliente:

  • Las llamadas de Apigee a Apigee no se gestionan como un caso especial. Asegúrate de anotar y omitir el número de IPs correspondiente.
  • Como el encabezado X-Forwarded-For se puede falsificar, es mejor usar el índice correcto en función del número de saltos esperados entre el cliente y el balanceador de carga de Apigee. Un usuario malintencionado puede enviar un encabezado X-Forwarded-For rellenado previamente. Aunque la primera IP de XFF es la más cercana a la IP del cliente real, la última IP de XFF es la más fiable, ya que el balanceador de carga conoce el cliente TCP que está conectado a él.

Para definir la resolución de IP de cliente en un entorno, usa una de las APIs de gestión de Apigee para definir la resolución de IP de cliente del entorno en client_ip_resolution_config. Usa organizations.environments.create para crear entornos. Usa updateEnvironment o modifyEnvironment para los entornos que ya tengas.

Probar la resolución de la dirección IP del cliente

Después de guardar una nueva configuración de IP de cliente, puedes probarla siguiendo estas instrucciones:

  1. Espera al menos 5 minutos después de guardar un nuevo ajuste de configuración.
  2. Inicia una sesión de depuración. Habilita el ajuste Mostrar todos los FlowInfos.
  3. Consulta FlowInfo justo antes de Proxy Request Flow Started. En esa sección, debería ver la dirección IP del cliente configurada.

Busca estas variables en FlowInfo:

  • client_ip_resolution.resolved.ip: la dirección IP del cliente resuelta.
  • client_ip_resolution.used.fallback: booleano. Este valor es false, a menos que Apigee haya recurrido a la resolución de IP de cliente predeterminada debido a que no se ha podido usar una resolución de IP de cliente configurada. Por ejemplo, si la resolución configurada especifica un índice que no existe en el encabezado.
  • client_ip_resolution.algorithm: algoritmo usado para determinar la dirección IP del cliente. Si se configura, será "HeaderIndexAlgorithm{IpHeaderName:header_name, IpHeaderIndex: $header_index}". De lo contrario, se muestra default.

Limitaciones

Estas limitaciones se aplican a la resolución de IP de cliente a nivel de entorno:

  • Las actualizaciones de las configuraciones de resolución de IP de cliente pueden tardar hasta 5 minutos en aplicarse.
  • No cambies con frecuencia (por ejemplo, cada 5 minutos) la configuración de resolución de IP de cliente, ya que esto podría provocar una degradación del rendimiento.
  • La configuración de resolución de IP de cliente para un entorno en Apigee hybrid está disponible en las versiones 1.14.0 y posteriores de hybrid.
  • La configuración se puede ver a través de la consola o la API de Apigee, pero solo se puede definir a través de la API.
  • Aunque no haya usuarios malintencionados, la lista X-Forwarded-For depende de que cada proxy añada la información correcta a la lista. Esa lista completa está fuera de la supervisión y el control de Apigee, por lo que configurar la resolución de la IP del cliente no garantiza la identificación de la dirección IP de solicitud correcta.