# Use a integração hCaptcha® no Marketplace

O hCaptcha® é um serviço CAPTCHA (*Completely Automated Public Turing test to tell Computers and Humans Apart*, em inglês) que visa melhorar a privacidade e a segurança do usuário usando desafios que são mais difíceis para os bots resolverem, bem como usando os desafios resolvidos para treinar modelos de aprendizado de máquina para melhorar a segurança geral da internet. Você pode usá-lo para evitar bots, web crawlers e outras ferramentas automatizadas que abusam de seus recursos.

A integração da Azion com hCaptcha® roda nos edge nodes da Azion. Ela garante que apenas requisições autênticas tenham acesso à sua infraestrutura, identificando se a requisição é válida antes de acessar a origem. Em vez de descobrir a lógica de quando, onde e como exibir requisições, você pode acelerar suas requisições simplesmente ativando e configurando os argumentos JSON.

---

## Obtenha a integração

Para instalar a integração 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 indicando que a integração foi instalada com sucesso.

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

---

## Obtenha as credenciais

Para configurar a integração, você deve fornecer duas chaves: sua `secret-key` e sua ` site-key`. Para obter essas credenciais, você terá que se registrar no site do hCaptcha.

Para fazer isso, siga os passos:

1. Acesse o [painel do hCaptcha](https://dashboard.hcaptcha.com/overview).
   - Se você não tem uma conta, você [pode criar uma](https://www.hcaptcha.com/signup-interstitial).
   - Preste atenção ao criar uma nova conta, porque o site fornecerá sua secret-key. Esta chave secreta será usada para configurar a integração da Azion mais tarde, portanto guarde-a de forma segura.
2. No painel, clique no botão **Add Site**.
3. É opcional, mas recomendado, nomear sua instância de hCaptcha.
4. Indique os `hostnames` nos quais deseja usar o desafio e clique no botão **Add Domain**.
5. Escolha o seu modo de desafio. Você tem três opções:
- **Always Challenge** (Grátis. Cada requisição carregará um desafio.)
- **Passive** (Pago. Não há desafio e o CAPTCHA será acionado de acordo com o comportamento do usuário.)
- **99,9% Passive** (Pago. O desafio só aparecerá para usuários com alto risco de serem bots.)
6. Escolha o limite de aprovação que deseja para o seu site de acordo com o nível de dificuldade: *auto* (automático), *easy* (fácil), *moderate*(moderado) e *difficult* (difícil). Esses modos determinarão a precisão das respostas do usuário para passar no teste.
7. Com tudo preenchido, clique no botão **Save** no canto superior direito.

Agora seu site está configurado para usar a integração hCaptcha.

Para configurar a integração da Azion, agora você precisa obter a site-key do hCaptcha. Ainda no site hCaptcha, siga estes passos:

1. No seu painel, no menu superior, clique em **Sites**.
2. Depois de carregar seus sites listados, encontre o que você configurou na etapa acima.
   Na primeira coluna, você verá uma label com uma cadeia de caracteres semelhante a esta: `efdb42c7-10ee-4969-8013-cfcb5f7ad007`. Esta é sua site key.
3. Passe o cursor sobre a cadeia de caracteres e clique para copiar sua site key.
4. Salve a site key e a secret key para configurar a integração da Azion, conforme explicado nas próximas seções.

---

## Configure a integração

### Configure uma regra dentro do Firewall

Para iniciar a configuração da integração, 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. Habilite o switch de **Functions**.
5. Clique no botão **Save**.

Pronto. Agora você instanciou o firewall para sua função e tem acesso a functions no seu firewall.

### Configure uma função no Firewall

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

1. Selecione a aba **Functions Instances** e siga estas etapas:
2. Clique no botão **+ Function Instance**.
3. Dê um nome à sua instância.
4. No menu suspenso, selecione a função *hCaptcha*.
   - 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á as suas chaves e suas variáveis:

```json
{
  "site_key": "<your_site_key>", // Substitua por sua site key
  "secret_key": "<your_secret_key>", // Substitua por sua secret key
  "cookie_secret": "A key to sign the cookies",
  "expiration_in_seconds": 3600,
  "origin_address": "https://xxxxxxxx.map.azionedge.net", // Substitua por seu domínio
  "origin_headers": {
	"X-Custom": "value",
	"X-Another-Custom": "another-value"
  },
  "captcha_args": {
	"theme": "dark",
	"size": "compact",
  "custom_message": "My message",
  "custom_html": "<html><!-- azion_captcha --></html>"
  }
}
```

Onde:

| Variável | Obrigatório | Descrição |
| ---- | ----- | ----- |
| `site_key` | Sim | A site key que você obteve na página do hCaptcha |
| `secret_key` | Sim | A secret key que você obteve na página do hCaptcha |
| `expiration_in_seconds` | Sim | O tempo *em segundos* até que o hCaptcha expire |
| `origin_address` | Sim | Seu domínio a partir do qual a função buscará o conteúdo após o usuário resolver o desafio |
| `origin_headers` | Não | Sempre que o acesso à origem exigir o uso de cabeçalhos de requisição específicos |
| `captcha_args` | Não | Essas variáveis modificam e personalizam o layout da caixa de desafio |
| `custom_message` | Não | Uma mensagem personalizada que você deseja mostrar aos usuários |
| `custom_html` | Não | O HTML personalizado para renderizar a caixa de desafio |
| `cookie_secret` | Sim | Este cookie é gerado pela função e usado para que as funções não sejam executadas novamente |

:::note
Devido ao algoritmo usado na criptografia, qualquer string de qualquer comprimento pode ser usada como `cookie_secret`.
:::

6. Clique no botão **Save** para salvar suas configurações.

Pronto. Agora sua instância do hCaptcha está salva.

### Configure o Rules Engine

Para finalizar o processo, é necessário configurar os parâmetros *behavior* (comportamento) e *criteria* (critério) 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 à regra.
4. Selecione um criteria para executar e selecione os domínios nos quais você deseja executar a integração. Exemplo: `if Hostname is equal xxxxxxxxxxxx.map.azionedge.net/classes`.
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 hCaptcha.
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.

---

## Marca registrada

hCaptcha é uma marca registrada da Intuition Machines, Inc.

---