Firebase App Check
App Check 可防止未經授權的用戶端存取後端資源,進而保護應用程式後端免於遭到濫用。這項服務可搭配 Google 服務 (包括 Firebase 和 Google Cloud 服務) 和您自己的自訂後端使用,確保資源安全無虞。
使用 App Check 時,執行應用程式的裝置會使用應用程式或裝置認證提供者,以便對下列一或兩項項目進行認證:
- 要求來自您已驗證的應用程式
- 要求來自未經竄改的真實裝置
這項認證會附加至應用程式對您指定 API 發出的每項要求。啟用 App Check 強制執行功能後,系統會拒絕來自沒有有效認證的用戶端要求,以及來自您未授權的應用程式或平台的任何要求。
App Check 內建支援功能,可將下列服務用作認證提供者:
- 在 Apple 平台上使用 DeviceCheck 或 App Attest
- Android 版 Play Integrity
- 在網頁應用程式中使用 reCAPTCHA Enterprise。
如果這些服務無法滿足您的需求,您也可以實作自己的服務,使用第三方認證服務供應商或您自己的認證技術。
App Check 可與下列 Google 服務搭配使用:
支援的 Firebase 和 Google Cloud 服務 |
---|
Firebase Authentication (預先發布版) |
Firebase Data Connect |
Cloud Firestore |
Firebase Realtime Database |
Cloud Storage for Firebase |
Cloud Functions for Firebase (僅限可呼叫的函式) |
Vertex AI in Firebase |
支援的 Google 地圖平台服務 |
Maps JavaScript API (預先發布版) |
Places API (新版) (預先發布版) |
其他支援的 Google 服務 |
Google Identity for iOS |
您也可以使用 App Check 保護非 Google 自訂後端資源,例如您自行管理的後端。
運作原理
為服務啟用 App Check,並在應用程式中加入用戶端 SDK 後,系統會定期執行下列操作:
- 應用程式會與您選擇的供應商互動,取得應用程式或裝置的真實性認證 (或兩者皆是,視供應商而定)。
- 認證會傳送至 App Check 伺服器,後者會使用應用程式註冊的參數驗證認證的有效性,並傳回具有到期時間的 App Check 權杖給應用程式。此權杖可能會保留已驗證的認證資料相關資訊。
- App Check 用戶端 SDK 會在應用程式中快取權杖,隨時準備與應用程式向受保護服務提出的任何要求一併傳送。
受 App Check 保護的服務只會接受附帶有效的目前 App Check 權杖要求。
App Check 提供的安全性有多強?
App Check 會依據其認證服務供應商的強度,判斷應用程式或裝置的真實性。這項功能可防止部分濫用行為向後端發動攻擊,但並非全部。使用 App Check 無法保證能完全杜絕濫用行為,但透過整合 App Check,您已朝著保護後端資源免於遭受濫用行為的目標邁進了一大步。
App Check 與 Firebase Authentication 有何關聯?
App Check 和 Firebase Authentication 是應用程式安全性策略的互補部分。Firebase Authentication 提供使用者驗證,可保護使用者;App Check 則提供應用程式或裝置真實性的認證,可保護開發人員。App Check 會要求 API 呼叫包含有效的 App Check 權杖,藉此保護 Google 後端資源和自訂後端的存取權。這兩個概念相輔相成,有助於確保應用程式的安全。
配額與限制
使用 App Check 時,必須遵守所用認證服務供應商的配額和限制。
DeviceCheck 和 App Attest 存取權會受到 Apple 設定的配額或限制的約束。
Play Integrity 的標準 API 用量層級每日配額為 10,000 個呼叫。如要瞭解如何提高用量層級,請參閱 Play Integrity 說明文件。
reCAPTCHA Enterprise 每月可免費進行 10,000 次評估,超過這個數量就會產生費用。請參閱 reCAPTCHA 定價。
開始使用
準備踏出第一步了嗎?
Apple 平台
Android
網頁
Flutter
Unity
C++
瞭解如何實作自訂 App Check 供應器
瞭解如何使用 App Check 保護自訂後端資源
選取平台:
iOS+ Android 網頁版 Flutter Unity C++