Premiers pas avec App Check dans les applications Flutter

Cette page explique comment activer App Check dans une application Flutter à l'aide des fournisseurs par défaut : Play Integrity sur Android, Device Check sur les plates-formes Apple et reCAPTCHA v3 sur le Web. Lorsque vous activez App Check, vous vous assurez que seule votre application peut accéder aux ressources Firebase de votre projet. Consultez la présentation de cette fonctionnalité.

1. Configurer votre projet Firebase

  1. Installez et initialisez FlutterFire si ce n'est pas déjà fait.

  2. Dans la console Firebase, accédez à Sécurité > App Check.

  3. Dans l'onglet Applications , enregistrez vos applications pour utiliser App Check avec les fournisseurs Play Integrity, DeviceCheck et reCAPTCHA.

    Vous devez généralement enregistrer toutes les applications de votre projet, car une fois que vous avez activé l'application pour un produit Firebase, seules les applications enregistrées pourront accéder aux ressources backend du produit.

  4. Facultatif : Dans les paramètres d'enregistrement de l'application, définissez une durée de vie (TTL) personnalisée pour les jetons App Check émis par le fournisseur. Vous pouvez définir la durée de vie sur n'importe quelle valeur comprise entre 30 minutes et 7 jours. Lorsque vous modifiez cette valeur, tenez compte des compromis suivants :

    • Sécurité : les durées de vie 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é à mauvais escient par un pirate informatique.
    • Performances : des durées de vie plus courtes signifient que votre application effectuera l'attestation plus fréquemment. Étant donné que le processus d'attestation de l'application ajoute une latence aux requêtes réseau chaque fois qu'il est effectué, une durée de vie courte peut avoir un impact sur les performances de votre application.
    • Quota et coût : des durées de vie plus courtes et une nouvelle attestation fréquente épuisent votre quota plus rapidement et, pour les services payants, peuvent entraîner des coûts plus élevés. Consultez la page Quotas et limites.

    La durée de vie par défaut est raisonnable pour la plupart des applications. Notez que la bibliothèque App Check actualise les jetons à environ la moitié de la durée de vie.

2. Ajouter la bibliothèque App Check à votre application

  1. À la racine de votre projet Flutter, exécutez la commande suivante pour installer le plug-in :

    flutter pub add firebase_app_check
    
  2. Une fois l'opération terminée, recréez votre application Flutter :

    flutter run
    

3. Initialiser App Check

Ajoutez le code d'initialisation suivant à votre application afin qu'il s'exécute avant que vous n'utilisiez des services Firebase tels que Storage, mais après avoir appelé Firebase.initializeApp() :

import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';

// Import the firebase_app_check plugin
import 'package:firebase_app_check/firebase_app_check.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  await FirebaseAppCheck.instance.activate(
    // You can also use a `ReCaptchaEnterpriseProvider` provider instance as an
    // argument for `webProvider`
    webProvider: ReCaptchaV3Provider('recaptcha-v3-site-key'),
    // Default provider for Android is the Play Integrity provider. You can use the "AndroidProvider" enum to choose
    // your preferred provider. Choose from:
    // 1. Debug provider
    // 2. Safety Net provider
    // 3. Play Integrity provider
    androidProvider: AndroidProvider.debug,
    // Default provider for iOS/macOS is the Device Check provider. You can use the "AppleProvider" enum to choose
        // your preferred provider. Choose from:
        // 1. Debug provider
        // 2. Device Check provider
        // 3. App Attest provider
        // 4. App Attest provider with fallback to Device Check provider (App Attest provider is only available on iOS 14.0+, macOS 14.0+)
    appleProvider: AppleProvider.appAttest,
  );
  runApp(App());
}

Étapes suivantes

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 requête adressée à 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.

Surveiller les métriques et activer l'application

Avant d'activer l'application, vous devez vous assurer que cela ne perturbera pas vos utilisateurs légitimes existants. En revanche, 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 métriques App Check pour les services que vous utilisez :

Activer l'application App Check

Lorsque vous comprenez l'impact d'App Check sur vos utilisateurs et que vous êtes prêt à continuer, vous pouvez activer l'application App Check :

Utiliser App Check dans des environnements de débogage

Si, après avoir enregistré votre application pour App Check, vous souhaitez l'exécuter dans un environnement qu'App Check ne classerait normalement pas comme valide, par exemple un émulateur lors du développement ou à partir d'un environnement d'intégration continue (CI), vous pouvez créer 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 dans les applications Flutter.