此頁面向您展示如何使用內置的 SafetyNet 提供程序在 Android 應用程序中啟用 App Check。當您啟用 App Check 時,您有助於確保只有您的應用可以訪問您項目的 Firebase 資源。請參閱此功能的概述。
App Check 將繼續支持現有的 SafetyNet 項目,直到 2023 年 6 月,之後,SafetyNet 配置將被凍結且不可修改。 2024 年 6 月之後,所有 SafetyNet 功能將永久關閉並刪除。
如果您想將 App Check 與您自己的自定義提供程序一起使用,請參閱實施自定義 App Check 提供程序。
1. 設置您的 Firebase 項目
在 Firebase 控制台的App Check部分註冊您的應用以使用 SafetyNet 提供商的 App Check。您需要提供應用簽名證書的 SHA-256 指紋。
您通常需要註冊所有項目的應用程序,因為一旦您為 Firebase 產品啟用強制執行,只有註冊的應用程序才能訪問該產品的後端資源。
可選:在應用程序註冊設置中,為提供商頒發的 App Check 令牌設置自定義生存時間 (TTL)。您可以將 TTL 設置為 30 分鐘到 7 天之間的任何值。更改此值時,請注意以下權衡:
- 安全性:較短的 TTL 提供更強的安全性,因為它減少了攻擊者可以濫用洩漏或攔截令牌的窗口。
- 性能:更短的 TTL 意味著您的應用程序將更頻繁地執行證明。由於每次執行應用證明過程都會增加網絡請求的延遲,因此較短的 TTL 會影響應用的性能。
- 配額和成本:較短的 TTL 和頻繁的重新證明會更快地耗盡您的配額,而對於付費服務,可能會花費更多。請參閱配額和限制。
1 小時的默認 TTL 對於大多數應用程序來說是合理的。請注意,App Check 庫會在 TTL 持續時間的一半左右刷新令牌。
2.將App Check庫添加到您的應用中
在您的模塊(應用級)Gradle 文件(通常是app/build.gradle
)中,聲明 App Check Android 庫的依賴項:
Kotlin+KTX
dependencies {
implementation 'com.google.firebase:firebase-appcheck-safetynet:16.1.2'
}
Java
dependencies {
implementation 'com.google.firebase:firebase-appcheck-safetynet:16.1.2'
}
3.初始化App Check
將以下初始化代碼添加到您的應用程序,以便它在您使用任何其他 Firebase SDK 之前運行:
Kotlin+KTX
Firebase.initialize(context = this) val firebaseAppCheck = FirebaseAppCheck.getInstance() firebaseAppCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance(), )
Java
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance());
下一步
在您的應用程序中安裝 App Check 庫後,開始將更新後的應用程序分發給您的用戶。
更新後的客戶端應用程序將開始發送 App Check 令牌及其向 Firebase 發出的每個請求,但 Firebase 產品不會要求令牌有效,直到您在 Firebase 控制台的 App Check 部分啟用強制執行。
監控指標並啟用強制執行
但是,在您啟用強制執行之前,您應該確保這樣做不會干擾您現有的合法用戶。另一方面,如果您發現對應用資源的可疑使用,您可能希望盡快啟用強制措施。
為幫助做出此決定,您可以查看您使用的服務的 App Check 指標:
- 監控實時數據庫、Cloud Firestore、Cloud Storage 和身份驗證(測試版)的 App Check 請求指標。
- 監控 Cloud Functions 的 App Check 請求指標。
啟用 App Check 強制執行
當您了解 App Check 將如何影響您的用戶並準備好繼續操作時,您可以啟用 App Check 強制執行:
- 為實時數據庫、Cloud Firestore、Cloud Storage 和身份驗證啟用 App Check 強制執行(測試版)。
- 為 Cloud Functions 啟用 App Check 強制執行。
在調試環境中使用 App Check
如果在為 App Check 註冊您的應用程序後,您希望在 App Check 通常不會歸類為有效的環境中運行您的應用程序,例如開發期間的模擬器,或來自持續集成 (CI) 環境,您可以創建您的應用程序的調試版本,使用 App Check 調試提供程序而不是真正的證明提供程序。
請參閱將 App Check 與 Android 上的調試提供程序一起使用。