Resolução de IP do cliente

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

Confira Apigee Edge documentação.

A identificação precisa do endereço IP do cliente em solicitações de API é importante para algumas funcionalidades da Apigee, incluindo Analytics e Advanced API Security , como detecção de abuso e ações de segurança.

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

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 de um cabeçalho especificado. Esse pode ser qualquer cabeçalho, como X-Forwarded-For ou True-Client-Ip. A configuração identifica o índice no cabeçalho que corresponde ao endereço IP da sua topologia de rede e aos requisitos de segurança. O uso dessa 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 do endereço IP do cliente em toda a Advanced API Security, 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 ou se o cabeçalho configurado não existir ou não contiver um endereço IP no índice especificado, as variáveis de endereço IP do cliente serão preenchidas usando o comportamento de resolução de endereço IP do cliente padrão.

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 ax_resolved_client_ip dimensão será calculado conforme descrito em Dimensões do Analytics.

Se a resolução de IP do cliente estiver configurada para um ambiente, as variáveis de fluxo e do Analytics serão definidas 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 de endereço IP do cliente padrão não atender às suas necessidades e você quiser substituí-la para fornecer uma resolução de endereço IP do cliente especificada para o Analytics, o Advanced API Security ou executar qualquer outra função que exija informações consistentes e confiáveis sobre endereços IP do cliente.

Entender a sintaxe de configuração de 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
  }
}

O exemplo a seguir usa o cabeçalho True-Client-Ip:

"clientIpResolutionConfig": {
  "headerIndexAlgorithm": {
     "ipHeaderName" : "True-Client-Ip",
     "ipHeaderIndex": 0
  }
}
em que
  • ipHeaderName é o cabeçalho a ser usado para o IP do cliente. Por exemplo, X-Forwarded-For ou True-Client-Ip.
  • ipHeaderIndex é o valor do índice em ipHeaderName.

    Um número positivo seleciona um endereço começando pela 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 pela 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.

Conferir 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 interface da Apigee ou as APIs Management.

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 Google Cloud console do, acesse a página Apigee > Gerenciamento > Ambientes.

    Acessar "Ambientes"

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

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

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

Para usar as APIs Management da Apigee para conferir 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 client.resolved.ip variável de fluxo será preenchida usando o algoritmo especificado. O mesmo acontece com a dimensão do Analytics Resolved Client IP.

Depois de definir a configuração de resolução de IP do cliente para um ambiente, as mudanças poderão afetar as configurações de Advanced API Security para regras de ação de segurança. Revise e, se necessário, regenere as regras atuais para usar as novas variáveis e configurações.

Considere estas implicações ao selecionar o índice para a resolução de IP do cliente:

  • As chamadas da Apigee para a Apigee não são tratadas como um caso especial. Tome cuidado para observar e pular o número de IPs de acordo.
  • 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 mal-intencionado 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 de APIs da Apigee para definir a resolução de IP do cliente para o ambiente em client_ip_resolution_config. Use organizations.environments.create para novos ambientes. Use updateEnvironment ou modifyEnvironment para ambientes atuais.

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

Depois de salvar uma nova configuração de IP do cliente, é possível testá-la seguindo estas instruções:

  1. Aguarde pelo menos 5 minutos após salvar uma nova configuração.
  2. Inicie uma sessão de depuração. Ative a configuração para Mostrar todos os FlowInfos.
  3. Verifique o FlowInfo logo antes de Fluxo de solicitação de proxy iniciado. O endereço IP do cliente configurado será 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 para a resolução de IP do cliente padrão devido à incapacidade de 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, esse é "HeaderIndexAlgorithm{IpHeaderName:header_name, IpHeaderIndex: $header_index}". Caso contrário, isso mostra 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 performance degradação.
  • A definição da configuração de 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 pelo console ou pela API da Apigee mas só pode ser definida pela API.
  • Mesmo na ausência de usuários mal-intencionados, a lista X-Forwarded-For depende de cada proxy para adicionar as informações corretas à lista. 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 da solicitação correta.