Usar o App Check para proteger sua chave de API
O Firebase App Check oferece proteção para chamadas do seu app para a Plataforma Google Maps, bloqueando o tráfego que vem de fontes diferentes de apps legítimos. Ele faz isso verificando um token de um provedor de atestado, como a Play Integrity. A integração dos seus apps com o App Check ajuda a proteger contra solicitações maliciosas, para que você não seja cobrado por chamadas de API não autorizadas.
O App Check é adequado para mim?
O App Check é recomendado na maioria dos casos, mas não é necessário ou não tem suporte nas seguintes situações:
- Você está usando o SDK do Places original. O App Check só tem suporte para o SDK do Places (novo).
- Apps particulares ou experimentais. Se o app não for acessível publicamente, o App Check não será necessário.
- Se o app for usado apenas de servidor para servidor, o App Check não será necessário. No entanto, se o servidor que se comunica com a GMP for usado por clientes públicos (como apps para dispositivos móveis), considere usar o App Check para proteger esse servidor em vez da GMP.
- Os provedores de atestado recomendados do App Check não funcionam em dispositivos considerados comprometidos ou não confiáveis pelo provedor de atestado. Se você precisar oferecer suporte a esses dispositivos, implante um serviço de atestado personalizado. Para mais informações, consulte as instruções.
Visão geral das etapas de implementação
De modo geral, estas são as etapas que você vai seguir para integrar o app ao App Check:
- Adicione o Firebase ao aplicativo.
- Adicione e inicialize a biblioteca do App Check.
- Adicione o provedor de token.
- Ative a depuração.
- Monitore as solicitações do app e decida sobre a aplicação.
Depois de fazer a integração com o App Check, você poderá conferir as métricas de tráfego de back-end no console do Firebase. Essas métricas fornecem a divisão das solicitações por acompanhamento de um token válido do App Check. Consulte a documentação do Firebase App Check para mais informações.
Quando tiver certeza de que a maioria das solicitações é de fontes legítimas e que os usuários atualizaram para a versão mais recente do app que inclui a implementação do App Check, você poderá ativar a aplicação. Depois que a aplicação estiver ativada, o App Check vai rejeitar todo o tráfego sem um token válido do App Check.
Considerações ao planejar uma integração do App Check
Confira algumas coisas a considerar ao planejar sua integração:
O provedor de atestado recomendado, Play Integrity, tem um limite de chamadas diárias para o nível de uso da API padrão. Para mais informações sobre limites de chamadas, consulte a página de configuração na documentação para desenvolvedores da Google Play Integrity.
Você também pode usar um provedor de atestado personalizado, embora esse seja um caso de uso avançado. Para mais informações, consulte Implementar um provedor personalizado do App Check.
-
Os usuários do seu app vão ter alguma latência na inicialização. No entanto, depois disso, qualquer nova atestação periódica ocorrerá em segundo plano, e os usuários não terão mais latência. A quantidade exata de latência na inicialização depende do provedor de atestado escolhido.
O período de validade do token do App Check (o tempo de vida ou TTL) determina a frequência das novas atestações. Essa duração pode ser configurada no console do Firebase. A nova atestação ocorre quando aproximadamente metade do TTL já passou. Para mais informações, consulte os documentos do Firebase para seu provedor de atestado.
Integrar o app ao App Check
Pré-requisitos e requisitos
- Um app com o SDK do Places versão 4.1 ou mais recente integrado.
- A impressão digital SHA-256 do seu app.
- O nome do pacote do seu app.
- Você precisa ser o proprietário do app no console do Cloud.
- Você vai precisar do ID do projeto do app no console do Cloud.
Etapa 1: adicionar o Firebase ao app
Siga as instruções na documentação para desenvolvedores do Firebase para adicionar o Firebase ao app.
Etapa 2: adicionar a biblioteca do App Check e inicializar o App Check
Para informações sobre como usar a Play Integrity, o provedor de atestado padrão, consulte Começar a usar o App Check com a Play Integrity no Android.
- Se ainda não tiver feito isso, integre o SDK do Places ao seu app.
Em seguida, inicialize o App Check e o cliente do Places.
// Initialize App Check FirebaseApp.initializeApp(/* context= */ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance()); // Initialize Places SDK Places.initializeWithNewPlacesApiEnabled(context, API_KEY); PlacesClient client = Places.createClient(context);.
Etapa 3: adicionar o provedor de token
Depois de inicializar a API Places, chame setPlacesAppCheckTokenProvider() para definir o PlacesAppCheckTokenProvider.
Places.initializeWithNewPlacesApiEnabled(context, API_KEY); Places.setPlacesAppCheckTokenProvider(new TokenProvider()); PlacesClient client = Places.createClient(context);.
Confira um exemplo de implementação da interface do buscador de token:
/** Sample client implementation of App Check token fetcher interface. */ static class TokenProvider implements PlacesAppCheckTokenProvider { @Override public ListenableFuture<String> fetchAppCheckToken() { SettableFuture<String> future = SettableFuture.create(); FirebaseAppCheck.getInstance() .getAppCheckToken(false) .addOnSuccessListener( appCheckToken -> { future.set(appCheckToken.getToken()); }) .addOnFailureListener( ex -> { future.setException(ex); }); return future; } }
Etapa 4: ativar a depuração (opcional)
Se você quiser desenvolver e testar o app localmente ou executá-lo em um ambiente de integração contínua (CI), crie um build de depuração do app que use um segredo de depuração para receber tokens válidos do App Check. Isso permite evitar o uso de provedores de atestado reais no build de depuração.
Para executar o app em um emulador ou em um dispositivo de teste:
- Adicione a biblioteca do App Check ao arquivo
build.gradle. - Configure o App Check para usar a fábrica do provedor de depuração no build de depuração.
- Inicie o app, que vai criar um token de depuração local. Adicione esse token ao console do Firebase.
- Para mais informações e instruções, consulte a documentação do App Check.
Para executar o app em um ambiente de CI:
- Crie um token de depuração no console do Firebase e adicione-o ao armazenamento de chaves seguro do sistema de CI.
- Adicione a biblioteca do App Check ao arquivo
build.gradle. - Configure a variante de build de CI para usar o token de depuração.
- Agrupe o código nas classes de teste que precisam de um token do App Check com
DebugAppCheckTestHelper. - Para mais informações e instruções, consulte a documentação do App Check.
Etapa 5: monitorar as solicitações do app e decidir sobre a aplicação
Antes de iniciar a aplicação, verifique se você não vai interromper usuários legítimos do app. Para fazer isso, acesse a tela de métricas do App Check para conferir qual porcentagem do tráfego do app é verificada, desatualizada ou ilegítima. Quando você perceber que a maioria do tráfego é verificada, poderá ativar a aplicação.
Consulte a documentação do Firebase App Check para mais informações e instruções.