從 reCAPTCHA Classic 遷移

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

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

完成遷移程序後,系統會進行下列變更:

  • 您的網站金鑰會顯示在專案中, Google Cloud 不會有任何變更。
  • 現有的 reCAPTCHA 整合功能會繼續運作,您無須變更程式碼。您可以保留相同的網頁檢測和後端呼叫。不過,如要使用帳戶防護工具或 Password Defense 等功能,必須修改網頁檢測和後端呼叫。詳情請參閱「遷移後使用 reCAPTCHA 功能」。
  • 如果超過 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 工作階段中設定專案,請執行 gcloud config set project Google Cloud 指令。將 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. 如要完成所選金鑰的遷移作業,請按一下「確認」

    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 的專案 ID。 Google Cloud

    REST API

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

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

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

    2. 遷移網站金鑰。

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

      • PROJECT_ID:已啟用 reCAPTCHA API 的專案 ID。 Google Cloud
      • 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 角色。你可以請管理員撤銷存取權,或按照「授予、變更及撤銷存取權」一文中的說明操作。

後續步驟