Premiers pas avec App Check avec reCAPTCHA v3 dans les applications Web

Cette page vous explique comment activer App Check dans une application Web à l'aide du fournisseur reCAPTCHA v3 intégré. 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 reCAPTCHA v3 est invisible pour les utilisateurs. Le fournisseur reCAPTCHA v3 ne demandera jamais aux utilisateurs de résoudre un défi. Consultez la documentation reCAPTCHA v3.

Si vous souhaitez utiliser App Check avec votre propre fournisseur personnalisé, consultez Implémenter un fournisseur App Check personnalisé.

1. Configurer votre projet Firebase

  1. Ajoutez Firebase à votre projet JavaScript si ce n'est pas déjà fait.

  2. Enregistrez votre site pour reCAPTCHA v3 et obtenez votre clé de site et votre clé secrète reCAPTCHA v3.

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

  4. Dans l'onglet Applications, enregistrez vos applications pour utiliser App Check avec le fournisseur reCAPTCHA. Vous devrez fournir la clé secrète que vous avez obtenue sur le site reCAPTCHA.

    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 backend du produit.

  5. Facultatif : Dans les paramètres d'enregistrement de l'application, définissez une durée de vie (TTL) personnalisée pour les jetons émis par le fournisseur.App Check 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é : des durées de vie plus courtes offrent une sécurité renforcée, car elles réduisent la fenêtre dans laquelle un jeton divulgué ou intercepté peut être utilisé de manière abusive 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 valeur TTL 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 Quotas et limites.

    La valeur TTL par défaut de 1 jour 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.

Configurer les paramètres avancés (facultatif)

Lorsqu'un utilisateur visite votre application Web, reCAPTCHA v3 évalue le niveau de risque que représente l'interaction de l'utilisateur et renvoie un score compris entre 0,0 et 1,0. 1,0 correspond à une interaction vraisemblablement légitime, alors que 0,0 correspond très probablement à un bot. App Check vous permet de configurer un seuil de risque d'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 le configurer dans la section App Check de la console Firebase pour chacune de vos applications Web.

Détails

App Check utilise le seuil de risque d'application que vous avez configuré comme score reCAPTCHA v3 minimal requis pour qu'une interaction utilisateur soit considérée comme légitime. Tous les scores reCAPTCHA v3 strictement inférieurs au seuil de risque d'application que vous avez configuré seront rejetés. Lorsque vous ajustez le seuil de risque de votre application, tenez compte des points suivants :

  • Pour surveiller la distribution des scores reCAPTCHA v3 pour votre application Web, accédez à la console d'administration reCAPTCHA et sélectionnez le site correspondant à votre application Web.
  • Si vous avez une faible tolérance au risque d'application, déplacez le curseur vers la gauche pour augmenter le seuil de risque d'application.

    • Une valeur de 1,0 n'est pas recommandée, car ce paramètre peut également empêcher l'accès à des utilisateurs légitimes qui ne répondent pas à ce seuil de confiance élevé.
  • Si vous avez une haute tolérance au risque d'application, déplacez le curseur vers la droite pour diminuer le seuil de risque d'application.

    • Une valeur de 0,0 n'est pas recommandée, car ce paramètre désactive la protection contre les utilisations abusives.

Pour en savoir plus, consultez la documentation reCAPTCHA v3.

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 App Check bibliothèque.

3. Initialiser App Check

Ajoutez le code d'initialisation suivant à votre application avant d'accéder à des services Firebase. Vous devrez transmettre votre reCAPTCHA clé de site, que vous avez créée dans la console reCAPTCHA, à activate().

Web

import { initializeApp } from "firebase/app";
import { initializeAppCheck, ReCaptchaV3Provider } from "firebase/app-check";

const app = initializeApp({
  // Your firebase configuration object
});

// Pass your reCAPTCHA v3 site key (public key) to activate(). Make sure this
// key is the counterpart to the secret key you set in the Firebase console.
const appCheck = initializeAppCheck(app, {
  provider: new ReCaptchaV3Provider('abcdefghijklmnopqrstuvwxy-1234567890abcd'),

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  isTokenAutoRefreshEnabled: true
});

Web

firebase.initializeApp({
  // Your firebase configuration object
});

const appCheck = firebase.appCheck();
// Pass your reCAPTCHA v3 site key (public key) to activate(). Make sure this
// key is the counterpart to the secret key you set in the Firebase console.
appCheck.activate(
  'abcdefghijklmnopqrstuvwxy-1234567890abcd',

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  true);

É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 adressée à Firebase, mais les produits Firebase n'exigeront pas que les jetons soient valides tant que vous n'aurez pas activé l'application des règles dans la section App Check de la console Firebase.

Surveiller les métriques et activer l'application des règles

Avant d'activer l'application des règles, 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 des règles plus tôt.

Pour vous aider à prendre cette décision, vous pouvez consulter les App Check métriques pour les services que vous utilisez :

Activer l'application des règles 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 des règles App Check :

Utiliser App Check dans des environnements de débogage

Si, après avoir enregistré votre application pour App Check, vous souhaitez exécuter votre application 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.