Intégrer à Google Cloud Armor pour les sites Web

Ce document vous explique comment intégrer reCAPTCHA pour Cloud Armor sur des sites Web.

Pour terminer l'intégration, vous devez implémenter une ou plusieurs fonctionnalités de reCAPTCHA pour Cloud Armor et configurer des stratégies de sécurité Cloud Armor.

Avant de commencer

  1. Activez l'API reCAPTCHA Enterprise.

    Rôles requis pour activer les API

    Pour activer les API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    Activer l'API

  2. Planifiez la façon dont vous souhaitez implémenter les fonctionnalités de reCAPTCHA pour Cloud Armor afin de protéger votre site Web.

    1. Choisissez une ou plusieurs fonctionnalités WAF qui correspondent le mieux à votre cas d'utilisation.
    2. Identifiez les pages que vous souhaitez protéger et le type de fonctionnalité Cloud Armor que vous souhaitez implémenter sur ces pages.

Implémenter des fonctionnalités de reCAPTCHA pour Cloud Armor

Selon vos besoins, vous pouvez utiliser une ou plusieurs fonctionnalités de reCAPTCHA pour Cloud Armor dans une même application.

Si vous souhaitez utiliser plusieurs fonctionnalités, vous devez créer une clé reCAPTCHA pour chacune d'elles et les utiliser dans votre application. Par exemple, si vous souhaitez utiliser des jetons d'action reCAPTCHA et la page de test reCAPTCHA, vous devez créer une clé de jeton d'action et une clé de page de test, puis les utiliser dans votre application.

Implémenter des jetons d'action reCAPTCHA

Vous devez exécuter reCAPTCHA sur vos pages Web pour générer des jetons d'action. Une fois qu'un jeton d'action est généré par reCAPTCHA, vous l'associez à un en-tête de requête prédéfini chaque fois que vous devez protéger une action utilisateur, comme checkout. Par défaut, les jetons d'action sont valides pendant 30 minutes, mais cela peut varier en fonction du trafic. Vous devez associer le jeton d'action à un en-tête de requête prédéfini avant son expiration, afin que 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 jeton d'action pour votre site Web.

    Cloud Console

    1. Dans la console Google Cloud , accédez à la page Google Cloud Fraud Defense.

      Accéder à Google Cloud Fraud Defense

    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. Sélectionnez l'onglet Keys (clés).
    4. Cliquez sur Créer une clé.
    5. Dans le champ Nom à afficher, saisissez un nom à afficher pour la clé.
    6. Selon la plate-forme pour laquelle vous souhaitez créer des clés reCAPTCHA pour WAF, effectuez l'action appropriée :
      1. Dans le champ Type d'application, sélectionnez Web.

        La section Liste de domaines s'affiche.

      2. Pour protéger la clé reCAPTCHA de votre domaine et de vos sous-domaines, assurez-vous que l'option Désactiver la validation du domaine est désactivée.

        La désactivation de la validation de domaine présente un risque de sécurité, car il n'y a aucune restriction sur le site. N'importe qui peut donc accéder à votre clé reCAPTCHA et l'utiliser.

      3. 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é reCAPTCHA est propre aux domaines et 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). Les modifications apportées à la liste des domaines peuvent prendre jusqu'à 30 minutes pour être appliquées.

      4. Dans Paramètres supplémentaires, activez l'option Déploirez-vous cette clé dans un pare-feu d'application Web (WAF) ?.
      5. Dans les options Fonctionnalité, sélectionnez Action.

      6. Facultatif : Activez le bouton Allez-vous utiliser des tests ?.

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

    gcloud

    Pour créer des clés reCAPTCHA, utilisez la commande gcloud recaptcha keys create.

    Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

    • INTEGRATION_TYPE : type d'intégration. Indiquez score ou checkbox.
    • DISPLAY_NAME : nom de la clé. Généralement un nom de site.
    • 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 présente un risque de sécurité, car il n'y a aucune restriction sur le site. N'importe qui peut donc accéder à votre clé reCAPTCHA et l'utiliser.

    • WAF_FEATURE : nom de la fonctionnalité WAF. Spécifiez action-token.
    • WAF_SERVICE : nom du fournisseur de services WAF. Spécifiez CA pour Cloud Armor.

    Exécutez la commande gcloud recaptcha keys create :

    Linux, macOS ou Cloud Shell

    gcloud recaptcha keys create \
    --web \
    --display-name=DISPLAY_NAME  \
    --integration-type=INTEGRATION_TYPE \
    --domains=DOMAIN_NAME \
    --waf-feature=WAF_FEATURE \
    --waf-service=WAF_SERVICE

    Windows (PowerShell)

    gcloud recaptcha keys create `
    --web `
    --display-name=DISPLAY_NAME  `
    --integration-type=INTEGRATION_TYPE `
    --domains=DOMAIN_NAME `
    --waf-feature=WAF_FEATURE `
    --waf-service=WAF_SERVICE

    Windows (cmd.exe)

    gcloud recaptcha keys create ^
    --web ^
    --display-name=DISPLAY_NAME  ^
    --integration-type=INTEGRATION_TYPE ^
    --domains=DOMAIN_NAME ^
    --waf-feature=WAF_FEATURE ^
    --waf-service=WAF_SERVICE

    La réponse contient la clé reCAPTCHA nouvellement créée.

    REST

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

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

    • INTEGRATION_TYPE : type d'intégration. Indiquez score ou checkbox.
    • DISPLAY_NAME : nom de la clé. Généralement un nom de site.
    • 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 présente un risque de sécurité, car il n'y a aucune restriction sur le site. N'importe qui peut donc accéder à votre clé reCAPTCHA et l'utiliser.

    • WAF_FEATURE : nom de la fonctionnalité WAF. Spécifiez action-token.
    • WAF_SERVICE : nom du fournisseur de services WAF. Spécifiez CA pour Cloud Armor.
    • DEFAULT_SCORE_THRESHOLD : pour les clés de test basées sur des règles, cela définit le seuil de test universel pour la clé lorsqu'un seuil de score personnalisé n'est pas défini. Cette fonctionnalité est disponible en version preview.
    • ACTION_SCORE_THRESHOLDS : pour les clés de validation basées sur des règles, cela spécifie l'action et le seuil de score correspondant (entre 0.0 et 1.0). Exemple :login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}' Cette fonctionnalité est disponible en version preview.

    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": "INTEGRATION_TYPE"
       }
       
    }
    

    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 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 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": "DISPLAY_NAME,
    
    "webSettings": {
      "allowAllDomains": true,
      "allowedDomains": [
        "localhost"
      ],
    
     "integrationType": "SCORE",
    
    
    },
    "wafSettings": {
      "wafService": "CA",
    
      "wafFeature": "ACTION_TOKEN"
      
    
    }
    }
    
    

  2. Intégrez le code JavaScript reCAPTCHA à vos pages Web à l'aide de la clé de jeton d'action que vous avez créée. Pour obtenir des instructions, consultez le document correspondant au type d'intégration de votre clé de jeton d'action.

  3. Une fois que vous avez reçu le jeton de reCAPTCHA, 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 Fetch API 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 execute 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_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_KEY', {
               }).then(onSuccess, onError);
             };
           });
          }
        </script>
      
      

Implémenter des 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'appel de execute(). 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 sous forme de cookie, installez une clé de jeton de session sur au moins l'une de vos pages Web que l'utilisateur final consulte avant la page à protéger. Par exemple, si vous souhaitez protéger la page de paiement, installez une clé de jeton de session sur la page d'accueil ou la page produit.

Pour savoir comment installer des clés de jeton de session sur vos pages Web, consultez Intégrer des clés basées sur le score au frontend.

Vous pouvez utiliser ce cookie pour protéger les requêtes et les chargements de page ultérieurs de l'utilisateur final sur un domaine spécifique. Par défaut, les jetons de session sont valides pendant 30 minutes. Toutefois, si l'utilisateur final reste sur la page où vous avez implémenté le jeton de session, reCAPTCHA actualise régulièrement le jeton de session pour éviter qu'il n'expire.

Installez des jetons de session sur chaque page à protéger par reCAPTCHA. Nous vous recommandons de protéger chaque page avec reCAPTCHA et d'utiliser des règles Cloud Armor pour appliquer l'accès à toutes les pages, à l'exception de la première page consultée par les utilisateurs finaux.

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 jeton de session pour votre site Web.

    Cloud Console

    1. Dans la console Google Cloud , accédez à la page Google Cloud Fraud Defense.

      Accéder à Google Cloud Fraud Defense

    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. Sélectionnez l'onglet Keys (clés).
    4. Cliquez sur Créer une clé.
    5. Dans le champ Nom à afficher, saisissez un nom à afficher pour la clé.
    6. Selon la plate-forme pour laquelle vous souhaitez créer des clés reCAPTCHA pour WAF, effectuez l'action appropriée :
      1. Dans le champ Type d'application, sélectionnez Web.

        La section Liste de domaines s'affiche.

      2. Pour protéger la clé reCAPTCHA de votre domaine et de vos sous-domaines, assurez-vous que l'option Désactiver la validation du domaine est désactivée.

        La désactivation de la validation de domaine présente un risque de sécurité, car il n'y a aucune restriction sur le site. N'importe qui peut donc accéder à votre clé reCAPTCHA et l'utiliser.

      3. 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é reCAPTCHA est propre aux domaines et 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). Les modifications apportées à la liste des domaines peuvent prendre jusqu'à 30 minutes pour être appliquées.

      4. Dans Paramètres supplémentaires, activez l'option Déploirez-vous cette clé dans un pare-feu d'application Web (WAF) ?.
      5. Dans les options Fonctionnalité, sélectionnez Session.

      6. Facultatif : Activez l'option Désactiver la validation du domaine.

        La désactivation de la validation de domaine présente un risque de sécurité, car il n'y a aucune restriction sur le site. N'importe qui peut donc accéder à votre clé reCAPTCHA et l'utiliser.

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

    gcloud

    Pour créer des clés reCAPTCHA, utilisez la commande gcloud recaptcha keys create.

    Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

    • INTEGRATION_TYPE : type d'intégration. Spécifiez score.
    • DISPLAY_NAME : nom de la clé. Généralement un nom de site.
    • 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 présente un risque de sécurité, car il n'y a aucune restriction sur le site. N'importe qui peut donc accéder à votre clé reCAPTCHA et l'utiliser.

    • WAF_FEATURE : nom de la fonctionnalité WAF. Spécifiez session-token.
    • WAF_SERVICE : nom du fournisseur de services WAF. Spécifiez CA pour Cloud Armor.

    Exécutez la commande gcloud recaptcha keys create :

    Linux, macOS ou Cloud Shell

    gcloud recaptcha keys create \
    --web \
    --display-name=DISPLAY_NAME  \
    --integration-type=INTEGRATION_TYPE \
    --domains=DOMAIN_NAME \
    --waf-feature=WAF_FEATURE \
    --waf-service=WAF_SERVICE

    Windows (PowerShell)

    gcloud recaptcha keys create `
    --web `
    --display-name=DISPLAY_NAME  `
    --integration-type=INTEGRATION_TYPE `
    --domains=DOMAIN_NAME `
    --waf-feature=WAF_FEATURE `
    --waf-service=WAF_SERVICE

    Windows (cmd.exe)

    gcloud recaptcha keys create ^
    --web ^
    --display-name=DISPLAY_NAME  ^
    --integration-type=INTEGRATION_TYPE ^
    --domains=DOMAIN_NAME ^
    --waf-feature=WAF_FEATURE ^
    --waf-service=WAF_SERVICE

    La réponse contient la clé reCAPTCHA nouvellement créée.

    REST

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

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

    • INTEGRATION_TYPE : type d'intégration. Spécifiez score.
    • DISPLAY_NAME : nom de la clé. Généralement un nom de site.
    • 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 présente un risque de sécurité, car il n'y a aucune restriction sur le site. N'importe qui peut donc accéder à votre clé reCAPTCHA et l'utiliser.

    • WAF_FEATURE : nom de la fonctionnalité WAF. Spécifiez session-token.
    • WAF_SERVICE : nom du fournisseur de services WAF. Spécifiez CA pour Cloud Armor.
    • DEFAULT_SCORE_THRESHOLD : pour les clés de test basées sur des règles, cela définit le seuil de test universel pour la clé lorsqu'un seuil de score personnalisé n'est pas défini. Cette fonctionnalité est disponible en version preview.
    • ACTION_SCORE_THRESHOLDS : pour les clés de validation basées sur des règles, cela spécifie l'action et le seuil de score correspondant (entre 0.0 et 1.0). Exemple :login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}' Cette fonctionnalité est disponible en version preview.

    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": "INTEGRATION_TYPE"
       }
       
    }
    

    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 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 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": "DISPLAY_NAME,
    
    "webSettings": {
      "allowAllDomains": true,
      "allowedDomains": [
        "localhost"
      ],
    
     "integrationType": "SCORE",
    
    
    },
    "wafSettings": {
      "wafService": "CA",
    
      "wafFeature": "SESSION_TOKEN"
    
    
    }
    }
    
    

  2. Ajoutez la clé du jeton de session et waf=session au 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_KEY&waf=session" async defer></script>
     <body></body>
    </head>
    </html>

Implémenter une page de test reCAPTCHA

Lorsque vous implémentez une page de test reCAPTCHA, reCAPTCHA redirige l'utilisateur vers une page interstitielle où il détermine s'il est nécessaire de lui afficher un test CAPTCHA. Par conséquent, il est possible que les tests CAPTCHA ne soient pas visibles pour tous les utilisateurs.

Pour implémenter une page de test reCAPTCHA, créez une clé de page de test pour votre site Web.

Cloud Console

  1. Dans la console Google Cloud , accédez à la page Google Cloud Fraud Defense.

    Accéder à Google Cloud Fraud Defense

  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. Sélectionnez l'onglet Keys (clés).
  4. Cliquez sur Créer une clé.
  5. Dans le champ Nom à afficher, saisissez un nom à afficher pour la clé.
  6. Selon la plate-forme pour laquelle vous souhaitez créer des clés reCAPTCHA pour WAF, effectuez l'action appropriée :
    1. Dans le champ Type d'application, sélectionnez Web.
    2. Dans Paramètres supplémentaires, activez l'option Déploirez-vous cette clé dans un pare-feu d'application Web (WAF) ?.
    3. Dans les options Fonctionnalité, sélectionnez Défi.

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

      Lorsque vous désactivez la validation du domaine pour les clés de page de test, Cloud Armor valide le domaine.

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

gcloud

Pour créer des clés reCAPTCHA, utilisez la commande gcloud recaptcha keys create.

Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

  • INTEGRATION_TYPE : type d'intégration. Spécifiez invisible.
  • DISPLAY_NAME : nom de la clé. Généralement un nom de site.
  • DOMAIN_NAME : domaines ou sous-domaines de sites Web autorisés à utiliser la clé. Spécifiez --allow-all-domains.
  • WAF_FEATURE : nom de la fonctionnalité WAF. Spécifiez challenge-page.
  • WAF_SERVICE : nom du fournisseur de services WAF. Spécifiez CA pour Cloud Armor.

Exécutez la commande gcloud recaptcha keys create :

Linux, macOS ou Cloud Shell

gcloud recaptcha keys create \
--web \
--display-name=DISPLAY_NAME  \
--integration-type=INTEGRATION_TYPE \
--domains=DOMAIN_NAME \
--waf-feature=WAF_FEATURE \
--waf-service=WAF_SERVICE

Windows (PowerShell)

gcloud recaptcha keys create `
--web `
--display-name=DISPLAY_NAME  `
--integration-type=INTEGRATION_TYPE `
--domains=DOMAIN_NAME `
--waf-feature=WAF_FEATURE `
--waf-service=WAF_SERVICE

Windows (cmd.exe)

gcloud recaptcha keys create ^
--web ^
--display-name=DISPLAY_NAME  ^
--integration-type=INTEGRATION_TYPE ^
--domains=DOMAIN_NAME ^
--waf-feature=WAF_FEATURE ^
--waf-service=WAF_SERVICE

La réponse contient la clé reCAPTCHA nouvellement créée.

REST

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

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

  • INTEGRATION_TYPE : type d'intégration. Spécifiez invisible.
  • DISPLAY_NAME : nom de la clé. Généralement un nom de site.
  • DOMAIN_NAME : domaines ou sous-domaines de sites Web autorisés à utiliser la clé. Spécifiez --allow-all-domains.
  • WAF_FEATURE : nom de la fonctionnalité WAF. Spécifiez challenge-page.
  • WAF_SERVICE : nom du fournisseur de services WAF. Spécifiez CA pour Cloud Armor.
  • DEFAULT_SCORE_THRESHOLD : pour les clés de test basées sur des règles, cela définit le seuil de test universel pour la clé lorsqu'un seuil de score personnalisé n'est pas défini. Cette fonctionnalité est disponible en version preview.
  • ACTION_SCORE_THRESHOLDS : pour les clés de validation basées sur des règles, cela spécifie l'action et le seuil de score correspondant (entre 0.0 et 1.0). Exemple :login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}' Cette fonctionnalité est disponible en version preview.

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": "INTEGRATION_TYPE"
   }
   
}

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 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 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": "DISPLAY_NAME,

"webSettings": {
  "allowAllDomains": true,
  "allowedDomains": [
    "localhost"
  ],

  "integrationType": "INVISIBLE",
 

},
"wafSettings": {
  "wafService": "CA",

  "wafFeature": "CHALLENGE_PAGE"
  

}
}

Configurer les stratégies de sécurité Cloud Armor

Après avoir implémenté les fonctionnalités de reCAPTCHA pour Cloud Armor, vous devez configurer des stratégies de sécurité Cloud Armor pour la gestion des robots.

Si vous avez implémenté une page de test reCAPTCHA, vous devez effectuer les opérations suivantes :

  1. Associez la clé de la page de test à votre stratégie de sécurité.
  2. Configurez une règle de stratégie de sécurité pour rediriger une requête vers l'évaluation reCAPTCHA.

Si vous avez implémenté des jetons d'action ou de session reCAPTCHA, vous devez configurer une règle de stratégie de sécurité qui évalue les jetons reCAPTCHA.

Avant de configurer les règles de sécurité Cloud Armor, comprenez les attributs de jeton reCAPTCHA pour Cloud Armor.

Pour savoir comment configurer des stratégies de sécurité Cloud Armor et utiliser les clés reCAPTCHA pour WAF avec vos stratégies de sécurité, consultez Configurer des règles pour la gestion des robots.

Obtenir des scores reCAPTCHA

Pour les jetons d'action et de session reCAPTCHA, vous pouvez obtenir les scores reCAPTCHA à partir de l'en-tête X-Recaptcha-Wafdata. En fonction de ces scores, vous pouvez configurer toute action personnalisée à effectuer pour les demandes des utilisateurs.

L'exemple suivant montre un exemple d'en-tête X-Recaptcha-Wafdata :

X-Recaptcha-Wafdata: waf_service="Google Cloud Armor", action_token;score=0.9, session_token;score=0.8\r\n

Vous pouvez également afficher les scores reCAPTCHA dans les journaux Google Cloud Armor.

Étapes suivantes