| Sélectionner la plate-forme : | iOS+ Android Web Flutter |
Cette page explique comment configurer App Check dans une application Flutter, à l'aide du fournisseur reCAPTCHA Enterprise. App Check permet de s'assurer que seule votre application peut accéder aux ressources backend de votre projet. Pour en savoir plus, consultez notre présentation de App Check.
App Check nécessite l'utilisation de clés basées sur un score reCAPTCHA, ce qui les rend invisibles pour les utilisateurs. Cela signifie que le reCAPTCHA Enterprise fournisseur n'exigera à aucun moment des utilisateurs qu'ils résolvent un challenge.
Si votre cas d'utilisation nécessite des fonctionnalités reCAPTCHA Enterprise non implémentées par App Check, ou si vous souhaitez utiliser App Check avec votre propre fournisseur personnalisé, consultez Implémenter un fournisseur App Check personnalisé.
1. Configurer votre projet Firebase
Si ce n'est pas déjà fait, installez et initialisez Firebase dans votre projet Flutter.
Dans la console Google Cloud, accédez à la page Fraud Defense (Protection contre la fraude), puis procédez comme suit pour le fournisseur reCAPTCHA Enterprise :
Assurez-vous que vous vous trouvez dans le bon projet (voir le sélecteur de projet en haut de l'écran).
Si vous y êtes invité, activez l'API reCAPTCHA Enterprise.
Créez une clé en fonction de votre plate-forme cible :
iOS+
Créez une clé de type iOS et spécifiez l'ID du bundle de votre application (par exemple,
com.example.my_app).Assurez-vous de saisir le même ID du bundle que celui que vous avez fourni lorsque vous avez créé votre application Apple Firebase dans votre projet Firebase. La valeur de l'ID du bundle est sensible à la casse.
Pour App Check, chaque ID du bundle ne peut correspondre qu'à une seule clé reCAPTCHA.
Android
Créez une clé de type Android et spécifiez le nom de package de votre application (par exemple,
com.example.my_app).Assurez-vous de saisir le même nom de package que celui que vous avez fourni lorsque vous avez créé votre application Android Firebase dans votre projet Firebase. La valeur du nom de package est sensible à la casse.
Pour App Check, chaque nom de package ne peut correspondre qu'à une seule clé reCAPTCHA.
Web
Créez une clé de type Web et spécifiez chacun des domaines de vos applications Web.
App Check n'est pas compatible avec les applications Web diffusées sur plus de 250 domaines.
N'ajoutez jamais
localhosten tant que domaine à une clé reCAPTCHA qui est déployée en production (ou qui le sera).Ne cochez pas l'option "Utiliser le challenge de la case à cocher".
Pour obtenir des instructions détaillées, consultez Créer des clés reCAPTCHA basées sur un score.
Notez chaque clé. Vous devrez les ajouter au flux d'enregistrement dans la Firebase console.
Dans la console Firebase, accédez à Security > App Check.
Dans l'onglet Apps (Applications), enregistrez chacune de vos applications de plate-forme cible pour utiliser App Check avec le fournisseur reCAPTCHA Enterprise. Vous devrez fournir la clé que vous avez obtenue dans la console Google Cloud.
Facultatif : Définissez la valeur TTL (Time to Live) du jeton.
Dans les paramètres d'enregistrement de l'application, définissez une valeur TTL (Time to Live) personnalisée pour App Check jetons émis par le fournisseur. Vous pouvez définir la valeur TTL sur n'importe quelle valeur comprise entre 30 minutes et 7 jours. Lorsque vous modifiez cette valeur, tenez compte des compromis suivants :
- Sécurité : des valeurs TTL plus courtes offrent une sécurité renforcée, car elles réduisent la fenêtre pendant laquelle un jeton divulgué ou intercepté peut être utilisé de manière abusive par un pirate informatique.
- Performances : des valeurs TTL plus courtes signifient que votre application effectuera une attestation plus fréquemment. Étant donné que le processus d'attestation de l'application ajoute de la latence aux requêtes réseau chaque fois qu'il est effectué, une valeur TTL courte peut avoir un impact sur les performances de votre application.
- Quota et coût : des valeurs TTL plus courtes et des réattestations fréquentes épuisent votre quota plus rapidement et, pour les services payants, peuvent entraîner des coûts plus élevés. Consultez Quotas et limites.
La valeur TTL par défaut de 1 heure est raisonnable pour la plupart des applications. Notez que la bibliothèque App Check actualise les jetons environ à la moitié de la durée TTL.
Facultatif : Configurez les paramètres avancés.
Cliquez sur Enregistrer.
(Facultatif) Configurer les paramètres avancés
Lorsqu'un utilisateur ouvre votre application, reCAPTCHA Enterprise évalue le niveau de risque que présente l'interaction de l'utilisateur sous la clé et renvoie un score compris entre 0,0 et 1,0, par incréments de 0,1.
- Un score de 0,0 indique que l'interaction présente un risque élevé et peut être frauduleuse.
- Un score de 1,0 indique que l'interaction présente un risque faible et est très certainement légitime.
App Check vous permet de configurer un seuil de risque de l'application afin d'ajuster votre tolérance à ce risque.
Dans la plupart des cas d'utilisation, la valeur de seuil par défaut de 0,5 est recommandée. Si votre cas d'utilisation nécessite un ajustement, vous pouvez configurer cette valeur pour chacune de vos applications dans la console Firebase (accédez à Security > App Check). Veillez à développer et à examiner certaines considérations importantes concernant la configuration du seuil de risque de l'application ci-dessous.
2. Ajouter le plug-in App Check à votre application
Pour utiliser le reCAPTCHA Enterprise fournisseur, vous devez ajouter le plug-in App Check correspondant.
À la racine de votre projet Flutter, exécutez la commande suivante pour installer le plug-in :
flutter pub add firebase_app_checkUne fois l'opération terminée, recréez votre projet Flutter :
flutter run
3. Initialiser App Check
Dans votre application, vous devez initialiser App Check avant d'utiliser d'autres services 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. Surveiller les métriques et activer l'application
Une fois que vous avez configuré App Check dans votre application, commencez à distribuer l'application mise à jour à vos utilisateurs.
L'application cliente mise à jour commencera à envoyer des App Check jetons avec chaque requête adressée à Firebase. Toutefois, App Check ne bloquera pas les requêtes avec des jetons non valides tant que App Check ne sera pas appliqué.
Surveiller les métriques
_**Avant d'activer l'application**_, assurez-vous que cela ne perturbera pas vos utilisateurs légitimes existants. Toutefois, si vous constatez une utilisation suspecte des ressources de votre application, vous pouvez activer l'application plus tôt.
Pour vous aider à prendre cette décision, vous pouvez consulter les App Check métriques pour les services que vous utilisez :
- Surveillez les métriques de requêtes App Check pour Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity pour iOS, l'API Maps JavaScript et l'API Places (nouveau).
- Surveillez les métriques de requêtes App Check pour Cloud Functions.
Activer l'application App Check
Lorsque vous comprenez l'impact de App Check sur vos utilisateurs et que vous êtes prêt à continuer, vous pouvez activer l'application App Check :
- Activez App Check l'application pour Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity pour iOS, l'API Maps JavaScript et l'API Places (nouveau).
- Activez App Check l'application pour Cloud Functions.
Utiliser App Check dans des environnements de débogage
App Check classe certains environnements comme non valides, tels que les requêtes provenant d' un émulateur / simulateur ou d'un hôte local pendant le développement ou d'un environnement d'intégration continue (CI).
Pour exécuter votre application dans ces types d'environnements une fois App Check appliqué, vous devez créer une version de débogage de votre application qui utilise le App Check fournisseur de débogage au lieu d'un fournisseur d'attestation de production.
Pour en savoir plus, consultez Utiliser App Check avec le fournisseur de débogage dans les applications Flutter.
Tarifs
App Check crée une évaluation en votre nom pour valider le jeton de réponse de l'utilisateur chaque fois que votre application actualise son jeton App Check. Votre projet Firebase sera facturé pour chaque évaluation créée au-delà du quota sans frais. Pour en savoir plus, consultez les tarifs reCAPTCHA.
Par défaut, votre application actualisera ce jeton deux fois par heure. Pour contrôler la fréquence à laquelle votre application actualise les jetons App Check (et donc la fréquence à laquelle de nouvelles évaluations sont créées), vous pouvez configurer la valeur TTL du jeton.