Intégrer reCAPTCHA pour WAF à Akamai

Ce document explique comment intégrer reCAPTCHA pour WAF à Akamai.

Pour terminer l'intégration, vous devez implémenter une ou plusieurs fonctionnalités reCAPTCHA pour WAF, créer des stratégies de pare-feu reCAPTCHA, et de l'intégrer à Akamai en créant et en configurant Service Akamai EdgeWorkers.

Avant de commencer

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

    Notez l'ID de votre projet Google Cloud pour l'utiliser ultérieurement.

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Enable the reCAPTCHA Enterprise API.

    Enable the API

  4. Créez une clé API pour l'authentification:

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

      Accéder à "Identifiants"

    2. Cliquez sur  Créer des identifiants, puis sélectionnez Clé API.
    3. Enregistrez la clé API pour une utilisation ultérieure.

  5. Planifiez comment vous souhaitez implémenter les fonctionnalités de reCAPTCHA pour WAF afin de protéger votre site Web.

    1. Choisir une ou plusieurs fonctionnalités WAF qui correspondent le mieux à votre cas d'utilisation.
    2. Identifiez les pages que vous souhaitez protéger.
    3. Choisissez le type de fonctionnalités de pare-feu d'application Web que vous souhaitez implémenter sur les pages identifiées.
    4. Identifiez les conditions à remplir pour gérer l'accès des utilisateurs.
    5. Comprenez les composants des stratégies de pare-feu reCAPTCHA et leurs attributs. qui vous aident à créer des stratégies de pare-feu reCAPTCHA. Pour obtenir des exemples, consultez Exemples de stratégies de pare-feu reCAPTCHA
  6. Pour la configuration Akamai, assurez-vous de disposer des éléments suivants:

    1. Un compte Akamai et un Propriété Akamai pour votre application.

    2. Accès à Akamai EdgeWorkers à partir de la place de marché Akamai.

    3. Permet de créer des EdgeWorkers.

  7. Téléchargez le package reCAPTCHA pour Akamai recaptcha_akamai_client_0.0.2.tgz.

Implémenter les fonctionnalités de reCAPTCHA pour WAF

Selon vos besoins, vous pouvez utiliser une ou plusieurs fonctionnalités reCAPTCHA pour WAF dans une seule application.

Si vous souhaitez utiliser plusieurs fonctionnalités, vous devez créer une clé reCAPTCHA. pour chacune de ces fonctionnalités et les utiliser dans votre application. Par exemple, si vous souhaitez utiliser les 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.

action-token

Vous devez exécuter reCAPTCHA sur vos pages Web pour générer des jetons d'action. Une fois que reCAPTCHA 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 checkout. Par défaut, les jetons d'action sont valides pendant 30 minutes, mais ce délai 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 qu'Akamai 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.

    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 :

    • DISPLAY_NAME : nom de la clé. Généralement un nom de site.
    • INTEGRATION_TYPE: type d'intégration. Spécifiez score ou checkbox.
    • DOMAIN_NAME: domaines ou sous-domaines des 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 il n'existe aucune restriction sur le site. Par conséquent, votre clé reCAPTCHA est accessible et utilisée par n'importe quel utilisateur.

    • WAF_FEATURE : nom de la fonctionnalité de pare-feu d'application Web. Spécifiez action-token.
    • WAF_SERVICE: nom du fournisseur de services WAF. Spécifiez akamai pour Akamai.

    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 les types d'intégration, consultez les sections Clé et Type d'intégration.

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

    • DISPLAY_NAME : nom de la clé. Généralement un nom de site.
    • INTEGRATION_TYPE: type d'intégration. Spécifiez score ou checkbox.
    • DOMAIN_NAME: domaines ou sous-domaines des 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 il n'existe aucune restriction sur le site. Par conséquent, votre clé reCAPTCHA est accessible et utilisée par n'importe quel utilisateur.

    • WAF_FEATURE : nom de la fonctionnalité de pare-feu d'application Web. Spécifiez action-token.
    • WAF_SERVICE: nom du fournisseur de services WAF. Spécifiez akamai pour Akamai.

    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 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": "akamai",
    
      "wafFeature": "ACTION_TOKEN"
      
    
    }
    }
    
    

    Enregistrez votre clé de jeton d'action pour une utilisation ultérieure.

  2. Intégrez le code JavaScript reCAPTCHA sur vos pages Web avec la clé de jeton d'action que vous avez créée. Pour obtenir des instructions, consultez le document correspondant aux Type d'intégration de votre clé de jeton d'action.
  3. Après avoir 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 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 execute d'action et de joindre le jeton dans 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>
      
      

session-token

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 cookie et l'actualise tant que le Le code JavaScript reCAPTCHA reste actif.

Pour fournir un jeton de session en tant que cookie, installez une clé de jeton de session sur à l'adresse au moins une des pages Web que l'utilisateur final consulte avant la page qui a besoin à 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 du produit.

Pour savoir comment installer des clés de jeton de session sur vos pages Web, consultez la section Intégrer des clés basées sur des scores avec l'interface.

Vous pouvez utiliser ce cookie pour protéger les requêtes ultérieures de l'utilisateur final 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 final reste sur la page sur laquelle vous avez mis en œuvre la session-token, reCAPTCHA actualise régulièrement le jeton de session pour l'empêcher d'expirer.

Installez des jetons de session sur chaque page devant être protégée par reCAPTCHA. Nous vous recommandons de protéger chaque page avec reCAPTCHA 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 jeton de session pour votre site Web.

    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 :

    • DISPLAY_NAME : nom de la clé. Généralement un nom de site.
    • 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 il n'existe aucune restriction sur le site. Par conséquent, votre clé reCAPTCHA est accessible et utilisée par n'importe quel utilisateur.

    • WAF_FEATURE : nom de la fonctionnalité du pare-feu d'application Web. Spécifiez session-token.
    • WAF_SERVICE : nom du fournisseur de service de pare-feu d'application. Spécifiez akamai pour Akamai.

    Exécutez la 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 les types d'intégration, consultez les sections Clé et Type d'intégration.

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

    • DISPLAY_NAME : nom de la clé. Généralement un nom de site.
    • 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 il n'existe aucune restriction sur le site. Par conséquent, votre clé reCAPTCHA est accessible et utilisée par n'importe quel utilisateur.

    • WAF_FEATURE : nom de la fonctionnalité du pare-feu d'application Web. Spécifiez session-token.
    • WAF_SERVICE: nom du fournisseur de services WAF. Spécifiez akamai pour Akamai.

    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 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": "akamai",
    
      "wafFeature": "SESSION_TOKEN"
    
    
    }
    }
    
    

    Enregistrez votre clé de jeton de session pour une utilisation ultérieure.

    Si vous souhaitez injecter le code JavaScript reCAPTCHA à partir d'Akamai, ignorez l'étape suivante et configurez les propriétés dans le Gestionnaire de propriétés Akamai.

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

page de test

Lorsque vous implémentez une page de test reCAPTCHA, reCAPTCHA redirige vers une page interstitielle où il détermine s'il est nécessaire de présenter un test CAPTCHA à un utilisateur. Par conséquent, les tests CAPTCHA peuvent ne pas être visible par tous les utilisateurs.

Pour implémenter une page de test reCAPTCHA, procédez comme suit:

  1. Créez une clé de page de défi pour votre site Web.

    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 :

    • DISPLAY_NAME : nom de la clé. Généralement un nom de site.
    • INTEGRATION_TYPE: type d'intégration. Spécifiez invisible.
    • DOMAIN_NAME: domaines ou sous-domaines des 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 service de pare-feu d'application. Spécifiez akamai pour Akamai.

    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 les types d'intégration, consultez les sections Clé et Type d'intégration.

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

    • DISPLAY_NAME : nom de la clé. Généralement un nom de site.
    • INTEGRATION_TYPE: type d'intégration. Spécifiez invisible.
    • DOMAIN_NAME: domaines ou sous-domaines des 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 service de pare-feu d'application. Spécifiez akamai pour Akamai.

    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 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": "akamai",
    
      "wafFeature": "CHALLENGE_PAGE"
      
    
    }
    }
    
    

    Enregistrez votre clé de page de défi pour une utilisation ultérieure.

  2. Rediriger les utilisateurs vers la page de test reCAPTCHA et recevoir un reCAPTCHA créez une stratégie de pare-feu avec le redirect sur les pages protégées.

express

Pour implémenter la protection express reCAPTCHA Enterprise WAF, créez une Express.

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 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 :

    • DISPLAY_NAME : nom de la clé. Généralement un nom de site.
    • WAF_SERVICE : nom du fournisseur de service de pare-feu d'application. Spécifiez akamai pour Akamai.

    Exécutez la commande gcloud recaptcha keys create :

    Linux, macOS ou Cloud Shell

    gcloud recaptcha keys create \
    --express \
    --display-name=DISPLAY_NAME  \
    --waf-service=WAF_SERVICE

    Windows (PowerShell)

    gcloud recaptcha keys create `
    --express `
    --display-name=DISPLAY_NAME  `
    --waf-service=WAF_SERVICE

    Windows (cmd.exe)

    gcloud recaptcha keys create ^
    --express ^
    --display-name=DISPLAY_NAME  ^
    --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 les types d'intégration, consultez les sections Clé et Type d'intégration.

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

    • DISPLAY_NAME : nom de la clé. Généralement un nom de site.
    • WAF_SERVICE: nom du fournisseur de services WAF. Spécifiez akamai pour Akamai.

    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",
      
    }
    

    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,
    
    },
    "wafSettings": {
      "wafService": "akamai",
    
      
    
    }
    }
    
    

    Enregistrez votre clé express pour une utilisation ultérieure.

Intégrer à Akamai

Pour intégrer Akamai, vous devez configurer le service EdgeWorker et configurer les propriétés du service EdgeWorker dans le gestionnaire de propriétés.

Configurer le service EdgeWorker

  1. Dans le Control Center d'Akamai, créez un ID EdgeWorker et attribuez le rôle d'éditeur à l'ID EdgeWorker que vous créez.

  2. Pour importer le package reCAPTCHA pour Akamai, créez une version EdgeWorker à l'aide du package reCAPTCHA que vous avez téléchargé.

  3. Activez la version EdgeWorker.

Configurer des propriétés dans le gestionnaire de propriétés

  1. Lancez le gestionnaire de propriétés.

  2. Sélectionnez la propriété Akamai que vous souhaitez protéger, et créer une autre version de la propriété.

  3. En fonction des fonctionnalités du WAF que vous avez implémentées, créez vos variables globales définies par l'utilisateur. Les variables globales que vous définissez dans les propriétés commencent par le préfixe PMUSER_.

    Le tableau suivant répertorie les variables que vous pouvez créer et ajouter dans le Variables de propriété:

    Nom de la variable Description Paramètre de sécurité
    RECAPTCHAJSINSTALL Injectez le code JavaScript reCAPTCHA. les URL des pages sur lesquelles vous souhaitez Akamai doit appeler l'API reCAPTCHA afin d'évaluer le score reCAPTCHA. et effectuer l'action configurée dans la stratégie de pare-feu. Spécifiez les chemins en tant que format d'expression régulière et utilisez le séparateur ;. Masqué
    RECAPTCHACHALLENGESITEKEY Clé de page de test reCAPTCHA. Cette variable est obligatoire si vous souhaitez rediriger les utilisateurs vers la page de test reCAPTCHA. Masqué
    RECAPTCHAACTIONSITEKEY Clé de jeton d'action reCAPTCHA. Cette variable est requise si vous utilisez un jeton d'action reCAPTCHA pour protéger vos pages. Masqué
    RECAPTCHASESSIONSITEKEY Clé de jeton de session reCAPTCHA. Cette variable est obligatoire si vous utilisez un jeton de session reCAPTCHA pour protéger vos pages. Vous devez utiliser cette variable si RECAPTCHAJSINSTALL est défini pour configurer le code JavaScript reCAPTCHA à partir d'Akamai. Masqué
    RECAPTCHAEXPRESSSITEKEY Clé reCAPTCHA express. Cette variable est obligatoire si vous utilisez reCAPTCHA Express pour protéger vos pages. Masqué
    GCPPROJECTNUMBER

    L'ID de votre projet Google Cloud.

    Masqué
    GCPAPIKEY

    Clé API que vous avez créée pour l'authentification.

    Masqué

    Pour obtenir des instructions, consultez la section Créer une variable.

  4. Pour activer le service EdgeWorker, ajoutez une règle à l'aide du modèle de règle vierge avec les informations suivantes :

    • Critères

      • Nom : reCAPTCHA EdgeWorkers rule
      • Critères : Tout correspondre
        Si
        Chemin
        correspond à
        /*

        Le critère matches one of doit correspondre à un sur-ensemble des URL. devant être protégés par reCAPTCHA. Chemin /* inclut tous les chemins. Vous pouvez choisir d'ajouter des pages spécifiques.

      • Facultatif : Si vous souhaitez ajouter une condition supplémentaire pour limiter les extensions de fichier, utilisez ce qui suit :

        Si
        Extension de fichier
        appartient à
        html

    • Comportement

      • Activer: Activé
      • Identifiant : Your_EdgeWorker_ID
      • Activer les rapports mPulse : Désactivé
  5. Pour transférer l'appel du service EdgeWorker vers l'API createAssessment reCAPTCHA, ajoutez une règle à l'aide du modèle de règle vierge avec les informations suivantes :

    • Critères

      • Nom : reCAPTCHA assessment rule
      • Critères: Tout correspondre
        Si
        Chemin
        correspond à l'une des valeurs suivantes
        /v1/projects/*/assessments
    • Comportement

      • Origin Type (Type d'origine) : Your Origin (Votre origine)
      • Hostname du serveur d'origine : public-preview-recaptchaenterprise.googleapis.com
      • Forward Host Header (En-tête d'hôte de transfert) : Custom Value (Valeur personnalisée)
      • En-tête d'hôte de transfert personnalisé : public-preview-recaptchaenterprise.googleapis.com
      • Nom d'hôte de la clé de cache : Nom d'hôte de l'origine
      • Compatible avec la compression Gzip: Yes
      • Send True Client IP Header (Envoyer un en-tête d'adresse IP True Client) : Yes
      • True Client IP Header Name (Nom d'en-tête IP True Client) : True-Client-IP
      • Allow Clients To Set True Client IP Header (Autoriser les clients à définir un véritable en-tête d'adresse IP client) : Non
      • Paramètres de validation : Utiliser les paramètres de la plate-forme
      • Utiliser l'extension TLS SNI : Oui
      • Port HTTP : 80
      • HTTPS Port (Port HTTPS) : 443
  6. Facultatif: Pour transférer l'appel du service EdgeWorker au reCAPTCHA page de test, ajoutez une règle. pour rediriger le trafic vers la page de test à l'aide des informations suivantes:

    • Critères

      • Nom : reCAPTCHA challenge page rule
      • Critères: Tout correspondre
        Si
        Chemin
        correspond à l'une des valeurs suivantes
        /recaptcha/challengepage
    • Comportement

      • Origin Type (Type d'origine) : Your Origin (Votre origine)
      • Hostname du serveur d'origine : www.google.com
      • Forward Host Header (En-tête d'hôte de transfert) : Custom Value (Valeur personnalisée)
      • En-tête d'hôte de transfert personnalisé : www.google.com
      • Nom d'hôte de la clé de cache: Nom d'hôte d'origine
      • Compatible avec la compression Gzip: Yes
      • Send True Client IP Header (Envoyer un en-tête d'adresse IP True Client) : Yes
      • True Client IP Header Name (Nom d'en-tête IP True Client) : True-Client-IP
      • Allow Clients To Set True Client IP Header (Autoriser les clients à définir un véritable en-tête d'adresse IP client) : Non
      • Paramètres de validation : Utiliser les paramètres de la plate-forme
      • Utiliser l'extension TLS SNI : Oui
      • Port HTTP : 80
      • HTTPS Port (Port HTTPS) : 443
  7. Activez les modifications :

    1. Activez les modifications en préproduction.
    2. Testez les modifications en préproduction.
    3. Activez les modifications en production.

Créer des stratégies de pare-feu reCAPTCHA

Vous devez créer une stratégie de pare-feu qui spécifie des règles pour chaque page que vous souhaitez protéger sur votre site Web. Vous pouvez créer des stratégies de pare-feu avec une ou plusieurs fonctionnalités de reCAPTCHA pour WAF.

Dans votre stratégie de pare-feu reCAPTCHA, ajoutez des règles dans l'ordre leur priorité. La première règle a l'ordre le plus élevé. Vous pouvez également réorganiser la priorité à l'aide de ReorderFirewallPoliciesRequest. Pour une requête entrante, lorsqu'une condition de stratégie correspond au chemin spécifié, votre fournisseur de services WAF met en œuvre l'action définie et les règles qui en découlent. ne sont pas évalués.

  1. En fonction des fonctionnalités que vous avez choisies, procédez comme suit :
    • Identifiez le chemin que vous souhaitez protéger.
    • Identifiez les conditions pour autoriser, rediriger ou bloquer l'accès.
    • Hiérarchisez les règles.
  2. Familiarisez-vous avec le les composants des stratégies de pare-feu et leurs attributs.
  3. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  4. Pour forcer la gcloud CLI à accéder à la version Preview publique de l'API reCAPTCHA, exécutez la commande suivante:
        gcloud config set api_endpoint_overrides/recaptchaenterprise https://public-preview-recaptchaenterprise.googleapis.com/
        
  5. Pour créer des stratégies de pare-feu reCAPTCHA, utilisez la commande gcloud recaptcha firewall-policies create:

    Dans votre stratégie de pare-feu reCAPTCHA, ajoutez des règles dans l'ordre leur priorité. Vous devez d'abord ajouter une règle ayant la priorité la plus élevée. Pour une requête entrante, lorsqu'une condition de stratégie correspond au chemin d'accès spécifié, votre fournisseur de services WAF implémente l'action définie et les règles suivantes ne sont pas évaluées. La règle par défaut consiste à autoriser l'accès.

       gcloud recaptcha firewall-policies create \
          --actions=ACTION \
          --condition=CONDITION \
          --description=DESCRIPTION \
          --path=PATH
      

    Indiquez les valeurs suivantes :

    • ACTION: actions que votre fournisseur de services WAF doit effectuer pour la requête entrante. Il ne peut contenir qu'une seule action terminale, qui est une action qui force une réponse. Spécifiez l'une des actions suivantes:
      • allow: autorise l'accès à la page demandée. Cette action est irréversible.
      • block : refuse l'accès à la page demandée. Cette action est définitive.
      • redirect: redirige la requête de l'utilisateur entrant vers la page de test reCAPTCHA. Cette action est irréversible.
      • substitute : affiche une page différente de celle demandée à la demande d'un utilisateur frauduleux. Il s'agit d'une action finale.
      • set_header : définit un en-tête personnalisé et permet à la requête utilisateur entrante de continuer vers le backend. Le backend peut alors déclencher une protection personnalisée. Il s'agit d'une action non terminale.
    • CONDITION: un CEL (Common Expression Language) qui spécifie si la stratégie de pare-feu reCAPTCHA s'applique à une requête d'utilisateur entrante. Si cette la condition prend la valeur true et que le chemin demandé correspond au format de chemin, les actions associées sont exécutées par le fournisseur de services WAF. La syntaxe CEL de la chaîne de condition est vérifiée lors de la création. Pour en savoir plus sur la définition du langage, consultez la définition du langage CEL.
    • DESCRIPTION: description de ce que le pare-feu reCAPTCHA à atteindre. La description ne doit pas dépasser 256 caractères UTF-8.
    • PATH: chemin d'accès auquel s'applique la stratégie de pare-feu reCAPTCHA. Il doit être spécifié sous forme de modèle glob. Pour en savoir plus sur glob, consultez la page du manuel.

    Une fois la commande exécutée, un résultat semblable à celui-ci s'affiche suivante s'affiche:

         Created [100].
       

    L'exemple suivant crée une stratégie de pare-feu reCAPTCHA pour bloquer ciblage du trafic pour /example/page.html lorsque le score est inférieur à 0,1.

       gcloud recaptcha firewall-policies create \
         --description="example policy" \
         --path="/example/page.html" \
         --condition="recaptcha.score < 0.1" \
         --actions="block"
       

Étape suivante