Comece a usar o App Check com o reCAPTCHA Enterprise em apps do Flutter

Selecionar plataforma: iOS+ Android Web Flutter


Esta página mostra como configurar App Check em um app do Flutter, usando o provedor reCAPTCHA Enterprise. App Check ajuda a garantir que apenas seu app possa acessar os recursos de back-end do seu projeto. Para saber mais, consulte nossa visão geral do App Check.

App Check exige o uso de chaves baseadas em pontuação reCAPTCHA, o que o torna invisível para os usuários. Isso significa que o reCAPTCHA Enterprise provedor não vai exigir que os usuários resolvam um desafio a qualquer momento.

Se o caso de uso exigir recursos reCAPTCHA Enterprise não implementados por App Check, ou se você quiser usar App Check com seu próprio provedor personalizado, consulte Implementar um provedor personalizado do App Check.

1. Configurar seu projeto do Firebase

  1. Instale e inicialize o Firebase no seu projeto do Flutter, caso ainda não tenha feito isso, .

  2. No console Google Cloud, acesse a página Fraud Defense, e faça o seguinte para o provedor reCAPTCHA Enterprise:

    1. Verifique se você está no projeto correto (consulte o seletor de projetos na parte de cima da tela).

    2. Se solicitado, ative a API reCAPTCHA Enterprise.

    3. Crie uma chave com base na plataforma segmentada:

      iOS+

      Crie uma chave do tipo iOS e especifique o ID do pacote do app (por exemplo, com.example.my_app).

      • Insira o mesmo ID do pacote que você forneceu ao criar o app do Firebase para Apple no seu projeto do Firebase. O valor do ID do pacote diferencia maiúsculas de minúsculas.

      • Para App Check, cada ID do pacote só pode corresponder a uma única chave reCAPTCHA.

      Android

      Crie uma chave do tipo Android e especifique o nome do pacote do app (por exemplo, com.example.my_app).

      • Insira o mesmo nome de pacote que você forneceu ao criar o app do Firebase para Android no seu projeto do Firebase. O valor do nome do pacote diferencia maiúsculas de minúsculas.

      • Para App Check, cada nome de pacote só pode corresponder a uma única chave reCAPTCHA.

      Web

      Crie uma chave do tipo Web e especifique cada um dos domínios dos seus apps da Web.

      • App Check não oferece suporte a apps da Web que atendem a mais de 250 domínios.

      • Nunca adicione localhost como um domínio a uma chave reCAPTCHA que é implantada (ou que será implantada) na produção.

      • Deixe a opção "Usar desafio de caixa de seleção" desmarcada.

      Para instruções detalhadas, consulte Criar chaves reCAPTCHA baseadas em pontuação.

    4. Anote cada chave. Você precisará adicioná-las ao fluxo de registro no console Firebase.

  3. No console do Firebase, acesse Segurança > App Check.

  4. Na guia Apps, registre cada um dos apps da plataforma segmentada para usar App Check com o provedor reCAPTCHA Enterprise. Você precisará fornecer a chave que recebeu no console Google Cloud.

  5. Opcional: defina o tempo de vida (TTL) do token.

    Nas configurações de registro do aplicativo, defina um tempo de vida (TTL) personalizado para App Check tokens emitidos pelo provedor. Você pode definir o TTL para qualquer valor entre 30 minutos e 7 dias. Ao mudar esse valor, esteja ciente das seguintes compensações:

    • Segurança: os TTLs mais curtos oferecem maior segurança, porque reduzem a janela em que um token vazado ou interceptado pode ser usado por um invasor.
    • Desempenho: TTLs mais curtos significam que seu app realizará atestados com mais frequência. Como o processo de atestado do app adiciona latência às solicitações de rede sempre que é executado, um TTL curto pode afetar o desempenho do app.
    • Cota e custo: TTLs mais curtos e novos atestados frequentes esgotam sua cota mais rapidamente e, para serviços pagos, podem custar mais. Consulte Cotas e limites.

    O TTL padrão de uma hora é razoável para a maioria dos apps. Observe que a biblioteca App Check atualiza tokens em aproximadamente metade da duração do TTL.

  6. Opcional: defina configurações avançadas.

  7. Clique em Salvar.

(Opcional) Definir configurações avançadas

Quando um usuário abre seu app, reCAPTCHA Enterprise avalia o nível de risco da interação do usuário na chave e retorna uma pontuação entre 0,0 e 1,0, em incrementos de 0,1.

  • Uma pontuação de 0,0 indica que a interação apresenta alto risco e pode ser fraudulenta.
  • Uma pontuação de 1,0 indica que a interação apresenta baixo risco e muito provavelmente é legítima.

App Check permite configurar um limite de risco do app para ajustar sua tolerância a esse risco.

Na maioria dos casos de uso, o valor de limite padrão de 0,5 é recomendado. Se o caso de uso exigir ajuste, você poderá configurar esse valor para cada um dos seus apps no Firebase console (acesse Segurança > App Check). Expanda e analise algumas considerações importantes sobre a configuração do limite de risco do app abaixo.

2. Adicionar o plug-in App Check ao seu app

Para usar o provedor reCAPTCHA Enterprise, adicione o plug-in correspondente App Check.

  1. Na raiz do seu projeto do Flutter, execute o seguinte comando para instalar o plug-in:

    flutter pub add firebase_app_check
    
  2. Após a conclusão, recrie seu projeto do Flutter:

    flutter run
    

3. Inicializar App Check

No seu app, inicialize App Check antes de usar qualquer outro serviços do Firebase.

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_app_check/firebase_app_check.dart';
import 'firebase_options.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
  await FirebaseAppCheck.instance.activate(
    providerWeb: ReCaptchaEnterpriseProvider(WEB_SITE_KEY),
    providerAndroid: const AndroidReCaptchaProvider(ANDROID_SITE_KEY),
    providerApple: const AppleReCaptchaProvider(IOS_SITE_KEY),
  );
  runApp(App());
}

4. Monitorar métricas e ativar a aplicação obrigatória

Depois de configurar App Check no seu app, comece a distribuir o app atualizado para os usuários.

O app cliente atualizado vai começar a enviar App Check tokens em todas as solicitações feitas ao Firebase. No entanto, App Check não vai bloquear solicitações com tokens inválidos até que App Check seja aplicado.

Monitorar as métricas

_**Antes de ativar a restrição**_, verifique se isso não vai afetar seus usuários legítimos. No entanto, se você perceber um uso suspeito dos recursos do seu app, convém ativar a aplicação obrigatória antes do previsto.

Para ajudar a tomar essa decisão, analise as App Check métricas para os serviços que você usa:

Ativar a aplicação obrigatória de App Check

Quando você entender como App Check vai afetar seus usuários e estiver tudo pronto para seguir o processo, ative a aplicação obrigatória de App Check:

Usar App Check em ambientes de depuração

App Check classifica alguns ambientes como inválidos, como solicitações de um emulador / simulador ou localhost durante o desenvolvimento ou de um ambiente de integração contínua (CI).

Para executar o app nesses tipos de ambientes depois que App Check for aplicado, crie um build de depuração do seu app que use o App Check provedor de depuração em vez de um provedor de atestado de produção.

Para mais detalhes, consulte Usar App Check com o provedor de depuração em apps do Flutter.

Preços

App Check cria uma avaliação em seu nome para validar o token de resposta do usuário sempre que o app atualiza o token App Check. Seu projeto do Firebase será cobrado por cada avaliação criada acima da cota sem custo. Para mais detalhes, consulte reCAPTCHA preços.

Por padrão, seu app vai atualizar esse token duas vezes a cada uma hora. Para controlar a frequência com que o app atualiza os tokens App Check (e, com isso, a frequência com que novas avaliações são criadas), você pode configurar o TTL do token.