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 a la API es importante para algunas funciones de Apigee, incluidas Analytics y Advanced API Security como la detección de abusos y las acciones de seguridad.

El proceso de identificación de la IP del cliente es un desafío en las arquitecturas de red modernas que emplean proxies y balanceadores de cargas, ya que estos intermediarios pueden ocultar la verdadera dirección IP de origen.

Para superar este desafío, Apigee admite una configuración a nivel del entorno que especifica cómo resolver la dirección IP del cliente desde un encabezado especificado. Puede ser cualquier encabezado, como X-Forwarded-For o True-Client-Ip. El parámetro de configuración identifica el índice en el encabezado que coincide con la dirección IP para tu topología de red y los requisitos de seguridad. El uso de este parámetro de configuración proporciona visibilidad, coherencia y control sobre cómo se determinan las direcciones IP de cliente para todas las solicitudes en el entorno y da como resultado una identificación coherente de la dirección IP de cliente en Advanced API Security, las variables de flujo y las variables de Analytics en el entorno.

Si no se configura la resolución de IP de cliente a nivel del entorno, o si el encabezado configurado no existe o no contiene una dirección IP en el índice especificado, las variables de dirección IP de cliente se propagan con el comportamiento predeterminado de resolución de IP de cliente.

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

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

Si la resolución de IP de cliente está configurada para un entorno, las variables de flujo y Analytics se establecen a partir de la configuración de resolución de IP de cliente. Consulta Establece la resolución de IP de cliente para un entorno.

Cuándo establecer la resolución de IP de cliente para un entorno

Aunque no es obligatorio establecer la resolución de IP de cliente, es posible que desees hacerlo si la resolución predeterminada de IP de cliente no satisface tus necesidades y deseas anularla para proporcionar una resolución de IP de cliente especificada para Analytics, Advanced API Security o realizar cualquier otra función que requiera información coherente y confiable sobre las direcciones IP de cliente.

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

El parámetro de configuración de resolución de IP de cliente tiene este formato:

"clientIpResolutionConfig": {
  "headerIndexAlgorithm": {
     "ipHeaderName" : "X-Forwarded-For",
     "ipHeaderIndex": 2
  }
}

En el siguiente ejemplo, se usa el encabezado True-Client-Ip:

"clientIpResolutionConfig": {
  "headerIndexAlgorithm": {
     "ipHeaderName" : "True-Client-Ip",
     "ipHeaderIndex": 0
  }
}
donde
  • ipHeaderName es el encabezado que se usará para la IP de cliente. Por ejemplo, X-Forwarded-For o True-Client-Ip.
  • ipHeaderIndex es el valor del índice dentro de ipHeaderName.

    Un número positivo selecciona una dirección que comienza desde la izquierda (la primera dirección agregada al encabezado), en la que la primera posición de la izquierda es 0 y aumenta en uno por cada dirección posterior (p.ej., 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 en 192.0.2.2.

    Un número negativo selecciona una dirección que comienza desde la derecha (la última dirección agregada al encabezado), en la que la primera posición de la derecha es -1 y disminuye en uno por cada dirección posterior (p.ej., -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, un índice de -1 se resuelve en 192.0.2.4 y el índice -2 se resuelve en 192.0.2.3.

Consulta la API de organizations.environment para obtener información adicional sobre este parámetro de configuración.

Visualiza las configuraciones de resolución de IP de cliente

Puedes ver la configuración actual de resolución de IP de cliente para un entorno con la IU de Apigee o las APIs de Management.

Visualiza la configuración de resolución de IP de cliente con la IU

Para ver la configuración de resolución de IP de cliente, haz lo siguiente:

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

    Ir a Entornos

  2. Selecciona el entorno y consulta Client IP configuration en la pestaña About.

    Resolución de IP del cliente en la IU de Apigee

Visualiza la configuración de resolución de IP de cliente con la API

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

Establece la resolución de IP de cliente para un entorno

Después de establecer la configuración de resolución de IP de cliente para un entorno, la client.resolved.ip variable de flujo se propaga con el algoritmo especificado. Lo mismo sucede con la Resolved Client IP dimensión de Analytics.

Una vez que hayas establecido la configuración de resolución de IP de cliente para un entorno, los cambios podrían afectar las configuraciones existentes de Advanced API Security para las reglas de acción de seguridad. Revisa y, si es necesario, vuelve a generar las reglas existentes para usar las nuevas variables y la configuración.

Ten en cuenta estas implicaciones cuando selecciones el índice para la resolución de IP de cliente:

  • Las llamadas de Apigee a Apigee no se controlan como un caso especial. Ten cuidado de anotar y omitir la cantidad de IPs según corresponda.
  • Dado que el encabezado X-Forwarded-For se puede suplantar, es mejor usar el índice correcto según la cantidad de saltos esperados entre el cliente y el balanceador de cargas de Apigee. Un usuario malicioso puede enviar un encabezado X-Forwarded-For precompletado. Si bien la primera IP en XFF es la más cercana a la IP del cliente real, la última IP en XFF es la más confiable, ya que el balanceador de cargas conoce el cliente TCP que está conectado a ella.

Para establecer la resolución de IP de cliente en un entorno, usa una de las APIs de Management de Apigee para establecer la resolución de IP de cliente para el entorno en el client_ip_resolution_config. Usa organizations.environments.create para entornos nuevos. Usa updateEnvironment o modifyEnvironment para entornos existentes.

Prueba la resolución de la dirección IP de 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 parámetro de configuración.
  2. Inicia una sesión de depuración. Habilita el parámetro de configuración para Mostrar todos los FlowInfos.
  3. Verifica el FlowInfo justo antes de Se inició el flujo de solicitud del proxy. Deberías ver la dirección IP de cliente configurada capturada en esa sección.

Busca estas variables en FlowInfo:

  • client_ip_resolution.resolved.ip: Es la dirección IP de cliente resuelta.
  • client_ip_resolution.used.fallback: Booleano. Este valor es false a menos que Apigee haya recurrido a la resolución predeterminada de IP de cliente debido a la imposibilidad de 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: Es el algoritmo que se usa para determinar la dirección IP de cliente. Si se configura, es "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 del entorno:

  • Las actualizaciones de las configuraciones de resolución de IP de cliente pueden tardar hasta 5 minutos en aplicarse.
  • Evita los cambios frecuentes (por ejemplo, cada 5 minutos) en la configuración de resolución de IP de cliente, ya que esto podría causar una degradación del rendimiento.
  • La configuración de la resolución de IP de cliente para un entorno en Apigee Hybrid está disponible con 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 establecer a través de la API.
  • Incluso en ausencia de usuarios maliciosos, la lista X-Forwarded-For depende de que cada proxy agregue la información correcta a la lista. Esa lista completa está fuera de la supervisión y el control de Apigee, por lo que establecer la configuración de resolución de IP de cliente no garantiza la identificación de la dirección IP de solicitud correcta.