從 reCAPTCHA Classic 遷移

本文說明如何將Google Cloud 專案中的有效網站金鑰,從 reCAPTCHA 傳統版遷移至 reCAPTCHA。您可以透過reCAPTCHA 管理控制台 (建議) 或控制台 Google Cloud 遷移網站金鑰。遷移程序需要 5 到 10 分鐘才能完成,且不需要變更任何程式碼。

如果您在 reCAPTCHA 管理控制台中管理金鑰, 則表示您使用的是 reCAPTCHA Classic。 最新的 reCAPTCHA 功能僅適用於 Google Cloud 專案中管理的網站金鑰。如要進一步瞭解可用功能,請參閱「比較 reCAPTCHA 層級」。

完成遷移程序後,會發生下列異動:

  • 您的網站金鑰會保留在專案中,不會有任何變更。 Google Cloud
  • 現有的 reCAPTCHA 整合功能會繼續運作,您無須變更程式碼。您可以保留相同的網頁檢測和後端呼叫。不過,如要使用 Account Defense 或 Password Defense 等功能,則必須修改網頁檢測和後端呼叫。詳情請參閱「改用 reCAPTCHA Enterprise API 後如何使用功能」。
  • 如果超過 reCAPTCHA 的每月免費配額 (每月 10,000 次評估),系統就會向您收費。詳情請參閱「帳單資訊」。

使用 reCAPTCHA 管理控制台遷移

  1. 前往 reCAPTCHA 管理控制台。

    前往 reCAPTCHA 管理控制台

  2. 選取要遷移金鑰的專案。

  3. 選取要遷移的金鑰。

  4. 按一下「提交」。

Google Cloud 控制台隨即開啟,並顯示專案和已遷移的金鑰。

使用 Google Cloud 控制台遷移

事前準備

  1. 在 Google Cloud 控制台的專案選擇器頁面中,選取或建立 Google Cloud 專案。

    選取或建立專案所需的角色

    • 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您在專案中獲派角色,即可選取該專案。
    • 建立專案:如要建立專案,您需要專案建立者角色 (roles/resourcemanager.projectCreator),其中包含 resourcemanager.projects.create 權限。瞭解如何授予角色。

    前往專案選取器

  2. 確認 Google Cloud 專案已啟用計費功能。

    如要遷移,reCAPTCHA 必須在專案中連結並啟用計費功能。您可以使用信用卡或現有的 Google Cloud 專案帳單 ID 啟用計費功能。如需帳單方面的協助,請與 Cloud Billing 支援團隊聯絡。

  3. 如要在 Google Cloud 控制台以外執行 gcloud CLI,請安裝並初始化 gcloud CLI。如需操作說明,請參閱

    安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:

    gcloud init

    如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。

啟用 reCAPTCHA Enterprise API

所有 reCAPTCHA 層級 (Essentials、Premium 和 Enterprise) 都使用 reCAPTCHA Enterprise API 運作。

控制台

  1. 前往 Google Cloud 控制台的「reCAPTCHA Enterprise API」頁面。

    前往 reCAPTCHA Enterprise API

  2. 確認頁面頂端的專案選取器中顯示專案名稱。

    如果沒有看到專案名稱,請按一下專案選取器,然後選取專案。

  3. 按一下「啟用」。

gcloud

  1. 在 Google Cloud 控制台中啟用 Cloud Shell。

    啟用 Cloud Shell

    Google Cloud 控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已設定適用於您目前專案的值。工作階段可能要幾秒鐘的時間才能初始化。

  2. 如要在 gcloud 工作階段中設定 Google Cloud 專案,請執行 gcloud config set project 指令。將 PROJECT_ID 替換為 Google Cloud 專案 ID。
           gcloud config set project PROJECT_ID
           
  3. 如要啟用 reCAPTCHA Enterprise API,請執行 gcloud services enable 指令:
             gcloud services enable recaptchaenterprise.googleapis.com
           
  4. 如要確認 reCAPTCHA Enterprise API 是否已啟用,請執行 gcloud services list 指令:
             gcloud services list --enabled
           

    確認 reCAPTCHA Enterprise API 已列在已啟用 API 清單中。

遷移至 reCAPTCHA

如要將 reCAPTCHA 傳統版遷移至 reCAPTCHA,請從 reCAPTCHA 管理控制台選擇有效的網站金鑰,然後遷移該金鑰。您可以遷移一或多個有效的網站金鑰。不過,一次只能遷移一個網站金鑰。

如要執行遷移程序,您必須擁有符合下列條件的 reCAPTCHA 使用者帳戶:

  • 在 reCAPTCHA 管理控制台中,使用者帳戶會列為要遷移的網站金鑰擁有者。
  • 使用者帳戶在啟用 reCAPTCHA Enterprise API 的專案中,具有下列其中一個 IAM 角色: Google Cloud
    • 專案擁有者 (roles/owner)
    • 專案編輯者 (roles/editor)
    • reCAPTCHA 管理員 (roles/recaptchaenterprise.admin)
    如果您的使用者帳戶不具備上述任一角色,請要求管理員授予角色,或按照「授予、變更和撤銷存取權」中的操作說明進行。
  1. 使用 Google Cloud 控制台、Google Cloud CLI 或 reCAPTCHA Enterprise API 遷移網站金鑰。

    遷移網站金鑰不會影響金鑰或 API 端點,只會將金鑰新增至企業授權。

    Google Cloud 控制台

    1. 前往 Google Cloud 控制台的「reCAPTCHA」reCAPTCHA頁面。

      前往 reCAPTCHA

    2. 確認頁面頂端的資源選取器中顯示了專案名稱。如果沒有看到專案名稱,請按一下資源選取器,然後選取專案。

    3. 選取「金鑰」分頁標籤。

    4. 在「傳統金鑰」部分,找出要遷移的金鑰,然後點選「升級金鑰」。

    5. 如要完成所選金鑰的遷移作業,請按一下「確認」。

    gcloud CLI

    1. 如要設定驗證,請執行下列 gcloud 指令:

      gcloud auth login
      

      使用擁有選定網站金鑰的 reCAPTCHA 使用者帳戶登入,並具備下列其中一個角色:專案擁有者、專案編輯者或 reCAPTCHA Enterprise 管理員角色。

    2. 選擇並複製您用來整合 reCAPTCHA 與網頁的有效網站金鑰:

      1. 前往 reCAPTCHA 管理控制台,然後按一下「」。
      2. 選擇網站金鑰。支援遷移的 reCAPTCHA 網站金鑰包括:reCAPTCHA v2 核取方塊、reCAPTCHA v2 隱形和 reCAPTCHA v3。

      3. 如要複製網站金鑰,請按一下「複製網站金鑰」。

    3. 遷移網站金鑰。

      使用 gcloud recaptcha keys migrate 指令,如下列範例所示:

       gcloud recaptcha keys migrate SITE_KEY --project PROJECT-ID
      

      提供以下這些值:

      • SITE_KEY:您從 reCAPTCHA 管理控制台複製的有效網站金鑰。
      • PROJECT-ID:已啟用 reCAPTCHA Enterprise API 的 Google Cloud 專案 ID。

    REST API

    1. 選擇並複製您用來將 reCAPTCHA 整合至網頁的有效網站金鑰:

      1. 前往 reCAPTCHA 管理控制台,然後按一下 。
      2. 選擇網站金鑰。遷移作業支援下列 reCAPTCHA 網站金鑰:reCAPTCHA v2 核取方塊、reCAPTCHA v2 隱形和 reCAPTCHA v3。

      3. 如要複製網站金鑰,請按一下「複製網站金鑰」。

    2. 遷移網站金鑰。 <

      使用任何要求資料之前,請先修改下列項目的值:

      • PROJECT_ID:已啟用 reCAPTCHA API 的 Google Cloud 專案 ID。
      • SITE_KEY:從 reCAPTCHA 管理控制台複製的有效網站金鑰。

      HTTP 方法和網址:

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

      如要傳送要求,請選擇以下其中一個選項:

      curl

      執行下列指令:

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

      PowerShell

      執行下列指令:

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

      Invoke-WebRequest `
      -Method POST `
      -Headers $headers `
      -Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys/SITE_KEY:migrate" | Select-Object -Expand Content

      您應該會收到如下的 JSON 回覆:

      {
        "name": "projects/PROJECT-ID/keys/6Ldqgs0UAAAAAIn4k7YxEB-LwEh5S9-Gv6IIWB8m",
        "displayName": "My site key",
        "webSettings": {
          "allowAllDomains": false,
          "allowedDomains": [
            recaptcha.net
          ],
          "allowAmpTraffic": false,
          "integrationType": "SCORE",
          "challengeSecurityPreference": "CHALLENGE_SECURITY_PREFERENCE_UNSPECIFIED"
        }
      }
      

  2. 如要確認網站金鑰已遷移,請按照下列步驟操作:

    Google Cloud 控制台

    前往 reCAPTCHA 頁面,選取「金鑰」分頁,然後在「reCAPTCHA 金鑰」部分中找到已遷移的網站金鑰。

    前往 reCAPTCHA

    gcloud CLI

    執行 gcloud recaptcha keys list 指令,並在金鑰清單中找出已遷移的網站金鑰。

遷移至 reCAPTCHA 後,您可以繼續使用 siteverify 方法,評估使用者的 reCAPTCHA 回應權杖。如要瞭解回應相關資訊,請參閱「siteverify method 的回應」。

網站金鑰遷移至 reCAPTCHA 後,系統會開始記錄使用情況,並在 1 小時內顯示在 Google Cloud 控制台中,包括用量和分數相關資訊主控台。一般來說, Google Cloud 控制台不會顯示遷移前的用量。

您可以從 reCAPTCHA 使用者帳戶撤銷 reCAPTCHA Enterprise 管理員 (roles/recaptchaenterprise.admin) IAM 角色。你可以請管理員撤銷存取權, 或按照「授予、變更及撤銷存取權」一文中的操作說明進行。

後續步驟