Instale a integração reCAPTCHA
Instale reCAPTCHA pelo Azion Marketplace e execute o desafio em um firewall, para que bots e spam não cheguem à sua origem.
Você instala a integração reCAPTCHA pelo Azion Marketplace e a executa em um Firewall, pelo Azion Console. reCAPTCHA é um serviço de CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart): um teste de desafio e resposta identifica se o usuário é um humano ou uma máquina e, assim, protege seus domínios contra bots e scripts automatizados. Você monitora o tráfego do seu site no painel do Google para reCAPTCHA. O Google mantém e é dono do reCAPTCHA e usa os dados que o reCAPTCHA coleta para melhorar os próprios serviços.
Cinco objetos precisam existir antes que uma requisição receba o desafio: a função instalada, um firewall com o módulo Functions, uma instância de função com os argumentos, uma regra do Rules Engine com o behavior Run Function e um deployment de workload vinculado ao firewall. Cada seção abaixo cria um deles.
Pré-requisitos
- Uma conta Azion. Para entrar, consulte Como acessar o Azion Console.
- Uma aplicação servida por um workload, cujo deployment você vincula ao firewall na última seção.
- Uma conta Google, com uma site key e uma secret key do reCAPTCHA. As próximas seções mostram como obtê-las.
- A Azion CLI instalada e autorizada, para a última seção.
- Ativar um produto ou um módulo pode gerar custos de uso. Para mais informações, consulte Preços.
Instale a integração
A função é instalada uma vez por conta. Para instalá-la:
Acesse Azion Console > Marketplace.
Digite reCAPTCHA no campo Search on Marketplace e selecione o card da integração. Navegar pelos cards e pelas categorias leva à mesma página.
O card mostra Successfully installed! e Latest version installed!, e a função aparece na lista Function do drawer Create Instance.
Obtenha as chaves do reCAPTCHA
A integração precisa de duas chaves do Google: sua secret-key e sua site-key. Você obtém as duas ao registrar seu site no Google. Para registrá-lo:
Acesse o painel de administração do Google reCAPTCHA. Se você não tem uma conta Google, o site solicita que você crie uma.
Depois do cadastro, o site abre a página de registro do seu site.
Digite um rótulo para o novo site no reCAPTCHA.
Selecione v2 ou v3. Se selecionar v2, selecione o tipo de teste do seu site: I’m not a robot checkbox, Invisible reCaptcha ou reCaptcha Android.
A integração reCAPTCHA da Azion foi projetada para funcionar com a opção v2 invisible.
Digite o domínio que executa o reCAPTCHA, sem http:// ou https://. Se você testa por um hostname da Azion, adicione-o também. Para mais informações, consulte O reCAPTCHA falha em um hostname da Azion.
Aceite os termos de serviço do reCAPTCHA.
Escolha se quer receber alertas do Google sobre seu site, como erros de configuração.
Seu site está registrado para usar o reCAPTCHA. A próxima tela mostra suas chaves, Site Key e Secret Key, que a instância de função recebe como argumentos.
Crie o firewall
O firewall é onde a função é instanciada e onde fica a regra que a executa. Para criar um:
Acesse Azion Console > Firewalls e crie um firewall.
Na seção General, digite um Name. Por exemplo: recaptcha-firewall.
Na seção Modules, ative o switch Functions.
O firewall mostra a aba Functions Instances enquanto o módulo Functions estiver ativo. Para usar um firewall existente, ative o módulo Functions dele e salve-o. Para todas as configurações deste formulário, consulte Defina as configurações principais de um firewall.
Crie a instância de função
A instância guarda suas chaves do reCAPTCHA e a origem que a função busca depois que o desafio é resolvido. Para criá-la:
Em Firewalls, selecione seu firewall e a aba Functions Instances.
Um firewall sem nenhuma instância mostra a mesma ação como Function Instance. O drawer Create Instance é aberto.
Em Name, digite um nome. Por exemplo: recaptcha.
Em Function, selecione a função reCAPTCHA. A lista contém apenas as funções que são executadas em um firewall.
Em Arguments, o editor vem preenchido com os argumentos padrão da integração em JSON. Insira suas chaves e seus valores, como descreve a próxima seção.
A instância aparece na aba Functions Instances.
Argumentos
A instância recebe as duas chaves que você obteve do Google e suas variáveis:
| Variável | Obrigatória | Descrição |
|---|---|---|
site_key | Sim | A site key que você obteve na página do reCAPTCHA |
secret_key | Sim | A secret key que você obteve na página do reCAPTCHA |
expiration_in_seconds | Sim | O tempo, em segundos, até o reCAPTCHA expirar |
origin_address | Sim | Seu domínio, do qual a função busca o conteúdo depois que o usuário resolve o desafio CAPTCHA |
origin_headers | Não | Os headers de requisição que a origem exige, quando o acesso a ela precisa de headers específicos |
captcha_args | Não | Os argumentos que mudam o layout da caixa do desafio |
custom_message | Não | Uma mensagem personalizada para mostrar aos usuários |
custom_html | Não | O HTML personalizado que renderiza a caixa do desafio do reCAPTCHA |
cookie_secret | Sim | A chave que assina o cookie que a função gera, para que a função não seja executada novamente |
Crie a regra
A instância não desafia nada até que uma regra a execute. Uma regra do Rules Engine for Firewall seleciona as requisições que chegam à instância, por meio de um behavior Run Function. Para criar a regra:
Em Firewalls, selecione seu firewall e a aba Rules Engine.
Em Name, digite um nome. Por exemplo: Run reCAPTCHA.
Na seção Criteria, selecione os domínios que executam a integração. Por exemplo: if Host matches yourdomain.com.
Na seção Behaviors, selecione Run Function e selecione a instância pelo nome que você deu a ela.
O firewall executa a instância em toda requisição ao domínio do critério.
Vincule o firewall ao workload
O vínculo fica no deployment do workload, então crie um deployment que indique a aplicação e o firewall:
O comando exibe o id do novo deployment:
As requisições ao domínio do workload chegam ao firewall, e a regra executa a instância de reCAPTCHA em cada uma.
Assista a um vídeo sobre como instalar a integração reCAPTCHA pelo Azion Marketplace no canal da Azion no YouTube.
Solução de problemas
O reCAPTCHA falha em um hostname da Azion
O reCAPTCHA não carrega, ou retorna um erro, quando você acessa sua aplicação por um hostname da Azion, como xxxx.map.azionedge.net.
O Google reCAPTCHA valida as requisições com base em uma lista de domínios autorizados. Se o hostname da Azion não estiver nas suas configurações do reCAPTCHA, o Google rejeita o desafio e a integração falha. Para adicionar o hostname aos domínios autorizados:
Selecione o site que você registrou para esta integração.
Em Domains, selecione Add a domain.
Digite seu hostname da Azion. Por exemplo: xxxx.map.azionedge.net. Se você usa um domínio personalizado, adicione esse domínio também.
O reCAPTCHA aceita as requisições que vêm do hostname da Azion, e a integração funciona.