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 abusos y las acciones de seguridad.
El proceso de identificación de la IP del cliente es complejo 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 un parámetro de configuración a nivel del entorno que especifica cómo resolver la dirección IP del cliente desde el encabezado X-Forwarded-For (XFF), identificando el índice en el encabezado que coincide con la dirección IP para los requisitos de seguridad y la topología de red. Usar 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 en el 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 Analytics en el entorno.
Si la resolución de IP de cliente a nivel del entorno no está configurada como se describe en esta página, las variables de dirección IP de cliente se propagan con el comportamiento de la resolución predeterminada de dirección IP de cliente.
Resolución predeterminada de la dirección IP del cliente
Si la resolución de la IP del cliente no está configurada 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 a partir de la configuración de resolución de IP del cliente. Consulta Cómo establecer la resolución de IP del cliente para un entorno.
Cuándo configurar la resolución de IP del cliente para un entorno
Si bien no es obligatorio configurar la resolución de IP del cliente, es posible que desees hacerlo si la resolución predeterminada de la dirección IP del cliente no satisface tus necesidades y deseas anularla para proporcionar una resolución de dirección IP del cliente especificada para Analytics, la 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 la resolución de IP del cliente
El parámetro de configuración de resolución de IP del cliente tiene este formato:
"clientIpResolutionConfig": { "headerIndexAlgorithm": { "ipHeaderName" : "X-Forwarded-For", "ipHeaderIndex": 2 } }
ipHeaderName
es el encabezado que se usará para la IP del cliente. En este momento,X-Forwarded-For
es el valor de encabezado admitido.ipHeaderIndex
es el valor del índice dentro deipHeaderName
.
Un número positivo selecciona una dirección a partir de la izquierda (la primera dirección agregada al encabezado), en la que la primera posición a la izquierda es0
y aumenta en uno para cada dirección posterior (p.ej.,0, 1, 2
). Por ejemplo, si la lista es192.0.2.1, 192.0.2.2, 192.0.2.3
, un índice de1
se resuelve como192.0.2.2
.
Un número negativo selecciona una dirección comenzando desde la derecha (la última dirección agregada al encabezado), en la que 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 es192.0.2.1, 192.0.2.2, 192.0.2.3, 192.0.2.4
, un índice de-1
se resuelve en192.0.2.4
y el índice-2
se resuelve en192.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 para un entorno con la IU de Apigee o las APIs de Management.
Visualiza la configuración de resolución de IP del cliente con la IU
Para ver la configuración de resolución de IP del cliente, haz lo siguiente:
En la consola de Google Cloud , ve a la página Administración > Entornos.
-
Selecciona el entorno y consulta la Configuración de IP del cliente en la pestaña Acerca de.
Visualiza 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 resolución de IP del cliente para un entorno, la variable de flujo client.resolved.ip
se completa con el algoritmo especificado. Lo mismo sucede con la dimensión de Analytics Resolved Client IP
.
Una vez que configures la resolución de IP del cliente para un entorno, es posible que los cambios afecten 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 nueva configuración.
Ten en cuenta estas implicaciones cuando selecciones el índice para la resolución de 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 se puede suplantar el encabezado X-Forwarded-For, 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 completado previamente. 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 él.
Para configurar la resolución de IP del cliente en un entorno, usa una de las APIs de Apigee API Management para establecer la resolución de IP del cliente para el entorno en client_ip_resolution_config
.
Usa organizations.environments.create para los entornos nuevos. Usa updateEnvironment o modifyEnvironment para los 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:
- Espera al menos 5 minutos después de guardar un nuevo parámetro de configuración.
- Inicia una sesión de depuración. Habilita el parámetro de configuración para Mostrar todos los FlowInfos.
- Verifica el FlowInfo justo antes de Proxy Request Flow Started. Deberías ver la dirección IP del cliente configurada capturada 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 esfalse
, a menos que Apigee haya recurrido a la resolución de IP del cliente predeterminada debido a la imposibilidad de 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 se configura, es"HeaderIndexAlgorithm{IpHeaderName:header_name, IpHeaderIndex: $header_index}"
. De lo contrario, se muestradefault
.
Limitaciones
Se aplican las siguientes limitaciones a la resolución de la 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.
- La configuración de resolución de IP del 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 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 configurar la resolución de IP del cliente no garantiza la identificación de la dirección IP de solicitud correcta.