Esta página mostra como habilitar o App Check em um aplicativo Android, usando seu provedor personalizado de App Check . Ao ativar o App Check, você ajuda a garantir que apenas seu aplicativo possa acessar os recursos do Firebase do seu projeto.
Se quiser usar o App Check com o provedor Play Integrity padrão, consulte Habilitar App Check com Play Integrity no Android .
Antes de você começar
Adicione o Firebase ao seu projeto Android, caso ainda não o tenha feito.
Implemente a lógica do lado do servidor do seu provedor App Check personalizado .
1. Adicione a biblioteca App Check ao seu aplicativo
No arquivo Gradle do módulo (nível do aplicativo) (geralmente app/build.gradle
), declare a dependência da biblioteca App Check Android:
Kotlin+KTX
dependencies {
implementation 'com.google.firebase:firebase-appcheck:16.1.1'
}
Java
dependencies {
implementation 'com.google.firebase:firebase-appcheck:16.1.1'
}
2. Implemente as interfaces do App Check
Primeiro, você precisa criar classes que implementem as interfaces AppCheckProvider
e AppCheckProviderFactory
.
Sua classe AppCheckProvider
deve ter um método getToken()
, que coleta todas as informações que seu provedor de App Check personalizado requer como prova de autenticidade e as envia para seu serviço de aquisição de token em troca de um token de App Check. O App Check SDK lida com o cache de token, portanto, sempre obtenha um novo token em sua implementação de getToken()
.
Kotlin+KTX
class YourCustomAppCheckToken(
private val token: String,
private val expiration: Long
) : AppCheckToken() {
override fun getToken(): String {
return token
}
override fun getExpireTimeMillis(): Long {
return expiration
}
}
class YourCustomAppCheckProvider : AppCheckProvider {
val token: Task<AppCheckToken>
get() {
// Logic to exchange proof of authenticity for an App Check token.
// ...
// Refresh the token early to handle clock skew.
val expMillis: Long = expirationFromServer * 1000 - 60000
// Create AppCheckToken object.
val appCheckToken: AppCheckToken =
YourCustomAppCheckToken(tokenFromServer, expMillis)
return appCheckToken!
}
}
Java
public class YourCustomAppCheckToken extends AppCheckToken {
private String token;
private long expiration;
YourCustomAppCheckToken(String token, long expiration) {
this.token = token;
this.expiration = expiration;
}
@NonNull
@Override
public String getToken() {
return token;
}
@Override
public long getExpireTimeMillis() {
return expiration;
}
}
public class YourCustomAppCheckProvider implements AppCheckProvider {
@Override
public Task<AppCheckToken> getToken() {
// Logic to exchange proof of authenticity for an App Check token and
// expiration time.
// ...
// Refresh the token early to handle clock skew.
long expMillis = expirationFromServer * 1000 - 60000;
// Create AppCheckToken object.
AppCheckToken appCheckToken =
YourCustomAppCheckToken(tokenFromServer, expMillis);
return appCheckToken;
}
}
Além disso, implemente uma classe AppCheckProviderFactory
que crie instâncias de sua implementação AppCheckProvider
:
Kotlin+KTX
class YourCustomAppCheckProviderFactory : AppCheckProviderFactory {
fun create(firebaseApp: FirebaseApp): AppCheckProvider {
// Create and return an AppCheckProvider object.
return YourCustomAppCheckProvider(firebaseApp)
}
}
Java
public class YourCustomAppCheckProviderFactory implements AppCheckProviderFactory {
@Override
public AppCheckProvider create(FirebaseApp firebaseApp) {
// Create and return an AppCheckProvider object.
return new YourCustomAppCheckProvider(firebaseApp);
}
}
3. Inicialize a verificação do aplicativo
Adicione o seguinte código de inicialização ao seu aplicativo para que ele seja executado antes de usar qualquer outro SDK do Firebase:
Kotlin+KTX
FirebaseApp.initializeApp(/*context=*/ this)
val firebaseAppCheck = FirebaseAppCheck.getInstance()
firebaseAppCheck.installAppCheckProviderFactory(
YourCustomAppCheckProviderFactory.getInstance())
Java
FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
YourCustomAppCheckProviderFactory.getInstance());
Próximos passos
Depois que a biblioteca do App Check estiver instalada em seu aplicativo, comece a distribuir o aplicativo atualizado para seus usuários.
O aplicativo cliente atualizado começará a enviar tokens do App Check junto com todas as solicitações feitas ao Firebase, mas os produtos Firebase não exigirão que os tokens sejam válidos até que você habilite a aplicação na seção App Check do console do Firebase.
Monitore as métricas e habilite a aplicação
Antes de habilitar a imposição, no entanto, certifique-se de que isso não interromperá seus usuários legítimos existentes. Por outro lado, se você perceber o uso suspeito dos recursos do seu aplicativo, convém ativar a aplicação mais cedo.
Para ajudar a tomar essa decisão, você pode consultar as métricas do App Check para os serviços que usa:
- Monitore as métricas de solicitação do App Check para Realtime Database, Cloud Firestore e Cloud Storage.
- Monitore as métricas de solicitação de verificação de aplicativo para Cloud Functions .
Ativar a aplicação do App Check
Quando você entender como o App Check afetará seus usuários e estiver pronto para prosseguir, poderá ativar a aplicação do App Check:
- Ative a aplicação do App Check para Realtime Database, Cloud Firestore e Cloud Storage.
- Ative a aplicação do App Check para Cloud Functions .
Use o 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 a partir de um ambiente de integração contínua (CI), você pode crie uma compilação de depuração de seu aplicativo que use o provedor de depuração do App Check em vez de um provedor de atestado real.
Consulte Use App Check com o provedor de depuração no Android .