Comece a usar o App Check com a Play Integrity no Android

Esta página mostra como ativar o App Check em um app Android usando o provedor integrado da Play Integrity. Ao ativar o App Check, você ajuda a garantir que apenas seu app possa acessar os recursos de back-end do seu projeto. Consulte a Visão geral desse recurso.

O provedor da Play Integrity é compatível com apps Android publicados no Google Play, fora dele ou em ambos. Se o caso de uso exigir recursos da Play Integrity que não são implementados pelo App Check ou se você quiser usar o App Check com seu próprio provedor personalizado, consulte Implementar um provedor App Check personalizado.

1. Configurar seu projeto do Firebase

  1. Adicione o Firebase ao seu Projeto do Android, caso ainda não tenha feito isso.

  2. Ative a API Play Integrity:

    1. No Google Play Console, selecione seu app ou adicione-o se for necessário.

    2. Na seção Versão, clique em Integridade do app.

    3. Acesse a seção API Play Integrity da página, clique em Vincular projeto do Cloud e selecione seu projeto do Firebase na lista de projetos do Google Cloud. O projeto selecionado aqui precisa ser o mesmo do Firebase em que você registra o app (consulte a próxima etapa).

  3. Registre seus apps para usar App Check com o provedor da Play Integrity na App Check do console Firebase. Você vai precisar fornecer a impressão digital SHA-256 do certificado de assinatura do app.

    Geralmente, é necessário registrar todos os apps do projeto porque, depois de ativar a aplicação de um produto do Firebase, somente apps registrados poderão acessar os recursos de back-end do produto.

  4. Opcional: nas configurações de registro do aplicativo, defina um time to live (TTL) personalizado para os tokens do App Check emitidos pelo provedor. É possível definir o TTL como 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. A biblioteca App Check atualiza os tokens em aproximadamente metade da duração do TTL.

Definir configurações avançadas (opcional)

O App Check oferece várias configurações para oferecer suporte a casos de uso avançados, incluindo a distribuição do app fora do Google Play. É possível configurar essas opções na seção App Check do console Firebase para cada um dos seus apps Android. Recomendamos que você configure essas opções de acordo com a tabela a seguir ao registrar seu app pela primeira vez.

O canal de distribuição do app PLAY_RECOGNIZED LICENCIADO Nível mínimo aceitável de integridade do dispositivo
Só no Google Play Obrigatório Obrigatório Não verificar explicitamente o nível de integridade do dispositivo
Exclusivamente fora do Google Play Não obrigatório Não obrigatório Integridade do dispositivo
No Google Play e fora dele Obrigatório Não obrigatório Não verificar explicitamente o nível de integridade do dispositivo

Detalhes

Cada configuração avançada corresponde a um rótulo de veredito da Play Integrity. Consulte a documentação da Play Integrity para mais detalhes.

  • Por padrão, o App Check exige o rótulo de reconhecimento de apps PLAY_RECOGNIZED. Os apps que não foram publicados no Google Play não se qualificam para receber esse rótulo.
  • Por padrão, o App Check não exige o rótulo de licenciamento de apps LICENSED. Somente usuários que instalaram ou atualizaram seu app diretamente do Google Play estão qualificados para receber esse rótulo.
  • Por padrão, o App Check não verifica explicitamente o veredito de integridade do dispositivo. O App Check oferece suporte à verificação explícita dos três níveis de integridade do dispositivo a seguir, listados em ordem crescente.

    • Integridade básica. Faz com que App Check exija o rótulo de reconhecimento de dispositivo MEETS_BASIC_INTEGRITY. Para que seu app se qualifique para receber esse selo opcional, primeiro ative a opção no Google Play Console.

    • Integridade do dispositivo. Faz com que App Check exija o rótulo de reconhecimento de dispositivo MEETS_DEVICE_INTEGRITY. Todos os apps se qualificam automaticamente para receber esse rótulo.

    • Integridade forte. Faz com que App Check exija o rótulo de reconhecimento de dispositivo MEETS_STRONG_INTEGRITY. Para que seu app se qualifique para receber esse selo opcional, primeiro ative a opção no Google Play Console.

2. Adicionar a biblioteca App Check ao app

No arquivo Gradle do módulo (nível do app) (geralmente <project>/<app-module>/build.gradle.kts ou <project>/<app-module>/build.gradle), adicione a dependência da biblioteca do App Check para Android. Recomendamos o uso do Firebase Android BoM para lidar com o controle de versões da biblioteca.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:34.3.0"))

    // Add the dependencies for the App Check libraries
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck-playintegrity")
}

Com o Firebase Android BoM, seu app sempre vai usar versões compatíveis das bibliotecas do Firebase para Android.

(Alternativa) Adicionar dependências das bibliotecas do Firebase sem usar o BoM

Se você preferir não usar o Firebase BoM, especifique cada versão das bibliotecas do Firebase na linha de dependência correspondente.

Se você usa várias bibliotecas do Firebase no app, recomendamos utilizar o BoM para gerenciar as versões delas, porque isso ajuda a garantir a compatibilidade de todas as bibliotecas.

dependencies {
    // Add the dependencies for the App Check libraries
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck-playintegrity:19.0.1")
}

3. Inicializar o App Check

Adicione o seguinte código de inicialização ao app para que ele seja executado antes de usar outros SDKs do Firebase:

Kotlin

Firebase.initialize(context = this)
Firebase.appCheck.installAppCheckProviderFactory(
    PlayIntegrityAppCheckProviderFactory.getInstance(),
)

Java

FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
        PlayIntegrityAppCheckProviderFactory.getInstance());

Próximas etapas

Depois que a biblioteca App Check estiver instalada no seu app, comece a distribuir o app atualizado para os usuários.

O app cliente atualizado vai começar a enviar tokens do App Check em todas as solicitações feitas ao Firebase, mas os produtos dessa plataforma não exigirão que os tokens sejam válidos até que você ative a aplicação obrigatória na seção App Check do Console do Firebase.

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

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

Para tomar essa decisão, analise as métricas do App Check nos serviços usados:

Ativar a aplicação App Check

Assim que você entender como o App Check vai afetar seus usuários e estiver tudo pronto para prosseguir, ative a aplicação obrigatória do App Check:

Usar App Check em ambientes de depuração

Se, depois de registrar seu aplicativo no App Check, você quiser executá-lo em um ambiente que o App Check normalmente não classificaria como válido, como um emulador durante o desenvolvimento ou de uma integração contínua (CI), será possível criar um build de depuração do seu app que use o provedor de depuração do App Check em vez de um provedor de atestado real.

Consulte Usar App Check com o provedor de depuração no Android.