# Instale a integração IP Address Reputation

**IP Address Reputation** é uma integração *serverless* disponível no **Marketplace** da Azion.

Esta integração usa uma pontuação de reputação para um determinado endereço IP, fornecida pela IPQualityScore. A pontuação é baseada em vários fatores, incluindo se o endereço IP foi usado para spam ou outra atividade maliciosa, com que frequência o endereço IP foi relatado como suspeito ou fraudulento e outras informações.

Uma pontuação mais alta indica que o endereço IP tem uma reputação melhor e é menos provável que seja usado maliciosamente. Por outro lado, uma pontuação mais baixa indica que o endereço IP tem maior probabilidade de ser usado para atividades maliciosas e deve ser usado com cautela.

---

## Obtenha a integração

Para instalar a integração **IP Address Reputation** fornecida pelo **Marketplace** da Azion, siga estes passos:

1. Acesse o [Azion Console](/pt-br/documentacao/produtos/guias/como-acessar-o-azion-console/) > **Marketplace**.
2. Na homepage do Marketplace, selecione o card da integração.
3. Quando a página da integração abrir, clique no botão **Install**, localizado no canto inferior da direita.

Aparecerá uma mensagem de sucesso. Sua integração está instalada.

:::tip
Você pode procurar qualquer integração navegando pelos cards, usando os filtros ou digitando uma palavra-chave na barra de busca.
:::

---

## Obtenha a API Key na IPQualityScore

Para usar **IP Address Reputation**, você precisa obter a API Key no site da IPQualityScore. Para fazer isso, siga os passos:

1. Crie uma conta no [site da IPQualityScore](https://www.ipqualityscore.com/create-account).
2. Aguarde o email com suas informações pessoais.
   - No email, você receberá sua API Key. Você precisará dessas informações para configurar sua integração da Azion mais tarde.

---

## Configure a integração

### Configure um firewall

Para iniciar a configuração da integração **IP Address Reputation**, complete estes passos:

1. No **Products menu**, selecione **Firewall** na seção **SECURE**.
2. Clique no botão **+ Firewall**.
3. Dê um nome fácil de lembrar ao seu firewall.
4. Clique no switch de **Functions** para ativar as funções.
5. Clique no botão **Save**.

Pronto. Você instanciou um firewall para sua função.

### Configure uma função no Firewall

Para instanciar a integração **IP Address Reputation**, enquanto ainda estiver na página do Firewall:

1. Selecione a aba **Functions Instances**.
2. Clique no botão **+ Function Instance**.
3. Dê um nome fácil de lembrar à sua instância.
4. No menu suspenso, selecione a função **IP Address Reputation**.
   - Esta ação irá carregar a aba **Arguments**, onde você pode adicionar os parâmetros para executar sua aplicação.
5. Na aba **Arguments**, você passará a API Key que obteve no site da IPQualityScore e suas variáveis. O `JSON` ficará assim:

```json
{
  "api_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "allow_public_access_points": true,
  "fast": true,
  "strictness": 0,
  "lighter_penalties": true,
  "user_language": "en-US",
  "transaction_strictness": 0
}
```

Para executar a integração, o único parâmetro que você precisará configurar é o `api_key`, sendo o valor a API Key que você recebeu por email da IPQualityScore.

Os outros campos são:

- `allow_public_access_points`: permite conexões públicas. Este é um campo booleano, com o valor padrão `true`.
- `fast`: permite uma verificação rápida. Ao ativar esse parâmetro, sua API não fará algumas verificações forenses. Este é um campo booleano, com o valor padrão `true`.
- `strictness`: pontuação de fraude, valores mais altos (acima de 2) têm mais chance de retornar falsos positivos. Este é um campo inteiro, com o valor padrão de 0. Use o intervalo `0-3` para isso.
- `lighter_penalties`: reduz a pontuação para endereços IP de proxy, evitando falsos positivos. Este é um campo booleano, com o valor padrão `true`.
- `user_language`: o idioma do cabeçalho do usuário. Este é um campo de cadeia de caracteres sem valor padrão.
- `transaction_strictness`: ajusta os pesos de penalidade para irregularidades e padrões de fraude detectados nos detalhes do pedido e da transação fornecidos opcionalmente com cada requisição de API. Este recurso só é útil ao fornecer detalhes do pedido e da transação. Este é um campo inteiro, com o valor padrão de `0`.

Alguns outros parâmetros, que não estão no exemplo `JSON` fornecido, podem ser usados na aba **Args**, incluindo:

- `when_score_above`: define um limite de pontuação. Sempre que o IPQS Risk Score exceder esse limite, a função executará a ação definida pela variável `execute`. Se o valor não estiver definido, nenhuma ação será tomada pela função. Este é um campo inteiro, com o valor padrão de `0`.
- `execute`: a ação que será executada quando o limite `when_score_above` for ultrapassado. Este é um campo de cadeia de caracteres com três valores possíveis: `deny`, `drop` e `add_header`. Não há valor padrão.
- `get_data_from`: determina se o IP será recuperado de uma solicitação de string de consulta do cabeçalho ou do corpo. Se o valor for `remote_addr`, o valor que será extraído é `ngx.var.remote_addr`. Este é um campo de cadeia de caracteres com quatro valores possíveis: `remote_addr`, `querystring`, `body` e `header`. O valor padrão é `remote_addr`.
- `data_name`: identifica o campo ou argumento de quando a função IPQS extrairá o IP a ser validado. Isso só é usado quando o parâmetro `search_in` é diferente do parâmetro `remote_addr`. Este é um campo de cadeia de caracteres, com o valor padrão de `X-Forwarded-For`.

6. Clique em **Save**.

### Configure o Rules Engine

Para finalizar o processo, é necessário configurar os parâmetros *criteria* (critérios) e *behaviors* (comportamentos) para executar a função.

Ainda na página do **Firewall**:

1. Selecione a aba **Rules Engine**.
2. Clique no botão **+ Rule Engine**.
3. Dê um nome fácil de lembrar à sua nova regra.
4. Selecione um *criteria* (critério) para executar a integração.
  - Exemplo: if `Host` *matches* `yourdomain.com`.
5. Abaixo, selecione um *behavior* (comportamento) para os *criteria* (critérios). Neste caso, será **Run Function**.
   - Selecione a função adequada de acordo com o nome que você deu na etapa de instanciação.
6. Clique no botão **Save**.

Agora, no Console, você deve configurar seu domínio para que ele seja protegido pelo seu firewall.

7. No **Products menu**, selecione **Workloads**.
8. Clique no domínio que você deseja proteger com sua função **IP Address Reputation**.
9. Na seção **Settings**, clique no seletor de `Firewall` e escolha o firewall que você acabou de criar.
10. Clique no botão **Save**.

Pronto. Agora, a integração está em execução para cada requisição feita ao domínio que você indicou.

---

#### Importante

Para cada campo presente nos resultados, a integração adicionará um cabeçalho de requisição com o prefixo `IPQS`. Por exemplo, se a solicitação tiver um campo `ASN`, o cabeçalho terá um `IPQS-ASN` com o mesmo valor adicionado ao cabeçalho. Você também pode usar essas informações para criar e gerenciar suas decisões no Rules Engine. Você pode revisar a [lista completa dos campos](https://www.ipqualityscore.com/documentation/proxy-detection-api/overview).

É uma boa prática criar uma regra de application redirecionando sua requisição para outra URL/origin sempre que a pontuação de risco for maior que 85. Se você quiser ou precisar, pode acompanhar o uso de sua API Key através do painel da IPQualityScore. Cada requisição no seu firewall contará como uma nova requisição de busca de endereço IP.

---