| 選取平台: | iOS+ Android 網頁 Flutter |
本頁面說明如何使用 reCAPTCHA Enterprise 提供者,在 Apple 平台應用程式中設定 App Check。App Check 可確保只有您的應用程式能存取專案的後端資源。如要瞭解詳情,請參閱 App Check 總覽。
App Check 需要使用評分依據 reCAPTCHA鍵,因此使用者看不到。也就是說,reCAPTCHA Enterprise 供應商不會要求使用者隨時完成驗證問題。
如果您的用途需要 reCAPTCHA Enterprise 功能,但 App Check 未實作,或是想搭配自訂供應商使用 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 控制台的註冊流程中新增這項資訊。
在「應用程式」分頁中,註冊 Apple 平台應用程式,以便透過 reCAPTCHA Enterprise 供應商使用 App Check。您需要提供在 Google Cloud 控制台中取得的金鑰。
選用:設定權杖存留時間 (TTL)。
在應用程式註冊設定中,為供應商核發的 App Check 權杖設定自訂存留時間 (TTL)。您可以將存留時間設為介於 30 分鐘至 7 天之間的任何值。變更這個值時,請注意下列取捨:
- 安全性:存留時間越短,安全性就越高,因為這樣可縮短遭攔截或外洩的權杖遭到濫用的時間。
- 效能:TTL 較短表示應用程式會更頻繁地執行認證。由於應用程式驗證程序每次執行都會增加網路要求延遲,因此存留時間較短可能會影響應用程式效能。
- 配額和費用:TTL 較短且經常重新認證會更快耗盡配額,而且對於付費服務,可能需要支付更多費用。請參閱「配額與限制」。
預設 TTL 為 1 小時,適用於大多數應用程式。請注意,App Check 程式庫會在存留時間 (TTL) 約一半的時間點重新整理權杖。
選用:設定進階設定。
按一下 [儲存]。
(選用) 調整進階設定
使用者開啟應用程式時,reCAPTCHA Enterprise 會評估主要姿勢下使用者互動的風險程度,並傳回介於 0.0 和 1.0 之間的分數,以 0.1 為單位遞增。
- 0.0 分代表互動的風險高,可能是詐欺行為。
- 1.0 分代表互動的風險低,很可能是正當活動。
App Check 可讓您設定應用程式風險門檻,以便調整對這類風險的容忍度。
在多數用途中,建議使用預設門檻值 0.5。如果您的用途需要調整,可以在 Firebase 控制台中為每個應用程式設定這個值 (依序前往「安全性」 >「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、適用於 iOS 的 Google Identity、Maps JavaScript API 和 Places API (新版)。
- 監控 Cloud Functions 的 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 (新版),啟用 App Check 強制執行。
- 為 Cloud Functions 啟用 App Check 強制執行功能。
在偵錯環境中使用 App Check
App Check 會將部分環境歸類為無效,例如開發期間來自模擬器 / 模擬環境的要求,或是來自持續整合 (CI) 環境的要求。
在 App Check 強制執行後,如要在這類環境中執行應用程式,您必須建立應用程式的偵錯版本,並使用 App Check debug provider,而非實際工作環境的認證提供者。
詳情請參閱「在 Apple 平台上搭配使用 App Check 與偵錯供應器」。
定價
App Check 會代表您建立評估作業,在應用程式每次重新整理 App Check 權杖時,驗證使用者的回應權杖。如果建立的評估超過免費配額,系統會向 Firebase 專案收取費用。詳情請參閱reCAPTCHA定價。
根據預設,應用程式每 1 小時會重新整理這個權杖兩次。如要控管應用程式重新整理 App Check 權杖的頻率 (也就是建立新評估的頻率),可以設定權杖存留時間。