Mettre en œuvre l'intégration de reCAPTCHA Enterprise pour WAF et Google Cloud Armor

Ce document explique comment implémenter une page de test reCAPTCHA, des jetons d'action reCAPTCHA et des jetons de session reCAPTCHA pour Google Cloud Armor.

Avant de commencer

Avant d'utiliser une page de défi reCAPTCHA, les jetons d'action ou de jeton de session, activez l'API reCAPTCHA Enterprise.

  1. Dans la console, accédez à la page API reCAPTCHA Enterprise.

    Accéder à l'API reCAPTCHA Enterprise

  2. Vérifiez que le nom de votre projet s'affiche dans le sélecteur de projet en haut de la page. Si le nom de votre nouveau projet n'apparaît pas, cliquez sur le sélecteur de projet, puis sélectionnez votre projet.

  3. Cliquez sur Activer.

Mettre en œuvre une page d'authentification reCAPTCHA

Lorsque vous mettez en œuvre une page d'authentification reCAPTCHA, reCAPTCHA Enterprise détermine s'il est nécessaire d'afficher un test CAPTCHA auprès d'un utilisateur. Par conséquent, il se peut que les tests CAPTCHA ne soient pas visibles par tous les utilisateurs.

Pour implémenter une page d'authentification reCAPTCHA, procédez comme suit:

  1. Créer une clé de site pour la page d'authentification reCAPTCHA WAF

    Console

    1. Dans la console, accédez à la page reCAPTCHA Enterprise.

      Accéder à la page reCAPTCHA Enterprise

    2. Vérifiez que le nom de votre projet s'affiche dans le sélecteur de projet en haut de la page.

      Si le nom de votre nouveau projet n'apparaît pas, cliquez sur le sélecteur de projet, puis sélectionnez votre projet.

    3. Cliquez sur Créer une clé.

    4. Dans le champ Nom à afficher, saisissez un nom à afficher pour la clé.
    5. Dans le menu déroulant Sélectionner le type de plate-forme, sélectionnez Site Web.

    6. Développez la section Pare-feu d'application Web (WAF), validation du domaine, pages AMP et défi.
    7. Activez le pare-feu d'application Web (WAF).
    8. Dans le menu déroulant Fonctionnalité, sélectionnez Page d'authentification.

    9. Activez l'option Désactiver la validation du domaine.

      Lorsque vous désactivez la validation du domaine pour les clés de site sur la page d'authentification, Google Cloud Armor valide le domaine.

    10. Cliquez sur Créer une clé.
    11. La nouvelle clé est répertoriée sur la page Clés reCAPTCHA.

    gcloud

    Pour créer des clés de site WAF, utilisez la commande gcloud recaptcha key create:
       gcloud recaptcha keys create \
          --web \
          --display-name=DISPLAY_NAME  \
          --waf-feature=WAF_FEATURE \
          --waf-service=WAF_SERVICE \
          --integration-type=INTEGRATION_TYPE \
          --domains=DOMAIN_NAME
      

    Indiquez les valeurs suivantes :

    • DISPLAY_NAME : nom de la clé Généralement un nom de site.
    • WAF_FEATURE: nom de la fonctionnalité WAF. Spécifiez challenge-page.
    • WAF_SERVICE: nom du fournisseur de services WAF. Spécifiez CA pour Google Cloud Armor.
    • INTEGRATION_TYPE: type d'intégration. Spécifiez INVISIBLE.
    • DOMAIN_NAME: domaines ou sous-domaines de sites Web autorisés à utiliser la clé. Spécifiez plusieurs domaines sous la forme d'une liste d'éléments séparés par une virgule. Facultatif: spécifiez --allow-all-domains pour désactiver la validation du domaine.

      Lorsque vous désactivez la validation du domaine pour les clés de site sur la page d'authentification, Google Cloud Armor valide le domaine.

    API REST et ligne de commande

    Pour obtenir des informations de référence sur les types de clés et les types d'intégration, consultez les sections Clé et Type d'intégration.

    Avant d'utiliser les données de la requête, effectuez les remplacements suivants:

    • PROJECT_ID : ID de votre projet Google Cloud
    • DISPLAY_NAME : nom à afficher de la clé
    • WAF_SERVICE: nom du fournisseur de services WAF. Spécifiez CA pour Google Cloud Armor.
    • WAF_FEATURE : nom de la fonctionnalité WAF. Spécifiez challenge-page.
    • DOMAINS (pour les sites Web et WWA) uniquement : domaines ou sous-domaines de sites Web autorisés à utiliser la clé. Spécifiez plusieurs domaines sous la forme d'une liste d'éléments séparés par une virgule. Facultatif: spécifiez --allow-all-domains pour désactiver la validation du domaine.

      Lorsque vous désactivez la validation du domaine pour les clés de site sur la page d'authentification, Google Cloud Armor valide le domaine.

    • TYPE_OF_INTEGRATION (pour les sites Web et WAF uniquement) : Spécifiez INVISIBLE.

    Méthode HTTP et URL :

    POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys

    Corps JSON de la requête :

    
    {
       "displayName": "DISPLAY_NAME",
        'wafSettings': "  {
            "wafService": "WAF_SERVICE",
    "wafFeature": "WAF_FEATURE"
       }
       "webSettings": {
         "allowedDomains": "DOMAINS",
         "integrationType": "TYPE_OF_INTEGRATION"
        }
    }
    
    

    Pour envoyer votre requête, choisissez l'une des options suivantes :

    curl

    Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

    curl -X POST \
    -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys"

    PowerShell

    Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

    $cred = gcloud auth application-default print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys" | Select-Object -Expand Content

    Vous devriez recevoir une réponse JSON de ce type :

    
    {
        "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m",
      "displayName": "WAF session-token test key",
      "webSettings": {
        "allowAllDomains": true,
        "allowedDomains": [
          "localhost"
        ],
    
        "integrationType": "INVISIBLE",
    
      },
      "wafSettings": {
        "wafService": "CA",
        "wafFeature": "CHALLENGE_PAGE"
    
      }
    }
    
    

  2. Configurez les règles de sécurité Google Cloud Armor. Pour savoir comment utiliser une clé de site avec défi reCAPTCHA avec votre stratégie de sécurité, consultez Configurer des règles de gestion des bots.

Implémenter les jetons d'action reCAPTCHA

Vous devez exécuter reCAPTCHA Enterprise sur vos pages Web pour générer des jetons d'action. Une fois que reCAPTCHA Enterprise a généré un jeton d'action, vous devez l'associer à un en-tête de requête prédéfini partout où vous devez protéger les actions utilisateur, telle que le règlement. Par défaut, les jetons d'action sont valides pendant 30 minutes. Ce délai peut être réduit. Par conséquent, vous devez associer le jeton d'action à un en-tête de requête prédéfini avant son expiration, afin que Google Cloud Armor puisse évaluer les attributs du jeton.

Pour implémenter un jeton d'action reCAPTCHA, procédez comme suit :

  1. Créez une clé de site d'action reCAPTCHA pour jeton WAF.

    Console

    1. Dans la console, accédez à la page reCAPTCHA Enterprise.

      Accéder à la page reCAPTCHA Enterprise

    2. Vérifiez que le nom de votre projet s'affiche dans le sélecteur de projet en haut de la page.

      Si le nom de votre nouveau projet n'apparaît pas, cliquez sur le sélecteur de projet, puis sélectionnez votre projet.

    3. Cliquez sur Créer une clé.

    4. Dans le champ Nom à afficher, saisissez un nom à afficher pour la clé.
    5. Dans le menu déroulant Sélectionner le type de plate-forme, sélectionnez Site Web.

      La section Liste de domaines s'affiche.

    6. Saisissez le nom de domaine de votre site Web :

      1. Dans la section Liste de domaines, cliquez sur Ajouter un domaine.

      2. Dans le champ Domaine, saisissez le nom de votre domaine.
      3. Facultatif : pour ajouter un domaine supplémentaire, cliquez sur Ajouter un domaine et saisissez le nom d'un autre domaine dans le champ Domaine. Vous pouvez ajouter jusqu'à 250 domaines.

        Pour les sites Web, la clé de site reCAPTCHA est unique aux domaines et aux sous-domaines que vous spécifiez. Vous pouvez spécifier plusieurs domaines si vous diffusez votre site Web à partir de plusieurs domaines. Si vous spécifiez un domaine (par exemple, examplepetstore.com), vous n'avez pas besoin de spécifier ses sous-domaines (par exemple, subdomain.examplepetstore.com).

    7. Développez la section Pare-feu d'application Web (WAF), validation du domaine, pages AMP et défi.
    8. Activez le pare-feu d'application Web (WAF).
    9. Dans le menu déroulant Fonctionnalité, sélectionnez Jeton d'action.

    10. (Facultatif) Activez l'option Désactiver la validation du domaine.

      La désactivation de la validation de domaine est un risque pour la sécurité, car le site n'est soumis à aucune restriction. Votre clé reCAPTCHA peut donc être consultée et utilisée par tous.

    11. Facultatif: Activez l'option Utiliser la case à cocher défi.

    12. Cliquez sur Créer une clé.
    13. La nouvelle clé est répertoriée sur la page Clés reCAPTCHA.

    gcloud

    Pour créer des clés de site WAF, utilisez la commande gcloud recaptcha key create:
       gcloud recaptcha keys create \
          --web \
          --display-name=DISPLAY_NAME  \
          --waf-feature=WAF_FEATURE \
          --waf-service=WAF_SERVICE \
          --integration-type=INTEGRATION_TYPE \
          --domains=DOMAIN_NAME
      

    Indiquez les valeurs suivantes :

    • DISPLAY_NAME : nom de la clé Généralement un nom de site.
    • WAF_FEATURE : nom de la fonctionnalité WAF. Spécifiez action-token.
    • WAF_SERVICE : nom du fournisseur de services WAF. Spécifiez CA pour Google Cloud Armor.
    • INTEGRATION_TYPE : type d'intégration. Indiquez SCORE ou CHECKBOX.
    • DOMAIN_NAME: domaines ou sous-domaines de sites Web autorisés à utiliser la clé. Spécifiez plusieurs domaines sous la forme d'une liste d'éléments séparés par une virgule. Facultatif: spécifiez --allow-all-domains pour désactiver la validation du domaine.

      La désactivation de la validation de domaine est un risque pour la sécurité, car le site n'est soumis à aucune restriction. Votre clé reCAPTCHA peut donc être consultée et utilisée par tous.

    API REST et ligne de commande

    Pour obtenir des informations de référence sur les types de clés et les types d'intégration, consultez les sections Clé et Type d'intégration.

    Avant d'utiliser les données de la requête, effectuez les remplacements suivants:

    • PROJECT_ID : ID de votre projet Google Cloud
    • DISPLAY_NAME : nom à afficher de la clé
    • WAF_SERVICE: nom du fournisseur de services WAF. Spécifiez CA pour Google Cloud Armor.
    • WAF_FEATURE: nom de la fonctionnalité WAF. Spécifiez action-token.
    • DOMAINS (pour les sites Web et WWA) uniquement : domaines ou sous-domaines de sites Web autorisés à utiliser la clé. Spécifiez plusieurs domaines sous la forme d'une liste d'éléments séparés par une virgule. Facultatif: spécifiez --allow-all-domains pour désactiver la validation du domaine.

      La désactivation de la validation de domaine est un risque pour la sécurité, car le site n'est soumis à aucune restriction. Votre clé reCAPTCHA peut donc être consultée et utilisée par tous.

    • TYPE_OF_INTEGRATION (pour les sites Web et WAF uniquement) : Indiquez SCORE ou CHECKBOX.

    Méthode HTTP et URL :

    POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys

    Corps JSON de la requête :

    
    {
       "displayName": "DISPLAY_NAME",
        'wafSettings': "  {
            "wafService": "WAF_SERVICE",
    "wafFeature": "WAF_FEATURE"
       }
       "webSettings": {
         "allowedDomains": "DOMAINS",
         "integrationType": "TYPE_OF_INTEGRATION"
        }
    }
    
    

    Pour envoyer votre requête, choisissez l'une des options suivantes :

    curl

    Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

    curl -X POST \
    -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys"

    PowerShell

    Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

    $cred = gcloud auth application-default print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys" | Select-Object -Expand Content

    Vous devriez recevoir une réponse JSON de ce type :

    
    {
        "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m",
      "displayName": "WAF session-token test key",
      "webSettings": {
        "allowAllDomains": true,
        "allowedDomains": [
          "localhost"
        ],
    
       "integrationType": "SCORE",
    
      },
      "wafSettings": {
        "wafService": "CA",
        "wafFeature": "ACTION_TOKEN"
    
      }
    }
    
    

  2. Sur vos pages Web, installez la clé de site de jeton d'action. Pour obtenir des instructions, reportez-vous au document correspondant au type d'intégration de votre clé de site de jeton d'action.

  3. Après avoir reçu le jeton de reCAPTCHA Enterprise, associez-le à un en-tête de requête prédéfini au format suivant :

       X-Recaptcha-Token:value-of-your-action-token
    

    Vous pouvez utiliser des langages tels que XHR, Ajax ou l'API Fetch pour associer le jeton à un en-tête de requête prédéfini.

    L'exemple de script suivant montre comment protéger l'action d'exécution et associer le jeton à un en-tête de requête prédéfini à l'aide de JavaScript + XHR :

       <script src="https://www.google.com/recaptcha/enterprise.js?render=ACTION_TOKEN_SITE_KEY"></script>
    
       <script>
    
        function onSuccess(action_token) {
          const xhr = new XMLHttpRequest();
          xhr.open('GET','YOUR_URL', false);
          // Attach the action-token to the predefined request header
          xhr.setRequestHeader("X-Recaptcha-Token", action_token);
          xhr.send(null);
        }
    
        function onError(reason) {
          alert('Response promise rejected: ' + reason);
        }
    
        grecaptcha.enterprise.ready(function () {
          document.getElementById("execute-button").onclick = () => {
            grecaptcha.enterprise.execute('ACTION_TOKEN_SITE_KEY', {
            }).then(onSuccess, onError);
          };
        });
       </script>
    
     ```
    
  4. Configurez les règles de sécurité Google Cloud Armor. Pour savoir comment utiliser la clé de site du jeton d'action reCAPTCHA avec votre stratégie de sécurité, consultez Configurer des règles de gestion des bots.

Implémenter les jetons de session reCAPTCHA

Le code JavaScript reCAPTCHA définit un jeton de session reCAPTCHA en tant que cookie sur le navigateur de l'utilisateur final après l'évaluation. Le navigateur de l'utilisateur final associe le cookie et l'actualise tant que le code JavaScript reCAPTCHA reste actif.

Pour fournir un jeton de session en tant que cookie, installez une clé de site reCAPTCHA basée sur des scores sur au moins l'une de vos pages Web qui répond aux exigences suivantes :

  • La page Web doit être la page que l'utilisateur final parcourt avant la page à protéger. Par exemple, si vous souhaitez protéger la page de paiement, installez la clé de site basée sur des scores reCAPTCHA sur la page d'accueil ou sur la page du produit.
  • La page Web est protégée par une stratégie de sécurité Google Cloud Armor.

Vous pouvez utiliser ce cookie pour protéger les requêtes ultérieures de l'utilisateur et les chargements de page sur un domaine spécifique. Les jetons de session sont valides par défaut pendant 30 minutes. Toutefois, si l'utilisateur reste sur la page où vous avez implémenté le jeton de session, reCAPTCHA Enterprise actualise régulièrement le jeton de session pour empêcher son expiration.

Installez des jetons de session sur chaque page devant être protégée par reCAPTCHA Enterprise. Nous vous recommandons d'installer reCAPTCHA Enterprise sur chaque page et d'utiliser des règles Google Cloud Armor pour appliquer l'accès à toutes les pages, à l'exception de la première page que les utilisateurs finaux parcourent.

Voici un exemple de jeton de session reCAPTCHA :

   recaptcha-ca-t=value-of-your-session-token;domain=domain;expires=expiration_time

Pour implémenter un jeton de session reCAPTCHA, procédez comme suit :

  1. Créez une clé de site de jeton de session reCAPTCHA WAF.

    Console

    1. Dans la console, accédez à la page reCAPTCHA Enterprise.

      Accéder à la page reCAPTCHA Enterprise

    2. Vérifiez que le nom de votre projet s'affiche dans le sélecteur de projet en haut de la page.

      Si le nom de votre nouveau projet n'apparaît pas, cliquez sur le sélecteur de projet, puis sélectionnez votre projet.

    3. Cliquez sur Créer une clé.

    4. Dans le champ Nom à afficher, saisissez un nom à afficher pour la clé.
    5. Dans le menu déroulant Sélectionner le type de plate-forme, sélectionnez Site Web.

      La section Liste de domaines s'affiche.

    6. Saisissez le nom de domaine de votre site Web :

      1. Dans la section Liste de domaines, cliquez sur Ajouter un domaine.

      2. Dans le champ Domaine, saisissez le nom de votre domaine.
      3. Facultatif : pour ajouter un domaine supplémentaire, cliquez sur Ajouter un domaine et saisissez le nom d'un autre domaine dans le champ Domaine. Vous pouvez ajouter jusqu'à 250 domaines.

        Pour les sites Web, la clé de site reCAPTCHA est unique aux domaines et aux sous-domaines que vous spécifiez. Vous pouvez spécifier plusieurs domaines si vous diffusez votre site Web à partir de plusieurs domaines. Si vous spécifiez un domaine (par exemple, examplepetstore.com), vous n'avez pas besoin de spécifier ses sous-domaines (par exemple, subdomain.examplepetstore.com).

    7. Développez la section Pare-feu d'application Web (WAF), validation du domaine, pages AMP et défi.
    8. Activez le pare-feu d'application Web (WAF).
    9. Dans le menu déroulant Fonctionnalité, sélectionnez Jeton de session.

    10. (Facultatif) Activez l'option Désactiver la validation du domaine.

      La désactivation de la validation de domaine est un risque pour la sécurité, car le site n'est soumis à aucune restriction. Votre clé reCAPTCHA peut donc être consultée et utilisée par tous.

    11. Cliquez sur Créer une clé.
    12. La nouvelle clé est répertoriée sur la page Clés reCAPTCHA.

    gcloud

    Pour créer des clés de site WAF, utilisez la commande gcloud recaptcha key create:
       gcloud recaptcha keys create \
          --web \
          --display-name=DISPLAY_NAME  \
          --waf-feature=WAF_FEATURE \
          --waf-service=WAF_SERVICE \
          --integration-type=INTEGRATION_TYPE \
          --domains=DOMAIN_NAME
      

    Indiquez les valeurs suivantes :

    • DISPLAY_NAME : nom de la clé Généralement un nom de site.
    • WAF_FEATURE: nom de la fonctionnalité WAF. Spécifiez session-token.
    • WAF_SERVICE: nom du fournisseur de services WAF. Spécifiez CA pour Google Cloud Armor.
    • INTEGRATION_TYPE: type d'intégration. Spécifiez SCORE.
    • DOMAIN_NAME : domaines ou sous-domaines de sites Web autorisés à utiliser la clé. Spécifiez plusieurs domaines sous la forme d'une liste d'éléments séparés par une virgule. Facultatif: spécifiez --allow-all-domains pour désactiver la validation du domaine.

      La désactivation de la validation de domaine est un risque pour la sécurité, car le site n'est soumis à aucune restriction. Votre clé reCAPTCHA peut donc être consultée et utilisée par tous.

    API REST et ligne de commande

    Pour obtenir des informations de référence sur les types de clés et les types d'intégration, consultez les sections Clé et Type d'intégration.

    Avant d'utiliser les données de la requête, effectuez les remplacements suivants:

    • PROJECT_ID : ID de votre projet Google Cloud
    • DISPLAY_NAME : nom à afficher de la clé
    • WAF_SERVICE : nom du fournisseur de services WAF. Spécifiez CA pour Google Cloud Armor.
    • WAF_FEATURE: nom de la fonctionnalité WAF. Spécifiez session-token.
    • DOMAINS (pour les sites Web et WWA) uniquement : domaines ou sous-domaines de sites Web autorisés à utiliser la clé. Spécifiez plusieurs domaines sous la forme d'une liste d'éléments séparés par une virgule. Facultatif: spécifiez --allow-all-domains pour désactiver la validation du domaine.

      La désactivation de la validation de domaine est un risque pour la sécurité, car le site n'est soumis à aucune restriction. Votre clé reCAPTCHA peut donc être consultée et utilisée par tous.

    • TYPE_OF_INTEGRATION (pour les sites Web et WAF uniquement) : Spécifiez SCORE.

    Méthode HTTP et URL :

    POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys

    Corps JSON de la requête :

    
    {
       "displayName": "DISPLAY_NAME",
        'wafSettings': "  {
            "wafService": "WAF_SERVICE",
    "wafFeature": "WAF_FEATURE"
       }
       "webSettings": {
         "allowedDomains": "DOMAINS",
         "integrationType": "TYPE_OF_INTEGRATION"
        }
    }
    
    

    Pour envoyer votre requête, choisissez l'une des options suivantes :

    curl

    Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

    curl -X POST \
    -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys"

    PowerShell

    Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

    $cred = gcloud auth application-default print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys" | Select-Object -Expand Content

    Vous devriez recevoir une réponse JSON de ce type :

    
    {
        "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m",
      "displayName": "WAF session-token test key",
      "webSettings": {
        "allowAllDomains": true,
        "allowedDomains": [
          "localhost"
        ],
    
       "integrationType": "SCORE",
    
      },
      "wafSettings": {
        "wafService": "CA",
        "wafFeature": "SESSION_TOKEN"
    
      }
    }
    
    

  2. Ajoutez la clé de site par jeton de session et waf=session au code JavaScript reCAPTCHA.

    L'exemple de script suivant montre comment implémenter un jeton de session sur une page Web :

      <!DOCTYPE html>
      <html lang="en">
      <head>
       <meta charset="UTF-8">
       <title>reCAPTCHA WAF Session Token</title>
       <script src="https://www.google.com/recaptcha/enterprise.js?render=SESSION_TOKEN_SITE_KEY&waf=session" async defer></script>
      </head>
    </html>
    
  3. Configurez les règles de sécurité Google Cloud Armor. Pour savoir comment utiliser la clé de site du jeton de session reCAPTCHA avec votre stratégie de sécurité, consultez Configurer des règles de gestion des bots.

Exemples d'utilisation de plusieurs fonctionnalités dans une même application

Vous pouvez utiliser une ou plusieurs fonctionnalités reCAPTCHA Enterprise pour les fonctionnalités WAF dans une seule application.

Exemple 1 : Utiliser la page de test reCAPTCHA et les jetons de session reCAPTCHA

Vous pouvez ajouter un jeton de session reCAPTCHA sur les pages auxquelles un utilisateur peut accéder afin que le cookie soit actualisé régulièrement, par exemple une page Login. Configurer la règle de stratégie de sécurité Google Cloud Armor pour rediriger la requête vers une page d'authentification reCAPTCHA lorsque le score est faible.

L'illustration suivante montre un workflow qui utilise les fonctionnalités de page de test reCAPTCHA et de jeton de session reCAPTCHA :

Exemple 2 : Utiliser la page de test reCAPTCHA et les jetons d'action reCAPTCHA

Vous pouvez ajouter un jeton d'action reCAPTCHA pour protéger une action utilisateur, telle que le paiement. Configurez la règle de stratégie de sécurité Google Cloud Armor pour rediriger la requête vers une page d'authentification reCAPTCHA dans l'une des conditions suivantes:

  • Le score est faible.
  • L'attribut action_name du jeton d'action ne correspond pas à l'action utilisateur protégée.

L'illustration suivante montre un workflow qui utilise les fonctionnalités de page de test reCAPTCHA et de jeton d'action reCAPTCHA :

L'exemple de script suivant montre comment utiliser un jeton d'action reCAPTCHA et rediriger les utilisateurs vers une page d'authentification reCAPTCHA avec le jeton d'action joint à l'en-tête:

   <script src="https://www.google.com/recaptcha/enterprise.js?render=ACTION_TOKEN_SITE_KEY"></script>
    <script>
     function onSuccess(token) {
       const xhr = new XMLHttpRequest();
       xhr.open('GET','http://www.abc.com/checkout', false);
       xhr.setRequestHeader("X-Recaptcha-Token", token);
       xhr.onreadystatechange = function() {
         // Make sure that the request is finished and response is ready with 200
         if (this.readyState == 4 && this.status == 200) {
           // Display the response, it could be a reCAPTCHA challenge
           // page based on your Google Cloud Armor security rule settings.
            document.open();
            document.write(xhr.responseText);
            document.close();

         }
       };
       xhr.send(null);
     }

     grecaptcha.enterprise.ready(function () {
       document.getElementById("execute-button").onclick = () => {
         grecaptcha.enterprise.execute('ACTION_TOKEN_SITE_KEY', {
         }).then(onSuccess, onError);
       };
     });
    </script>

Étapes suivantes