Resolução de IP do cliente

Esta página se aplica à Apigee e à Apigee híbrida.

Confira a documentação da Apigee Edge.

Identificar com precisão o endereço IP do cliente em solicitações de API é importante para algumas funcionalidades da Apigee, incluindo recursos de Análise e Segurança avançada de API como detecção de abuso e ações de segurança.

O processo de identificação do IP do cliente é desafiador em arquiteturas de rede modernas que usam proxies e balanceadores de carga, já que esses intermediários podem ocultar o verdadeiro endereço IP de origem.

Para superar esse desafio, a Apigee oferece suporte a uma configuração no nível do ambiente que especifica como resolver o endereço IP do cliente no cabeçalho X-Forwarded-For (XFF), identificando o índice no cabeçalho que corresponde ao endereço IP da sua topologia de rede e aos requisitos de segurança. Usar essa configuração oferece visibilidade, consistência e controle sobre como os endereços IP do cliente são determinados para todas as solicitações no ambiente e resulta em uma identificação consistente de endereços IP do cliente em segurança avançada da API, variáveis de fluxo e variáveis de análise no ambiente.

Se a resolução de IP do cliente no nível do ambiente não estiver configurada conforme descrito nesta página, as variáveis de endereço IP do cliente serão preenchidas usando o comportamento padrão de resolução de IP do cliente.

Resolução de endereço IP do cliente padrão

Se a resolução de IP do cliente não estiver configurada no nível do ambiente, o valor padrão da dimensão ax_resolved_client_ip será calculado conforme descrito em Dimensões do Google Analytics.

Se a resolução de IP do cliente estiver configurada para um ambiente, o fluxo e as variáveis do Google Analytics serão definidos com base na configuração de resolução de IP do cliente. Consulte Definir a resolução de IP do cliente para um ambiente.

Quando definir a resolução de IP do cliente para um ambiente

Embora não seja necessário definir a resolução de IP do cliente, talvez você queira fazer isso se a resolução padrão de endereço IP do cliente não atender às suas necessidades e você quiser substituir para fornecer uma resolução especificada de endereço IP do cliente para o Google Analytics, a Advanced API Security ou qualquer outra função que exija informações consistentes e confiáveis sobre endereços IP do cliente.

Entender a sintaxe de configuração da resolução de IP do cliente

A configuração de resolução de IP do cliente tem este formato:

"clientIpResolutionConfig": {
  "headerIndexAlgorithm": {
     "ipHeaderName" : "X-Forwarded-For",
     "ipHeaderIndex": 2
  }
}
em que
  • ipHeaderName é o cabeçalho a ser usado para o IP do cliente. No momento, X-Forwarded-For é o valor de cabeçalho aceito.
  • ipHeaderIndex é o valor do índice em ipHeaderName.

    Um número positivo seleciona um endereço começando da esquerda (o primeiro endereço adicionado ao cabeçalho), em que a primeira posição à esquerda é 0 e aumenta em um para cada endereço subsequente (por exemplo, 0, 1, 2). Por exemplo, se a lista for 192.0.2.1, 192.0.2.2, 192.0.2.3, um índice de 1 será resolvido como 192.0.2.2.

    Um número negativo seleciona um endereço começando da direita (o último endereço adicionado ao cabeçalho), em que a primeira posição à direita é -1 e diminui em um para cada endereço subsequente (por exemplo, -3, -2, -1). Por exemplo, se a lista for 192.0.2.1, 192.0.2.2, 192.0.2.3, 192.0.2.4, um índice de -1 será resolvido como 192.0.2.4 e o índice -2 será resolvido como 192.0.2.3.

Consulte a API organizations.environment para mais informações sobre essa configuração.

Ver configurações de resolução de IP do cliente

É possível conferir a configuração atual de resolução de IP do cliente para um ambiente usando a IU da Apigee ou as APIs de gerenciamento.

Conferir a configuração de resolução de IP do cliente usando a UI

Para conferir a configuração de resolução de IP do cliente:

  1. No console do Google Cloud , acesse a página Gerenciamento > Ambientes.

    Acessar "Ambientes"

  2. Selecione o ambiente e confira Configuração de IP do cliente na guia Sobre.

    Resolução de IP do cliente na interface da Apigee

Ver a configuração de resolução de IP do cliente usando a API

Para usar as APIs Apigee Management e ver a configuração de resolução de IP do cliente, envie uma solicitação para a API organizations.environments.get.

Definir a resolução de IP do cliente para um ambiente

Depois de definir a configuração de resolução de IP do cliente para um ambiente, a variável de fluxo client.resolved.ip é preenchida usando o algoritmo especificado. Assim como a dimensão do Google Analytics Resolved Client IP.

Depois de definir a configuração de resolução de IP do cliente para um ambiente, as mudanças podem afetar as configurações atuais da Segurança avançada da API para regras de ação de segurança. Revise e, se necessário, gere novamente as regras atuais para usar as novas variáveis e configurações.

Tenha essas implicações em mente ao selecionar o índice para resolução de IP do cliente:

  • As chamadas do Apigee para o Apigee não são tratadas como um caso especial. Anote e pule o número de IPs de acordo com a situação.
  • Como o cabeçalho X-Forwarded-For pode ser falsificado, é melhor usar o índice correto com base no número de saltos esperados entre o cliente e o balanceador de carga da Apigee. Um usuário malicioso pode enviar um cabeçalho X-Forwarded-For pré-preenchido. Embora o primeiro IP no XFF seja o mais próximo do IP do cliente real, o último IP no XFF é o mais confiável, já que o balanceador de carga conhece o cliente TCP conectado a ele.

Para definir a resolução de IP do cliente em um ambiente, use uma das APIs de gerenciamento da Apigee para definir a resolução de IP do cliente para o ambiente no client_ip_resolution_config. Use organizations.environments.create para novos ambientes. Use updateEnvironment ou modifyEnvironment para ambientes atuais.

Testar a resolução do endereço IP do cliente

Depois de salvar uma nova configuração de IP do cliente, você pode testá-la seguindo estas instruções:

  1. Aguarde pelo menos cinco minutos depois de salvar uma nova configuração.
  2. Inicie uma sessão de depuração. Ative a configuração Mostrar todos os FlowInfos.
  3. Verifique o FlowInfo logo antes de Proxy Request Flow Started. Você vai ver o endereço IP do cliente configurado capturado nessa seção.

Procure estas variáveis no FlowInfo:

  • client_ip_resolution.resolved.ip: o endereço IP do cliente resolvido.
  • client_ip_resolution.used.fallback: booleano. Esse valor é false, a menos que a Apigee tenha voltado à resolução de IP do cliente padrão por não conseguir usar uma resolução de IP do cliente configurada. Por exemplo, se a resolução configurada especificar um índice que não existe no cabeçalho.
  • client_ip_resolution.algorithm: o algoritmo usado para determinar o endereço IP do cliente. Se configurado, será "HeaderIndexAlgorithm{IpHeaderName:header_name, IpHeaderIndex: $header_index}". Caso contrário, vai aparecer default.

Limitações

Estas limitações se aplicam à resolução de IP do cliente no nível do ambiente:

  • As atualizações nas configurações de resolução de IP do cliente podem levar até 5 minutos para entrar em vigor.
  • Evite mudanças frequentes (por exemplo, a cada 5 minutos) na configuração de resolução de IP do cliente, porque isso pode causar degradação da performance.
  • A configuração da resolução de IP do cliente para um ambiente na Apigee híbrida está disponível nas versões 1.14.0 e mais recentes.
  • A configuração pode ser visualizada no console ou na API do Apigee, mas só pode ser definida pela API.
  • Mesmo sem usuários maliciosos, a lista X-Forwarded-For depende de cada proxy para adicionar as informações corretas. Essa lista completa está fora da supervisão e do controle da Apigee. Portanto, definir a configuração de resolução de IP do cliente não garante a identificação do endereço IP de solicitação correto.