API de metadados

As edge functions no Edge Firewall têm acesso a um conjunto de metadados que podem ser manipulados para:

  • Filtrar e gerenciar o acesso a sua aplicação.
  • Aplicar lógicas específicas para diferentes cenários.

Esta documentação de referência descreve os metadados disponíveis e como acessá-los.


Os dados de GeoIP são sobre a localização geográfica do cliente com base em dados de IP.

NomeDescrição
geoip_asnNúmero de Sistema Autônomo (ASN na sigla em inglês)
geoip_cityCidade
geoip_city_continent_codeCódigo da cidade
geoip_city_country_codeCódigo de cidade e país
geoip_city_country_nameNome de cidade e país
geoip_continent_codeCódigo do continente
geoip_country_codeCódigo do país
geoip_country_nameNome do país
geoip_regionRegião
geoip_region_nameNome da região

Os dados de Remote fornecem detalhes sobre o endereço IP e a porta TCP.

NomeDescrição
remote_addrEndereço de IP do remote (client)
remote_portPorta TCP do remote (client)
remote_userUsuário informado na URL. Exemplo: usuário em http://user@site.com/

Os dados de server retornam detalhes sobre o protocolo sendo utilizado na requisição.

NomeDescrição
server_protocolProtocolo sendo utilizado na requisição. Exemplo: HTTP/1.1

Os dados de TLS estão disponíveis quando a requisição é feita através de uma conexão TLS segura.

NomeDescrição
ssl_cipherCifra TLS usada
ssl_protocolProtocolo TLS usado

Você pode acessar os metadados através de event.request.metadata [], por exemplo:

let ip = event.request.metadata["remote_addr"] // Acessando o remote address da requisição

No exemplo de código abaixo:

  • O endereço remoto é acessado.
  • É verificado se este endereço está listado em uma network list.
  • Se estiver na lista, a solicitação será negada.
addEventListener("firewall", (event) => {
let ip = event.request.metadata["remote_addr"]
try {
let found = Azion.networkList.contains(String(networkListId), ip);
if (found) {
event.deny();
}
} catch (err) {
event.console.error(`Error: `, err.stack);
}
});

Contribuidores