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 las funciones de Analytics y Advanced API Security, como la detección de abuso y las acciones de seguridad.

El proceso de identificación de 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 el encabezado X-Forwarded-For (XFF) y, luego, identificar el índice en el encabezado que coincide con la dirección IP de la 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 del cliente para todas las solicitudes del entorno y genera una identificación coherente de la dirección IP del cliente en Advanced API Security, las variables de flujo y las variables de estadísticas del entorno.

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

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

Si no se configura la resolución de IP del cliente a nivel del 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 IP del cliente está configurada para un entorno, las variables de flujo y de Analytics se establecen desde la configuración de resolución de IP del cliente. Consulta Cómo configurar la resolución de IP del cliente para un entorno.

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

Aunque no es obligatorio establecer la resolución de IP del cliente, te recomendamos que lo hagas si la resolución de dirección IP del cliente predeterminada no satisface tus necesidades y deseas anularla para proporcionar una resolución de dirección IP del cliente especificada para Analytics, Seguridad avanzada de la API o cualquier otra función que requiera información coherente y confiable sobre las direcciones IP del cliente.

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

La configuración de resolución de IP del cliente tiene el siguiente formato:

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

    Un número positivo selecciona una dirección que comienza desde la izquierda (la primera dirección que se agrega al encabezado), en la que la primera posición a la izquierda es 0 y aumenta en uno para 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), donde la primera posición a la derecha es -1 y disminuye en uno para 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.

Consulta la configuración de resolución de IP del cliente

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

Consulta la configuración de resolución de IP del cliente con la IU

Para usar la IU de Apigee en la consola de Cloud y ver la configuración de resolución de IP del cliente, selecciona Administración > Entornos, selecciona el entorno y consulta Configuración de IP del cliente en la pestaña Acerca de.

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

Consulta la configuración de resolución de IP del cliente con la API

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

Cómo establecer la resolución de IP del cliente para un entorno

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

Una vez que establezcas la configuración de resolución de IP del 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 variables y la configuración nuevas.

Ten en cuenta estas implicaciones cuando selecciones el índice para la resolución de la IP del 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 falsificar, 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 prellenado. Si bien la primera IP en el XFF es la más cercana a la IP real del cliente, la última IP en el XFF es la más confiable, ya que el balanceador de cargas conoce al cliente TCP que está conectado a él.

Para establecer la resolución de IP del cliente en un entorno, usa una de las APIs de administración de la API de Apigee para establecer la resolución de IP del cliente para el entorno en 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 del cliente

Después de guardar una nueva configuración de IP del 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 la opción Mostrar todos los FlowInfos.
  3. Verifica FlowInfo justo antes de Proxy Request Flow Started. Deberías ver la dirección IP del cliente configurada en esa sección.

Busca estas variables en FlowInfo:

  • client_ip_resolution.resolved.ip: Es la dirección IP del cliente resuelta.
  • client_ip_resolution.used.fallback: Booleano. Este valor es false, a menos que Apigee haya vuelto a la resolución de IP del cliente predeterminada debido a que no puede usar una resolución de IP del 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 del cliente. Si está configurado, 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 del cliente a nivel del entorno:

  • Las actualizaciones de la configuración de resolución de IP del cliente pueden tardar hasta 5 minutos en aplicarse.
  • Evita realizar cambios frecuentes (por ejemplo, cada 5 minutos) en la configuración de resolución de IP del cliente, ya que esto podría provocar una degradación del rendimiento.
  • En este momento, no está disponible la configuración de resolución de IP del cliente para un entorno con Apigee 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 cada proxy para agregar 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 configuración de resolución de IP del cliente no garantiza la identificación de la dirección IP de solicitud correcta.