本文說明如何將有效網站金鑰從 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 管理控制台遷移
前往 reCAPTCHA 管理控制台。
選取要將金鑰遷移至的專案。
選取要遷移的金鑰。
按一下「提交」。
Google Cloud 控制台會開啟專案和您遷移的金鑰。
使用 Google Cloud 控制台遷移
事前準備
-
在 Google Cloud 控制台的專案選擇器頁面中,選取或建立 Google Cloud 專案。
選取或建立專案所需的角色
- 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
-
建立專案:如要建立專案,您需要具備專案建立者角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
-
如要遷移 reCAPTCHA,專案必須連結並啟用帳單。你可以使用信用卡或現有 Google Cloud 專案帳單 ID 啟用帳單功能。如需帳單方面的協助,請與 Cloud Billing 支援團隊聯絡。
- 如要在 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 運作。
控制台
前往 Google Cloud 控制台的「reCAPTCHA Enterprise API」頁面。
確認頁面頂端的專案選取器中顯示專案名稱。
如果沒有看到專案名稱,請按一下專案選取器,然後選取專案。
- 按一下「啟用」。
gcloud
-
在 Google Cloud 控制台中啟用 Cloud Shell。
Google Cloud 主控台底部會開啟一個 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
- 如要在 gcloud 工作階段中設定專案,請執行
gcloud config set projectGoogle Cloud 指令。將 PROJECT_ID 替換為 Google Cloud 專案 ID。gcloud config set project PROJECT_ID - 如要啟用 reCAPTCHA Enterprise API,請執行
gcloud services enable指令:gcloud services enable recaptchaenterprise.googleapis.com - 如要確認 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)
- 專案擁有者 (
使用 Google Cloud 控制台、Google Cloud CLI 或 reCAPTCHA Enterprise API 遷移網站金鑰。
遷移網站金鑰不會影響金鑰或 API 端點,只會將金鑰新增至企業授權。
Google Cloud 控制台
前往 Google Cloud 控制台的「reCAPTCHA」reCAPTCHA頁面。
確認頁面頂端的資源選取器中顯示了專案名稱。如果沒有看到專案名稱,請按一下資源選取器,然後選取專案。
在「傳統金鑰」部分,找出要遷移的金鑰,然後按一下「升級金鑰」。
如要完成所選金鑰的遷移作業,請按一下「確認」。
gcloud CLI
如要設定驗證,請執行下列
gcloud指令:gcloud auth login使用擁有選定網站金鑰的 reCAPTCHA 使用者帳戶登入,並具備下列其中一個角色:專案擁有者、專案編輯者或 reCAPTCHA Enterprise 管理員角色。
選擇並複製您用來整合 reCAPTCHA 與網頁的有效網站金鑰:
- 前往 reCAPTCHA 管理控制台,然後按一下 。
選擇網站金鑰。遷移作業支援下列 reCAPTCHA 網站金鑰:reCAPTCHA v2 核取方塊、reCAPTCHA v2 隱形和 reCAPTCHA v3。
如要複製網站金鑰,請按一下「複製網站金鑰」。
遷移網站金鑰。
使用
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
選擇並複製您用來整合 reCAPTCHA 與網頁的有效網站金鑰:
- 前往 reCAPTCHA 管理控制台,然後按一下 。
選擇網站金鑰。遷移作業支援下列 reCAPTCHA 網站金鑰:reCAPTCHA v2 核取方塊、reCAPTCHA v2 隱形和 reCAPTCHA v3。
如要複製網站金鑰,請按一下「複製網站金鑰」。
遷移網站金鑰。
使用任何要求資料之前,請先修改下列項目的值:
- 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" } }
如要確認網站金鑰已遷移,請按照下列步驟操作:
Google Cloud 控制台
前往 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 角色。你可以請管理員撤銷存取權,或按照「授予、變更及撤銷存取權」一文中的說明操作。