Cette page vous montre comment activer App Check dans une application Android, à l'aide de votre fournisseur App Check personnalisé . Lorsque vous activez App Check, vous garantissez que seule votre application peut accéder aux ressources Firebase de votre projet.
Si vous souhaitez utiliser App Check avec le fournisseur Play Integrity par défaut, consultez Activer App Check avec Play Integrity sur Android .
Avant que tu commences
Ajoutez Firebase à votre projet Android si vous ne l'avez pas déjà fait.
Implémentez la logique côté serveur de votre fournisseur App Check personnalisé .
1. Ajoutez la bibliothèque App Check à votre application
Dans le fichier Gradle de votre module (au niveau de l'application) (généralement<project>/<app-module>/build.gradle.kts
ou <project>/<app-module>/build.gradle
), ajoutez la dépendance pour App Check bibliothèque pour Android. Nous vous recommandons d'utiliser la BoM Android Firebase pour contrôler la gestion des versions de la bibliothèque.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.8.0")) // Add the dependency for the App Check library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck") }
En utilisant Firebase Android BoM , votre application utilisera toujours des versions compatibles des bibliothèques Firebase Android.
(Alternative) Ajouter des dépendances de la bibliothèque Firebase sans utiliser la BoM
Si vous choisissez de ne pas utiliser la BoM Firebase, vous devez spécifier chaque version de la bibliothèque Firebase dans sa ligne de dépendance.
Notez que si vous utilisez plusieurs bibliothèques Firebase dans votre application, nous vous recommandons fortement d'utiliser la BoM pour gérer les versions de bibliothèque, ce qui garantit que toutes les versions sont compatibles.
dependencies { // Add the dependency for the App Check library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck:17.1.2") }
2. Implémenter les interfaces App Check
Tout d’abord, vous devez créer des classes qui implémentent les interfaces AppCheckProvider
et AppCheckProviderFactory
.
Votre classe AppCheckProvider
doit avoir une méthode getToken()
, qui collecte toutes les informations requises par votre fournisseur App Check personnalisé comme preuve d'authenticité et les envoie à votre service d'acquisition de jetons en échange d'un jeton App Check. Le SDK App Check gère la mise en cache des jetons, obtenez donc toujours un nouveau jeton dans votre implémentation de getToken()
.
Kotlin+KTX
class YourCustomAppCheckToken( private val token: String, private val expiration: Long, ) : AppCheckToken() { override fun getToken(): String = token override fun getExpireTimeMillis(): Long = expiration } class YourCustomAppCheckProvider(firebaseApp: FirebaseApp) : AppCheckProvider { override fun getToken(): Task<AppCheckToken> { // Logic to exchange proof of authenticity for an App Check token and // expiration time. // ... // Refresh the token early to handle clock skew. val expMillis = expirationFromServer * 1000L - 60000L // Create AppCheckToken object. val appCheckToken: AppCheckToken = YourCustomAppCheckToken(tokenFromServer, expMillis) return Tasks.forResult(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 { public YourCustomAppCheckProvider(FirebaseApp firebaseApp) { // ... } @NonNull @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 * 1000L - 60000L; // Create AppCheckToken object. AppCheckToken appCheckToken = new YourCustomAppCheckToken(tokenFromServer, expMillis); return Tasks.forResult(appCheckToken); } }
Implémentez également une classe AppCheckProviderFactory
qui crée des instances de votre implémentation AppCheckProvider
:
Kotlin+KTX
class YourCustomAppCheckProviderFactory : AppCheckProviderFactory { override fun create(firebaseApp: FirebaseApp): AppCheckProvider { // Create and return an AppCheckProvider object. return YourCustomAppCheckProvider(firebaseApp) } }
Java
public class YourCustomAppCheckProviderFactory implements AppCheckProviderFactory { @NonNull @Override public AppCheckProvider create(@NonNull FirebaseApp firebaseApp) { // Create and return an AppCheckProvider object. return new YourCustomAppCheckProvider(firebaseApp); } }
3. Initialiser la vérification de l'application
Ajoutez le code d'initialisation suivant à votre application afin qu'elle s'exécute avant d'utiliser d'autres SDK Firebase :
Kotlin+KTX
Firebase.initialize(context) Firebase.appCheck.installAppCheckProviderFactory( YourCustomAppCheckProviderFactory(), )
Java
FirebaseApp.initializeApp(/*context=*/ context); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( new YourCustomAppCheckProviderFactory());
Prochaines étapes
Une fois la bibliothèque App Check installée dans votre application, commencez à distribuer l'application mise à jour à vos utilisateurs.
L'application cliente mise à jour commencera à envoyer des jetons App Check avec chaque demande qu'elle adresse à Firebase, mais les produits Firebase n'exigeront pas que les jetons soient valides tant que vous n'aurez pas activé l'application dans la section App Check de la console Firebase.
Surveillez les métriques et activez l’application
Toutefois, avant d'activer l'application, vous devez vous assurer que cela ne perturbera pas vos utilisateurs légitimes existants. D’un autre côté, si vous constatez une utilisation suspecte des ressources de votre application, vous souhaiterez peut-être activer l’application plus tôt.
Pour vous aider à prendre cette décision, vous pouvez consulter les métriques App Check pour les services que vous utilisez :
- Surveillez les métriques de demande App Check pour la base de données en temps réel, Cloud Firestore, Cloud Storage et l'authentification (bêta).
- Surveillez les métriques des demandes App Check pour Cloud Functions .
Activer l'application de l'App Check
Lorsque vous comprenez comment App Check affectera vos utilisateurs et que vous êtes prêt à continuer, vous pouvez activer l'application d'App Check :
- Activez l'application d'App Check pour la base de données en temps réel, Cloud Firestore, Cloud Storage et l'authentification (bêta).
- Activez l’application d’App Check pour Cloud Functions .
Utiliser App Check dans les environnements de débogage
Si, après avoir enregistré votre application pour App Check, vous souhaitez exécuter votre application dans un environnement qu'App Check ne serait normalement pas classé comme valide, tel qu'un émulateur en cours de développement ou à partir d'un environnement d'intégration continue (CI), vous pouvez créez une version de débogage de votre application qui utilise le fournisseur de débogage App Check au lieu d'un véritable fournisseur d'attestation.
Consultez Utiliser App Check avec le fournisseur de débogage sur Android .