Mengintegrasikan reCAPTCHA untuk WAF dengan Fastly

Dokumen ini menunjukkan cara mengintegrasikan reCAPTCHA untuk WAF dengan Fastly.

Untuk menyelesaikan integrasi, Anda harus menerapkan satu atau beberapa fitur reCAPTCHA untuk WAF, membuat kebijakan firewall reCAPTCHA, dan mengintegrasikan dengan layanan komputasi Fastly.

Sebelum memulai

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

    Go to project selector

    Catat Google Cloud project ID Anda untuk digunakan nanti.

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

  3. Enable the reCAPTCHA Enterprise API.

    Enable the API

  4. Buat kunci API untuk autentikasi:

    1. Di konsol Google Cloud , buka halaman Credentials.

      Buka Kredensial

    2. Klik Create credentials, lalu pilih API key.

    3. Catat kunci API untuk digunakan nanti.

  5. Rencanakan cara Anda ingin menerapkan fitur reCAPTCHA untuk WAF guna melindungi situs Anda.

    1. Pilih satu atau beberapa fitur WAF yang paling sesuai dengan kasus penggunaan Anda.
    2. Identifikasi halaman yang ingin Anda lindungi dan jenis fitur WAF yang ingin Anda terapkan di halaman tersebut.
    3. Identifikasi kondisi untuk mengizinkan atau memblokir akses.
    4. Pahami komponen kebijakan firewall reCAPTCHA dan atributnya yang membantu Anda membuat kebijakan firewall reCAPTCHA. Untuk mengetahui contohnya, lihat Contoh kebijakan firewall reCAPTCHA.
  6. Download paket reCAPTCHA untuk Fastly recaptcha_fastly_client_0.1.0.tar.gz.

  7. Buat akun Fastly dengan kemampuan Compute@Edge.

Menerapkan fitur reCAPTCHA untuk WAF

Bergantung pada persyaratan Anda, Anda dapat menggunakan satu atau beberapa fitur reCAPTCHA untuk WAF dalam satu aplikasi.

Jika ingin menggunakan lebih dari satu fitur, Anda harus membuat kunci reCAPTCHA untuk setiap fitur tersebut dan menggunakannya di aplikasi Anda. Misalnya, jika Anda ingin menggunakan token tindakan reCAPTCHA dan halaman tantangan reCAPTCHA, Anda harus membuat kunci token tindakan dan kunci halaman tantangan, lalu menggunakannya di aplikasi Anda.

action-token

Anda harus menjalankan reCAPTCHA di halaman web untuk membuat token tindakan. Setelah reCAPTCHA membuat token tindakan, Anda melampirkan token tindakan ke header permintaan yang telah ditentukan sebelumnya di mana pun Anda perlu melindungi tindakan pengguna, seperti checkout. Secara default, token tindakan berlaku selama 30 menit, tetapi dapat bervariasi bergantung pada traffic. Anda harus melampirkan action-token ke header permintaan yang telah ditentukan sebelumnya sebelum token berakhir, sehingga Fastly dapat mengevaluasi atribut token.

Untuk menerapkan token tindakan reCAPTCHA, lakukan hal berikut:

  1. Buat kunci token tindakan untuk situs Anda.

    gcloud

    Untuk membuat kunci reCAPTCHA, gunakan perintah gcloud recaptcha keys create.

    Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

    • DISPLAY_NAME: Nama untuk kunci. Biasanya nama situs.
    • INTEGRATION_TYPE: Jenis integrasi. Tentukan score atau checkbox.
    • DOMAIN_NAME: Domain atau subdomain situs yang diizinkan menggunakan kunci.

      Tentukan beberapa domain sebagai daftar yang dipisahkan koma. Opsional: Tentukan --allow-all-domains untuk menonaktifkan verifikasi domain.

      Menonaktifkan verifikasi domain merupakan risiko keamanan karena tidak ada batasan pada situs, sehingga kunci reCAPTCHA Anda dapat diakses dan digunakan oleh siapa saja.

    • WAF_FEATURE: Nama fitur WAF. Tentukan action-token.
    • WAF_SERVICE: Nama penyedia layanan WAF. Tentukan fastly untuk Fastly.

    Jalankan perintah gcloud recaptcha keys create:

    Linux, macOS, atau 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

    Respons berisi kunci reCAPTCHA yang baru dibuat.

    REST

    Untuk mengetahui informasi referensi API tentang jenis kunci dan jenis integrasi, lihat Kunci dan Jenis integrasi.

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • DISPLAY_NAME: Nama untuk kunci. Biasanya nama situs.
    • INTEGRATION_TYPE: Jenis integrasi. Tentukan score atau checkbox.
    • DOMAIN_NAME: Domain atau subdomain situs yang diizinkan menggunakan kunci.

      Tentukan beberapa domain sebagai daftar yang dipisahkan koma. Opsional: Tentukan --allow-all-domains untuk menonaktifkan verifikasi domain.

      Menonaktifkan verifikasi domain merupakan risiko keamanan karena tidak ada batasan pada situs, sehingga kunci reCAPTCHA Anda dapat diakses dan digunakan oleh siapa saja.

    • WAF_FEATURE: Nama fitur WAF. Tentukan action-token.
    • WAF_SERVICE: Nama penyedia layanan WAF. Tentukan fastly untuk Fastly.

    Metode HTTP dan URL:

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

    Isi JSON permintaan:

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

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

    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

    Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

    $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

    Anda akan melihat respons JSON seperti berikut:

    
    {
      "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m",
    "displayName": "DISPLAY_NAME,
    
    "webSettings": {
      "allowAllDomains": true,
      "allowedDomains": [
        "localhost"
      ],
    
     "integrationType": "SCORE",
    
    
    },
    "wafSettings": {
      "wafService": "fastly",
    
      "wafFeature": "ACTION_TOKEN"
      
    
    }
    }
    
    

    Catat kunci token tindakan Anda untuk digunakan nanti.

  2. Integrasikan JavaScript reCAPTCHA di halaman web Anda dengan kunci token tindakan yang Anda buat. Untuk mengetahui petunjuknya, lihat dokumen yang sesuai dengan jenis integrasi kunci token tindakan Anda.
  3. Setelah Anda menerima token dari reCAPTCHA, lampirkan token ke header permintaan yang telah ditentukan sebelumnya dalam format berikut:
     X-Recaptcha-Token: value-of-your-action-token
    

    Anda dapat menggunakan bahasa seperti XHR, Ajax, atau Fetch API untuk melampirkan token ke header permintaan yang telah ditentukan sebelumnya.

    Contoh skrip berikut menunjukkan cara melindungi tindakan execute dan melampirkan token ke header permintaan yang telah ditentukan menggunakan 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

JavaScript reCAPTCHA menetapkan token sesi reCAPTCHA sebagai cookie di browser pengguna akhir setelah penilaian. Browser pengguna akhir melampirkan cookie dan memperbarui cookie selama JavaScript reCAPTCHA tetap aktif.

Untuk memberikan token sesi sebagai cookie, instal kunci token sesi di setidaknya salah satu halaman web Anda yang dijelajahi pengguna akhir sebelum halaman yang perlu dilindungi. Misalnya, jika Anda ingin melindungi halaman checkout, instal kunci token sesi di halaman beranda atau halaman produk.

Untuk mempelajari cara menginstal kunci token sesi di halaman web Anda, lihat Mengintegrasikan kunci berbasis skor dengan frontend.

Anda dapat menggunakan cookie ini untuk melindungi permintaan dan pemuatan halaman berikutnya pengguna akhir di domain tertentu. Token sesi berlaku selama 30 menit secara default. Namun, jika pengguna akhir tetap berada di halaman tempat Anda menerapkan session-token, reCAPTCHA akan memuat ulang session-token secara berkala untuk mencegahnya berakhir.

Instal token sesi di setiap halaman yang perlu dilindungi oleh reCAPTCHA. Sebaiknya lindungi setiap halaman dengan reCAPTCHA dan gunakan aturan Google Cloud Armor untuk menerapkan akses di semua halaman, kecuali halaman pertama yang dijelajahi pengguna akhir.

Berikut adalah contoh token sesi reCAPTCHA:
   recaptcha-ca-t=value-of-your-session-token;domain=domain;expires=expiration_time

Untuk menerapkan token sesi reCAPTCHA, lakukan hal berikut:

  1. Buat kunci token sesi untuk situs Anda.

    gcloud

    Untuk membuat kunci reCAPTCHA, gunakan perintah gcloud recaptcha keys create.

    Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

    • DISPLAY_NAME: Nama untuk kunci. Biasanya nama situs.
    • INTEGRATION_TYPE: Jenis integrasi. Tentukan score.
    • DOMAIN_NAME: Domain atau subdomain situs yang diizinkan menggunakan kunci.

      Tentukan beberapa domain sebagai daftar yang dipisahkan koma. Opsional: Tentukan --allow-all-domains untuk menonaktifkan verifikasi domain.

      Menonaktifkan verifikasi domain merupakan risiko keamanan karena tidak ada batasan pada situs, sehingga kunci reCAPTCHA Anda dapat diakses dan digunakan oleh siapa saja.

    • WAF_FEATURE: Nama fitur WAF. Tentukan session-token.
    • WAF_SERVICE: Nama penyedia layanan WAF. Tentukan fastly untuk Fastly.

    Jalankan perintah gcloud recaptcha keys create:

    Linux, macOS, atau 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

    Respons berisi kunci reCAPTCHA yang baru dibuat.

    REST

    Untuk mengetahui informasi referensi API tentang jenis kunci dan jenis integrasi, lihat Kunci dan Jenis integrasi.

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • DISPLAY_NAME: Nama untuk kunci. Biasanya nama situs.
    • INTEGRATION_TYPE: Jenis integrasi. Tentukan score.
    • DOMAIN_NAME: Domain atau subdomain situs yang diizinkan menggunakan kunci.

      Tentukan beberapa domain sebagai daftar yang dipisahkan koma. Opsional: Tentukan --allow-all-domains untuk menonaktifkan verifikasi domain.

      Menonaktifkan verifikasi domain merupakan risiko keamanan karena tidak ada batasan pada situs, sehingga kunci reCAPTCHA Anda dapat diakses dan digunakan oleh siapa saja.

    • WAF_FEATURE: Nama fitur WAF. Tentukan session-token.
    • WAF_SERVICE: Nama penyedia layanan WAF. Tentukan fastly untuk Fastly.

    Metode HTTP dan URL:

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

    Isi JSON permintaan:

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

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

    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

    Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

    $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

    Anda akan melihat respons JSON seperti berikut:

    
    {
      "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m",
    "displayName": "DISPLAY_NAME,
    
    "webSettings": {
      "allowAllDomains": true,
      "allowedDomains": [
        "localhost"
      ],
    
     "integrationType": "SCORE",
    
    
    },
    "wafSettings": {
      "wafService": "fastly",
    
      "wafFeature": "SESSION_TOKEN"
    
    
    }
    }
    
    

    Catat kunci session-token Anda untuk digunakan nanti.

  2. Tambahkan kunci session-token dan waf=session ke JavaScript reCAPTCHA.

    Skrip contoh berikut menunjukkan cara menerapkan token sesi di halaman 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>

challenge-page

Saat Anda menerapkan halaman tantangan reCAPTCHA, reCAPTCHA akan mengalihkan ke halaman antara yang menentukan apakah perlu menampilkan tantangan CAPTCHA kepada pengguna. Oleh karena itu, verifikasi CAPTCHA mungkin tidak terlihat oleh semua pengguna.

Untuk menerapkan halaman tantangan reCAPTCHA, lakukan hal berikut:

  1. Buat kunci halaman tantangan untuk situs Anda.

    gcloud

    Untuk membuat kunci reCAPTCHA, gunakan perintah gcloud recaptcha keys create.

    Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

    • DISPLAY_NAME: Nama untuk kunci. Biasanya nama situs.
    • INTEGRATION_TYPE: Jenis integrasi. Tentukan invisible.
    • DOMAIN_NAME: Domain atau subdomain situs yang diizinkan menggunakan kunci. Tentukan --allow-all-domains.
    • WAF_FEATURE: Nama fitur WAF. Tentukan challenge-page.
    • WAF_SERVICE: Nama penyedia layanan WAF. Tentukan fastly untuk Fastly.

    Jalankan perintah gcloud recaptcha keys create:

    Linux, macOS, atau 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

    Respons berisi kunci reCAPTCHA yang baru dibuat.

    REST

    Untuk mengetahui informasi referensi API tentang jenis kunci dan jenis integrasi, lihat Kunci dan Jenis integrasi.

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • DISPLAY_NAME: Nama untuk kunci. Biasanya nama situs.
    • INTEGRATION_TYPE: Jenis integrasi. Tentukan invisible.
    • DOMAIN_NAME: Domain atau subdomain situs yang diizinkan menggunakan kunci. Tentukan --allow-all-domains.
    • WAF_FEATURE: Nama fitur WAF. Tentukan challenge-page.
    • WAF_SERVICE: Nama penyedia layanan WAF. Tentukan fastly untuk Fastly.

    Metode HTTP dan URL:

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

    Isi JSON permintaan:

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

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

    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

    Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

    $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

    Anda akan melihat respons JSON seperti berikut:

    
    {
      "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m",
    "displayName": "DISPLAY_NAME,
    
    "webSettings": {
      "allowAllDomains": true,
      "allowedDomains": [
        "localhost"
      ],
    
      "integrationType": "INVISIBLE",
     
    
    },
    "wafSettings": {
      "wafService": "fastly",
    
      "wafFeature": "CHALLENGE_PAGE"
      
    
    }
    }
    
    

    Catat kunci halaman tantangan Anda untuk digunakan nanti.

  2. Untuk mengalihkan pengguna ke halaman tantangan reCAPTCHA dan menerima token reCAPTCHA, buat kebijakan firewall dengan tindakan redirect di halaman yang dilindungi.

express

Untuk menerapkan reCAPTCHA ekspres, buat kunci ekspres.

  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

    Untuk membuat kunci reCAPTCHA, gunakan perintah gcloud recaptcha keys create.

    Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:

    • DISPLAY_NAME: Nama untuk kunci. Biasanya nama situs.
    • WAF_SERVICE: Nama penyedia layanan WAF. Tentukan fastly untuk Fastly.

    Jalankan perintah gcloud recaptcha keys create:

    Linux, macOS, atau 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

    Respons berisi kunci reCAPTCHA yang baru dibuat.

    REST

    Untuk mengetahui informasi referensi API tentang jenis kunci dan jenis integrasi, lihat Kunci dan Jenis integrasi.

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • DISPLAY_NAME: Nama untuk kunci. Biasanya nama situs.
    • WAF_SERVICE: Nama penyedia layanan WAF. Tentukan fastly untuk Fastly.

    Metode HTTP dan URL:

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

    Isi JSON permintaan:

    
    {
      "displayName": "DISPLAY_NAME",
       'wafSettings': "  {
           "wafService": "WAF_SERVICE",
      
    }
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

    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

    Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

    $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

    Anda akan melihat respons JSON seperti berikut:

    
    {
      "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m",
    "displayName": "DISPLAY_NAME,
    
    },
    "wafSettings": {
      "wafService": "fastly",
    
      
    
    }
    }
    
    

    Catat kunci ekspres Anda untuk digunakan nanti.

Mengintegrasikan dengan layanan komputasi Fastly

Untuk menggunakan kebijakan firewall reCAPTCHA, Anda harus menyiapkan layanan komputasi Fastly untuk mencegat dan memproses permintaan.

Anda dapat membuat dan mengonfigurasi layanan komputasi baru atau mengintegrasikan kebijakan firewall reCAPTCHA dengan layanan Fastly yang ada, dengan menggabungkan. Jika Anda ingin menggunakan chaining, layanan reCAPTCHA harus menjadi layanan Fastly atau proxy lain yang paling hulu untuk deteksi IP yang benar.

Untuk membuat layanan komputasi, Anda harus memiliki informasi berikut:

  • Nama domain Anda
  • Paket reCAPTCHA untuk FASTLY dalam format zip
  • Nama origin untuk server backend Anda
  • Nama asal untuk server backend reCAPTCHA: Recaptcha Enterprise
  • Nama asal untuk server backend Google: Google
  • Kunci API yang Anda buat untuk autentikasi
  • ID project Google Cloud Anda
  • Kunci reCAPTCHA yang Anda buat untuk fitur WAF

Untuk menyiapkan layanan Fastly dengan kebijakan firewall reCAPTCHA, lakukan hal berikut:

  1. Login ke Fastly.
  2. Untuk membuat layanan komputasi, ikuti petunjuk di Membuat layanan komputasi baru.

    Saat membuat layanan komputasi, lakukan hal berikut:

    • Untuk membuat asal server backend reCAPTCHA, tentukan nilai berikut:

      • Nama asal Anda = Recaptcha Enterprise
      • Alamat IP (atau nama host) server asal Anda = public-preview-recaptchaenterprise.googleapis.com
    • Untuk membuat origin bagi server backend Google, tentukan nilai berikut:

      • Nama asal Anda = Google
      • Alamat IP (atau nama host) server asal Anda = www.google.com:443
    • Untuk membuat origin bagi server backend, tentukan nilai berikut:

      • Nama asal = Nama yang bermakna untuk server backend Anda.
      • Alamat IP (atau nama host) server asal Anda = Nama host untuk server backend Anda.
    • Upload paket reCAPTCHA untuk Fastly recaptcha_fastly_client_0.1.0.tar.gz.

    • Buat ConfigStore baru bernama recaptcha dan tambahkan key-value pair berikut:

      Kunci Nilai
      api_key Kunci API yang Anda buat untuk autentikasi.
      project_number ID project Google Cloud Anda.
      action_site_key Kunci token tindakan reCAPTCHA WAF. Kunci ini diperlukan jika Anda menggunakan token tindakan untuk melindungi halaman Anda.
      session_site_key Kunci token sesi reCAPTCHA WAF. Kunci ini diperlukan jika Anda menggunakan token sesi untuk melindungi halaman.
      challengepage_site_key Kunci halaman tantangan reCAPTCHA WAF. Kunci ini diperlukan jika Anda menggunakan halaman tantangan reCAPTCHA untuk melindungi halaman Anda.
      express_site_key Kunci ekspres reCAPTCHA. Kunci ini diperlukan jika Anda menggunakan reCAPTCHA ekspres untuk melindungi halaman Anda.
      recaptcha_js_install_path URL halaman tempat Anda ingin plugin WAF reCAPTCHA menginstal JavaScript reCAPTCHA menggunakan kunci token sesi. Tentukan jalur sebagai [pola glob](https://man7.org/linux/man-pages/man7/glob.7.html) dan gunakan `;` sebagai pembatas. Opsi ini hanya tersedia untuk token sesi reCAPTCHA.

Langkah berikutnya