| 選取平台: | iOS+ Android 網頁 Flutter |
本頁面說明如何使用 reCAPTCHA Enterprise 供應商,在 Apple 平台應用程式中設定 App Check。App Check 有助於確保只有您的應用程式可以存取專案的後端資源。如要瞭解詳情,請參閱 總覽 App Check。
App Check 必須使用評分型 reCAPTCHA 金鑰,因此使用者不會看到。這表示 reCAPTCHA Enterprise 提供者不會要求使用者解決驗證問題。
如果您的用途需要 App Check 未實作的 reCAPTCHA Enterprise 功能,或者您想搭配自訂供應器使用 App Check,請參閱「實作自訂 App Check 供應器」。
1. 設定 Firebase 專案
如果您尚未將 Firebase 新增至 Apple 專案,請先新增。
前往 Google Cloud 控制台的「 Fraud Defense」頁面, 然後對 reCAPTCHA Enterprise 供應商執行下列操作:
確認您位於正確的專案 (請查看畫面頂端的專案挑選器)。
如果出現提示訊息,請啟用 reCAPTCHA Enterprise API。
建立 iOS 類型的金鑰,並指定應用程式的軟體包 ID (例如
com.example.my_app)。請務必輸入在 Firebase 專案中建立 Firebase Apple 應用程式時提供的軟體包 ID。軟體包 ID 值須區分大小寫。
如果是 App Check,每個軟體包 ID 只能對應一個 reCAPTCHA 金鑰。
如需詳細操作說明,請參閱「建立以分數為基礎的 reCAPTCHA 金鑰」。
請記下這組金鑰。您必須在 Firebase 控制台的註冊流程中加入這項資訊。
在 Firebase 控制台中,依序前往「Security」(安全性) >「App Check」。
在「Apps」分頁中,註冊 Apple 平台應用程式,以便搭配 reCAPTCHA Enterprise 供應商使用 App Check。您必須提供在 Google Cloud 控制台取得的金鑰。
選用:設定權杖存留時間 (TTL)。
在應用程式註冊設定中,為供應商核發的 App Check 權杖設定自訂存留時間 (TTL)。您可以將存留時間設為 30 分鐘到 7 天之間的任何值。變更這個值時,請注意下列取捨:
- 安全性:存留時間越短,安全性越高,因為這會縮短外洩或遭攔截的權杖可能遭攻擊者濫用的時間。
- 效能:存留時間越短,應用程式執行認證的頻率就越高。由於每次執行應用程式認證程序時,都會增加網路要求的延遲時間,因此 TTL 較短可能會影響應用程式的效能。
- 配額和費用:存留時間較短和頻繁重新認證會更快耗盡配額,如果是付費服務,費用可能會更高。請參閱「配額與限制」。
預設存留時間為 1 小時,適用於大多數應用程式。請注意,App Check 程式庫會在存留時間約過一半時重新整理權杖。
選用:調整進階設定。
按一下 [儲存]。
(選用) 調整進階設定
使用者開啟應用程式時,reCAPTCHA Enterprise 會評估金鑰下使用者互動帶來的風險等級,並傳回 0.0 到 1.0 之間的分數,以 0.1 為單位遞增。
- 0.0 分則代表互動的風險高,可能是詐欺行為。
- 1.0 分代表互動的風險低,很可能是正當活動。
App Check 可讓您設定應用程式風險門檻,以便調整對這項風險的容忍度。
在多數情況下,建議使用預設門檻值 0.5。如果您的用途需要調整, 可以在 Firebase 控制台中為每個 應用程式設定這個值 (依序前往「Security」> 「App Check」)。 請務必展開並詳閱下方設定應用程式風險門檻的重要注意事項。
2. 在應用程式中加入 App Check SDK
使用 Swift Package Manager (SPM) 安裝及管理 Firebase 依附元件。如果您已使用 Firebase,請確認 Firebase 套件為 12.17.0 以上版本。
在 Xcode 中開啟應用程式專案。
新增 Firebase 程式庫:
依序前往「File」>「Add Packages」。
系統提示時,請新增 Firebase Apple 平台 SDK 存放區:
https://github.com/firebase/firebase-ios-sdk選取最新版 SDK (12.17.0 以上版本)。
選取
FirebaseAppCheck程式庫。按一下「新增套件」。Xcode 會解析並下載依附元件。
畫面上出現提示時,請將程式庫新增至應用程式目標。
新增 reCAPTCHA Enterprise 程式庫:
依序返回「File」>「Add Packages」
系統提示時,請新增 reCAPTCHA Enterprise SDK 存放區:
https://github.com/GoogleCloudPlatform/recaptcha-enterprise-mobile-sdk選取
RecaptchaEnterprise程式庫。按一下「新增套件」。系統提示時,請將程式庫新增至應用程式目標。
3. 初始化 App Check
在應用程式中,您必須先初始化 App Check,才能使用任何其他 Firebase 服務。
建立 RecaptchaProviderFactory 例項,傳入 reCAPTCHA 金鑰,然後設定 App Check 使用該金鑰:
let providerFactory = RecaptchaProviderFactory(siteKey: "SITE_KEY")
AppCheck.setAppCheckProviderFactory(providerFactory)
FirebaseApp.configure()
4. 監控指標並啟用強制執行
在應用程式中設定 App Check 後,請開始向使用者發布更新後的應用程式。
更新後的用戶端應用程式會開始傳送 App Check 權杖,以及向 Firebase 發出的每項要求。不過,App Check 會等到App Check 進入強制執行狀態,才會封鎖權杖無效的要求。
監控指標
啟用強制執行功能前,請確認這麼做不會干擾現有的合法使用者。不過,如果發現應用程式資源有可疑的使用情形,建議您盡早啟用強制執行功能。
為協助您做出決定,您可以查看所用服務的 App Check 指標:
- 監控 App Check 要求指標:Firebase AI Logic、SQL Connect、Realtime Database、Cloud Firestore、Cloud Storage、Authentication、Google Identity for iOS、Maps JavaScript API 和 Places API (新版)。
- 監控 Cloud Functions 的 App Check 要求指標。
啟用App Check違規處置
瞭解 App Check 對使用者的影響,並準備好繼續操作後,即可啟用 App Check 強制執行:
- 啟用 App Check 違規處置:Firebase AI Logic、SQL Connect、Realtime Database、Cloud Firestore、Cloud Storage、Authentication、Google Identity for iOS、Maps JavaScript API 和 Places API (新版)。
- 為 Cloud Functions 啟用 App Check 違規處置。
在偵錯環境中使用 App Check
App Check 會將某些環境歸類為無效,例如開發期間來自模擬器 / 模擬器的要求,或來自持續整合 (CI) 環境的要求。
如要在強制執行 App Check 後,於這類環境中執行應用程式,您必須建立應用程式的偵錯版本,並使用 App Check 偵錯服務,而非正式版認證服務。
詳情請參閱「在 Apple 平台搭配使用 App Check 和偵錯服務」。
定價
每當應用程式重新整理 App Check 權杖時,App Check 會代您建立評估作業,驗證使用者的回應權杖。如果建立的評估數量超過免付費配額,Firebase 專案會產生費用。詳情請參閱「reCAPTCHA 定價」。
根據預設,應用程式每 1 小時會重新整理這個權杖兩次。如要控管應用程式重新整理 App Check 權杖的頻率 (進而控管建立新評估作業的頻率),您可以設定權杖存留時間。