本頁面說明如何使用內建的 Play Integrity 供應器,在 Android 應用程式中啟用 App Check。啟用 App Check,可確保只有您的應用程式能存取專案的後端資源。查看這項功能的總覽。
Play Integrity 供應商支援在 Google Play、Google Play 以外平台,或兩者上發布的 Android 應用程式。如果您的用途需要 App Check 未實作的 Play Integrity 功能,或者您想搭配自己的自訂供應商使用 App Check,請參閱「實作自訂 App Check 供應商」。
1. 設定 Firebase 專案
如果您尚未將 Firebase 新增至 Android 專案,請先新增。
啟用 Play Integrity API:
在 Google Play 管理中心選取應用程式,或新增應用程式 (如果尚未新增)。
在「版本」部分,按一下「應用程式完整性」。
前往頁面的「Play Integrity API」部分,按一下「Link Cloud project」(連結 Cloud 專案),然後從 Google Cloud 專案清單中選取 Firebase 專案。您在此選取的專案,必須與註冊應用程式的 Firebase 專案相同 (請參閱下一步)。
在 Firebase 控制台中,依序前往「Security」(安全性) >「App Check」。
在「應用程式」分頁中,註冊應用程式,以便透過 Play Integrity 供應商使用 App Check。您必須提供應用程式簽署憑證的 SHA-256 指紋。
您通常需要註冊專案的所有應用程式,因為一旦啟用 Firebase 產品的強制執行功能,只有註冊的應用程式才能存取產品的後端資源。
選用:設定權杖存留時間 (TTL)。
在應用程式註冊設定中,為供應商核發的 App Check 權杖設定自訂存留時間 (TTL)。您可以將存留時間設為 30 分鐘到 7 天之間的任何值。變更這個值時,請注意下列取捨:
- 安全性:存留時間越短,安全性越高,因為這會縮短外洩或遭攔截的權杖可能遭攻擊者濫用的時間。
- 效能:存留時間越短,應用程式執行認證的頻率就越高。由於每次執行應用程式認證程序時,都會增加網路要求的延遲時間,因此 TTL 較短可能會影響應用程式的效能。
- 配額和費用:存留時間較短和頻繁重新認證會更快耗盡配額,如果是付費服務,費用可能會更高。請參閱「配額與限制」。
預設存留時間為 1 小時,適用於大多數應用程式。請注意,App Check 程式庫會在存留時間約過一半時重新整理權杖。
調整進階設定 (選用)
App Check 提供多項設定,可支援進階用途,包括在 Google Play 以外發行應用程式。您可以前往 Firebase 控制台的「 App Check」>「應用程式」分頁 ,為每個已註冊的 Android 應用程式進行這些設定。建議您在首次註冊應用程式時,按照下表設定這些設定。
| 應用程式的發布管道 | PLAY_RECOGNIZED | LICENSED | 可接受的最低裝置完整性等級 |
|---|---|---|---|
| Google Play 獨家 | 必填 | 必填 | 不要確切檢查裝置完整性等級 |
| 只在 Google Play 以外管道發行 | 非必要 | 非必要 | 完整性:裝置等級 |
| Google Play 內外 | 必填 | 非必要 | 不要確切檢查裝置完整性等級 |
詳細資料
每項進階設定都對應一個 Play Integrity 判定標籤。詳情請參閱 Play Integrity 說明文件。
- 根據預設,App Check 需要
PLAY_RECOGNIZED應用程式辨識標籤。未在 Google Play 發布的應用程式不符合取得這個標籤的資格。 - 根據預設,App Check 不需要
LICENSED應用程式授權標籤。只有直接從 Google Play 安裝或更新應用程式的使用者,才能獲得這個標籤。 根據預設,App Check 不會明確檢查裝置完整性判定結果。App Check 支援明確檢查下列三個裝置完整性等級,依裝置完整性遞增順序排列。
基本完整性。導致 App Check 需要
MEETS_BASIC_INTEGRITY裝置辨識標籤。如要讓應用程式符合取得這個選用標籤的資格,您必須先在 Google Play 管理中心選擇加入。裝置完整性:導致 App Check 需要
MEETS_DEVICE_INTEGRITY裝置辨識標籤。所有應用程式都自動符合取得這個標籤的資格。完整性:高。導致 App Check 需要
MEETS_STRONG_INTEGRITY裝置辨識標籤。如要讓應用程式符合取得這個選用標籤的資格,您必須先在 Google Play 管理中心選擇加入。
2. 將 App Check 程式庫新增至應用程式
在模組 (應用程式層級) Gradle 檔案 (通常是<project>/<app-module>/build.gradle.kts 或 <project>/<app-module>/build.gradle) 中,新增 Android 專用 App Check 程式庫的依附元件。建議使用 Firebase Android BoM 控制程式庫版本管理。
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:35.0.2")) // Add the dependencies for the App Check libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-playintegrity") }
只要使用 Firebase Android BoM,應用程式就會一律使用相容的 Firebase Android 程式庫版本。
(替代方案) 不使用 BoM,新增 Firebase 程式庫依附元件
如果選擇不使用 Firebase BoM,則必須在依附元件行中指定每個 Firebase 程式庫版本。
請注意,如果您的應用程式使用多個 Firebase 程式庫,強烈建議您使用 BoM 管理程式庫版本,確保所有版本都相容。
dependencies { // Add the dependencies for the App Check libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-playintegrity:20.0.0") }
3. 初始化 App Check
將下列初始化程式碼加入應用程式,讓它在使用任何 Firebase SDK 前優先執行:
Kotlin
Firebase.initialize(context = this) Firebase.appCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance(), )
Java
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance());
後續步驟
在應用程式中安裝 App Check 程式庫後,請開始向使用者發布更新後的應用程式。
更新後的用戶端應用程式會開始在向 Firebase 提出的每項要求中,一併傳送 App Check 權杖,但 Firebase 產品不會要求權杖必須有效,除非您在 Firebase 控制台的「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 後,如果您想在 App Check 通常不會歸類為有效的環境中執行應用程式,例如開發期間的模擬器,或持續整合 (CI) 環境,可以建立應用程式的偵錯版本,使用 App Check 偵錯服務,而非實際認證服務。
請參閱「在 Android 上搭配偵錯服務使用 App Check」。