Firebase App Check
App Check 可防止未經授權的用戶端存取您的後端資源,藉此防止 API 資源遭到濫用。此服務能與 Google 服務 (包括 Firebase 和 Google Cloud 服務) 和您自己的 API 搭配運作,確保您的資源安全無虞。
透過 App Check,執行應用程式的裝置會使用應用程式或裝置認證提供者,通過下列其中一項或兩項認證:
- 正版應用程式發出的要求
- 要求來自未經竄改的真實裝置
此認證會附加至應用程式對指定 API 發出的每個要求。強制執行 App Check 後,系統會拒絕沒有有效認證的用戶端要求,以及來自未經您授權的應用程式或平台的任何要求。
App Check 內建支援功能,可將下列服務做為認證提供者:
- Apple 平台上的 DeviceCheck 或 App Attest
- Android 版 Play Integrity 或 SafetyNet (已淘汰)
- reCAPTCHA Enterprise。
如果這些方法已不滿足您的需求,您也可以使用第三方認證提供者或自己的認證技術,自行實作服務。
App Check 可與下列 Google 服務搭配使用:
支援的 Google 服務 |
---|
即時資料庫 |
Cloud Firestore |
Cloud Storage |
Cloud Functions (可呼叫的函式) |
驗證 (Beta 版;必須升級至透過 Identity Platform 使用 Firebase 驗證) |
iOS 版 Google Identity (Beta 版) |
Vertex AI for Firebase (預先發布版) |
您也可以使用 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 驗證有何關聯?
App Check 和 Firebase 驗證是應用程式安全性故事的相輔相成的一部分。Firebase 驗證提供使用者驗證機制,可保護使用者;App Check 則提供應用程式或裝置驗證的認證,可保護你和開發人員。App Check 會要求 API 呼叫必須包含有效的 App Check 權杖,以保護 Google 後端資源和自訂後端的存取權。這兩個概念會彼此搭配運作,協助您保護應用程式。
配額與限制
使用 App Check 時,必須遵守您使用的認證提供者的配額和限制。
DeviceCheck 和 App Attest 的存取權必須遵守 Apple 設定的任何配額或限制。
Play Integrity 的標準 API 用量層級是每日 10,000 次呼叫的配額。如要瞭解如何提高用量層級,請參閱 Play Integrity 說明文件。
SafetyNet 的每日呼叫配額為 10,000 次。如要瞭解如何要求提高配額,請參閱 SafetyNet 說明文件。
reCAPTCHA Enterprise 每月可收取 100 萬次呼叫的費用,超出此額度的費用。詳情請參閱 reCAPTCHA Enterprise 定價。
開始探索
準備好開始使用了嗎?
Apple 平台
Android
網站
Flutter
C++
Unity
瞭解如何導入自訂 App Check 供應商:
瞭解如何使用 App Check 保護非 Google 的後端資源: