Cette page vous explique comment activer App Check dans une application Web à l'aide du fournisseur reCAPTCHA Enterprise. 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é.
Notez que App Check utilise des clés de site basées sur les scores reCAPTCHA Enterprise, qui sont invisibles pour les utilisateurs. Le fournisseur reCAPTCHA Enterprise ne demandera jamais aux utilisateurs de résoudre un défi.
Si vous souhaitez utiliser App Check avec votre propre fournisseur personnalisé, consultez Implémenter un fournisseur App Check personnalisé.
1. Configurer votre projet Firebase
Ajoutez Firebase à votre projet JavaScript si vous ne l'avez pas encore fait.
Ouvrez la section reCAPTCHA Enterprise de la console Cloud et procédez comme suit :
- Si vous êtes invité à activer l'API reCAPTCHA Enterprise, faites-le.
- Créez une clé de type Site Web. Vous devrez spécifier les domaines sur lesquels vous hébergez votre application Web. Laissez l'option "Utiliser le défi de la case à cocher" désélectionnée.
Enregistrez vos applications pour utiliser App Check avec le fournisseur reCAPTCHA Enterprise dans la section App Check de la console Firebase. Vous devrez fournir la clé de site obtenue à l'étape précédente.
Vous devez généralement enregistrer toutes les applications de votre projet, car une fois que vous avez activé l'application des règles pour un produit Firebase, seules les applications enregistrées pourront accéder aux ressources de backend du produit.
Facultatif : Dans les paramètres d'enregistrement de l'application, définissez une valeur TTL (Time-To-Live) personnalisée pour les jetons App Check émis par le fournisseur. Vous pouvez définir le 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 période pendant laquelle un jeton divulgué ou intercepté peut être utilisé à des fins malveillantes par un pirate informatique.
- Performances : des valeurs TTL plus courtes signifient que votre application effectuera l'attestation plus fréquemment. Étant donné que le processus d'attestation d'application ajoute de la latence aux requêtes réseau chaque fois qu'il est effectué, un TTL court peut avoir un impact sur les performances de votre application.
- Quota et coût : des TTL plus courts et une re-certification fréquente épuisent votre quota plus rapidement et peuvent entraîner des coûts plus élevés pour les services payants. Consultez la page Quotas et limites.
Le 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 de vie (TTL).
2. Ajouter la bibliothèque App Check à votre application
Ajoutez Firebase à votre application Web si ce n'est pas déjà fait. Veillez à importer la bibliothèque App Check.
3. Initialiser App Check
Ajoutez le code d'initialisation suivant à votre application, avant d'accéder à un service Firebase. Vous devrez transmettre votre clé de site reCAPTCHA Enterprise, que vous avez créée dans la console Cloud, à activate()
.
Web
import { initializeApp } from "firebase/app"; import { initializeAppCheck, ReCaptchaEnterpriseProvider } from "firebase/app-check"; const app = initializeApp({ // Your Firebase configuration object. }); // Create a ReCaptchaEnterpriseProvider instance using your reCAPTCHA Enterprise // site key and pass it to initializeAppCheck(). const appCheck = initializeAppCheck(app, { provider: new ReCaptchaEnterpriseProvider(/* reCAPTCHA Enterprise site key */), isTokenAutoRefreshEnabled: true // Set to true to allow auto-refresh. });
Web
firebase.initializeApp({ // Your Firebase configuration object. }); // Create a ReCaptchaEnterpriseProvider instance using your reCAPTCHA Enterprise // site key and pass it to activate(). const appCheck = firebase.appCheck(); appCheck.activate( new firebase.appCheck.ReCaptchaEnterpriseProvider( /* reCAPTCHA Enterprise site key */ ), true // Set to true to allow auto-refresh. );
Étapes suivantes
Une fois la bibliothèque App Check installée dans votre application, déployez-la.
L'application cliente mise à jour commencera à envoyer des jetons App Check avec chaque requête qu'elle envoie à 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
Toutefois, 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 examiner les métriques App Check pour les services que vous utilisez :
- Surveillez les métriques des requêtes App Check pour Data Connect, Firebase AI Logic, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity pour iOS, l'API Maps JavaScript et l'API Places (New).
- Surveillez les métriques des requêtes App Check pour Cloud Functions.
Activer l'application forcée de App Check
Une fois que vous avez compris l'impact de App Check sur vos utilisateurs et que vous êtes prêt à continuer, vous pouvez activer l'application de App Check :
- Activez l'application de App Check pour Data Connect, Firebase AI Logic, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity pour iOS, l'API Maps JavaScript et l'API Places (nouveau).
- Activez l'application forcée de 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 l'exécuter dans un environnement que App Check ne classerait normalement pas comme valide (par exemple, localement pendant le 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 Web.
Remarque sur les coûts
App Check crée une évaluation en votre nom pour valider le jeton de réponse de l'utilisateur chaque fois qu'un navigateur exécutant votre application Web actualise son jeton App Check. Votre projet sera facturé pour chaque évaluation créée au-delà du quota sans frais. Pour en savoir plus, consultez la page Tarifs de reCAPTCHA.
Par défaut, votre application Web actualise ce jeton deux fois toutes les heures. 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), configurez leur TTL.