開始在 Android 上使用 App Check 和 Play Integrity

本頁面將說明如何使用 內建 Play Integrity 供應商功能啟用 App Check 之後 確保只有您的應用程式可以存取專案的 Firebase 資源。查看 這項功能的總覽

內建 Play Integrity 供應商目前僅支援 Android 應用程式 發行的 Google Play 遊戲。使用 Play Integrity 的非 Google Play 功能,或 使用您的自訂供應商 App Check,請參閱 導入自訂 App Check 供應商

1. 設定 Firebase 專案

  1. 將 Firebase 新增至您的 Android 專案 (如果您尚未這麼做) 已完成其他驗證步驟

  2. 啟用 Play Integrity API:

    1. Google Play 管理中心中, 選取您的應用程式;如果尚未新增應用程式,則新增。

    2. 在「版本」部分,按一下「應用程式完整性」

    3. 前往頁面的「Play Integrity API」部分,按一下「連結 Cloud 專案」。 然後從 Google Cloud 專案清單中選取您的 Firebase 專案。 您在這裡選取的專案必須與 Firebase 專案相同 註冊應用程式 (請參閱下一個步驟)。

  3. 在以下位置註冊應用程式,以便透過 Play Integrity 供應商使用 App Check: App Check (應用程式檢查) 部分 也可前往 Firebase 控制台您需要提供 SHA-256 指紋 應用程式的簽署憑證

    通常您需要註冊專案的所有應用程式,因為 允許對 Firebase 產品強制執行;只有已註冊的應用程式可以 存取產品的後端資源

  4. 選用:在應用程式註冊設定中自訂存留時間 (存留時間),適用於供應商核發的 App Check 權杖。您可以設定存留時間 設為 30 分鐘至 7 天之間的任何值。變更這個值時, 瞭解下列優缺點:

    • 安全性:較短的存留時間可提高安全性,因為這麼做能減少 出現安全漏洞,可能導致權杖遭到洩漏或攔截 攻擊者
    • 效能:縮短存留時間 (TTL) 越短,應用程式就越能執行認證 經常更新因為應用程式認證程序會增加網路延遲時間 因此短暫的存留時間 (TTL) 可能會影響效能
    • 配額與費用:縮短存留時間 (TTL) 和頻繁的重新認證作業,皆會破壞您的 配額更快,而如果是付費服務,費用可能更高。 請參閱配額與上限

    預設存留時間 1 小時 對大多數應用程式而言都是合理的做法。請注意,系統會重新整理 App Check 程式庫 權杖的 75 倍。

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:33.1.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 程式庫版本。

(替代做法) 新增 Firebase 程式庫依附元件,「不使用」BoM

如果選擇不使用 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:18.0.0")
}
在尋找 Kotlin 專用的程式庫模組嗎?距離開始還有 2023 年 10 月 (Firebase BoM 32.5.0),Kotlin 和 Java 開發人員都能 依附於主要程式庫模組 (詳情請參閱 這項計畫的常見問題)。

3. 初始化 App Check

將下列初始化程式碼新增至應用程式,讓應用程式在使用前執行 其他 Firebase SDK:

Kotlin+KTX

Firebase.initialize(context = this)
Firebase.appCheck.installAppCheckProviderFactory(
    PlayIntegrityAppCheckProviderFactory.getInstance(),
)

Java

FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
        PlayIntegrityAppCheckProviderFactory.getInstance());

後續步驟

在應用程式中安裝 App Check 程式庫後,即可開始發布 為使用者提供了最新的應用程式

更新後的用戶端應用程式會開始傳送 App Check 權杖和 但 Firebase 產品不需要權杖 您必須在 Firebase 控制台。

監控指標並啟用強制執行功能

不過,啟用強制執行功能之前,請先確認這項操作不會 幹擾現有的合法使用者另一方面,如果您發現 如果您對應用程式資源都很可疑,不妨啟用強制執行功能

為做出這項決定,您可以查看 App Check 指標: 您使用的服務:

啟用強制執行 App Check

瞭解 App Check 對使用者的影響後,您就能做好準備 下一步,您可以啟用 App Check 強制執行功能:

在偵錯環境中使用 App Check

只要在應用程式註冊 App Check 後, 應用程式所在的環境中,App Check 通常不會歸類為有效應用程式。 例如開發期間的模擬器,或從持續整合 (CI) 擷取而來 您就能為應用程式建立偵錯版本,該應用程式會使用 App Check 偵錯供應器,而非真正的認證提供者。

請參閱「搭配 Android 偵錯供應商使用 App Check」一文。