Resolução de IP do cliente

Esta página aplica-se ao Apigee e ao Apigee Hybrid.

Veja a documentação do Apigee Edge.

A identificação precisa do endereço IP do cliente em pedidos API é importante para algumas funcionalidades no Apigee, incluindo estatísticas e funcionalidades de segurança avançada da API, como a deteção de abusos e as ações de segurança.

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

Para superar este desafio, o Apigee suporta uma definição ao nível do ambiente que especifica como resolver o endereço IP do cliente a partir do cabeçalho X-Forwarded-For (XFF), identificando o índice no cabeçalho que corresponde ao endereço IP para a topologia de rede e os requisitos de segurança. A utilização desta definição oferece visibilidade, consistência e controlo sobre a forma como os endereços IP do cliente são determinados para todos os pedidos no ambiente e resulta numa identificação consistente do endereço IP do cliente na segurança avançada da API, nas variáveis de fluxo e nas variáveis de estatísticas no ambiente.

Se a resolução do IP do cliente ao nível do ambiente não estiver configurada conforme descrito nesta página, as variáveis do endereço IP do cliente são preenchidas através do comportamento de resolução do endereço IP do cliente predefinido.

Resolução do endereço IP do cliente predefinido

Se a resolução do IP do cliente não estiver configurada ao nível do ambiente, o valor predefinido da dimensão ax_resolved_client_ip é calculado conforme descrito nas 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 são definidas a partir da configuração de resolução de IP do cliente. Consulte o artigo Defina a resolução do IP do cliente para um ambiente.

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

Embora não seja necessário definir a resolução de IP do cliente, pode fazê-lo se a resolução de endereço IP do cliente predefinida não satisfizer as suas necessidades e quiser substituí-la para fornecer uma resolução de endereço IP do cliente especificada para o Analytics, a segurança avançada da API ou a execução de qualquer outra função que exija informações consistentes e fiáveis sobre os endereços IP do cliente.

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

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

"clientIpResolutionConfig": {
  "headerIndexAlgorithm": {
     "ipHeaderName" : "X-Forwarded-For",
     "ipHeaderIndex": 2
  }
}
onde
  • ipHeaderName é o cabeçalho a usar para o IP do cliente. Neste momento, X-Forwarded-For é o valor do cabeçalho suportado.
  • ipHeaderIndex é o valor do índice no ipHeaderName.

    Um número positivo seleciona um endereço a partir da esquerda (o primeiro endereço adicionado ao cabeçalho), em que a primeira posição à esquerda é 0 e aumenta uma unidade 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 é resolvido para 192.0.2.2.

    Um número negativo seleciona um endereço a partir da direita (o último endereço adicionado ao cabeçalho), em que a primeira posição à direita é -1 e diminui uma unidade 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 é resolvido como 192.0.2.4 e o índice -2 é resolvido como 192.0.2.3.

Consulte a API organizations.environment para ver informações adicionais acerca desta definição.

Veja as configurações de resolução de IP do cliente

Pode ver a configuração de resolução de IP do cliente atual para um ambiente através da IU do Apigee ou das APIs de gestão.

Veja a configuração da resolução do IP do cliente através da IU

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

  1. Na Google Cloud consola, aceda à página Gestão > Ambientes.

    Aceder a Ambientes

  2. Selecione o ambiente e consulte a Configuração do IP do cliente no separador Acerca de.

    Resolução do IP do cliente na IU do Apigee

Veja a configuração de resolução do IP do cliente através da API

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

Defina a resolução do 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 através do algoritmo especificado. O mesmo se aplica à Resolved Client IPdimensão do Analytics.

Depois de definir a configuração de resolução de IP do cliente para um ambiente, as alterações podem afetar as configurações de segurança da API Advanced existentes para regras de ações de segurança. Reveja e, se necessário, regenere as regras existentes para usar as novas variáveis e definições.

Tenha em atenção estas implicações quando selecionar o índice para a resolução do IP do cliente:

  • As chamadas do Apigee para o Apigee não são processadas como um caso especial. Tenha cuidado para tomar nota e ignorar o número de IPs em conformidade.
  • Uma vez que o cabeçalho X-Forwarded-For pode ser falsificado, é melhor usar o índice certo com base no número de saltos esperados entre o cliente e o balanceador de carga do Apigee. Um utilizador 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 fidedigno, uma vez que o equilibrador de carga conhece o cliente TCP que está ligado a ele.

Para definir a resolução de IP do cliente num ambiente, use uma das APIs de gestão de APIs 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 existentes.

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

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

  1. Aguarde, pelo menos, 5 minutos após guardar uma nova definição de configuração.
  2. Inicie uma sessão de depuração. Ative a definição Mostrar todas as FlowInfos.
  3. Verifique o FlowInfo imediatamente antes de Proxy Request Flow Started. Deve ver o endereço IP do cliente configurado capturado nessa secção.

Procure estas variáveis em FlowInfo:

  • client_ip_resolution.resolved.ip: O endereço IP do cliente resolvido.
  • client_ip_resolution.used.fallback: booleano. Este valor é false, a menos que o Apigee tenha recorrido à resolução de IP do cliente predefinida devido à impossibilidade 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 estiver configurado, é "HeaderIndexAlgorithm{IpHeaderName:header_name, IpHeaderIndex: $header_index}". Caso contrário, é apresentado default.

Limitações

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

  • As atualizações às configurações de resolução de IP do cliente podem demorar até 5 minutos a entrar em vigor.
  • Evite alterações frequentes (por exemplo, a cada 5 minutos) à configuração de resolução de IP do cliente, uma vez que podem causar uma degradação do desempenho.
  • A definição da configuração de resolução do IP do cliente para um ambiente no Apigee Hybrid está disponível com as versões 1.14.0 e posteriores do Hybrid.
  • A configuração pode ser vista através da API ou da consola do Apigee, mas só pode ser definida através da API.
  • Mesmo na ausência de utilizadores maliciosos, a lista X-Forwarded-For baseia-se em cada proxy para adicionar as informações corretas à lista. Essa lista completa está fora da supervisão e do controlo do Apigee, pelo que a definição da configuração de resolução de IP do cliente não garante a identificação do endereço IP do pedido correto.