開始在 Apple 平台上,搭配使用 App Check 和 App Attest

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

App Check 使用 App Attest ,驗證對 Firebase 服務的要求是否來自真實的應用程式。 App Check 目前不會將 App Attest 用於 分析詐欺風險

如要將 App Check 與自訂服務供應商搭配使用,請參閱 導入自訂 App Check 供應商

1. 設定 Firebase 專案

  1. 您需要 Xcode 12.5 以上版本才能使用 App Attest。

  2. 如果您尚未將 Firebase 新增至 Apple 專案,請先完成這項操作。 完成。

  3. 在以下位置註冊應用程式,以便搭配 App Attest 供應商使用 App Check: App Check (應用程式檢查) Firebase 控制台。

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

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

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

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

2. 在應用程式中加入 App Check 程式庫

  1. 將 App Check 的依附元件新增至專案的 Podfile

    pod 'FirebaseAppCheck'

    或者,您也可以使用 Swift 套件 Manager

    請確認也使用任何其他 Firebase SDK 的最新版本 重要的一環

  2. 執行 pod install,然後開啟建立的 .xcworkspace 檔案。

  3. 在 Xcode 中,將 App Attest 功能新增至應用程式。

  4. 在專案的 .entitlements 檔案中,將 App Attest 環境設為 production

3. 初始化 App Check

您必須先初始化 App Check,才能使用其他 Firebase 透過筆記本工具 Vertex AI Workbench 您能使用 SDK 定義自己的管線

首先,編寫 AppCheckProviderFactory 的實作。細節 視用途而定

例如,如果您只有使用 iOS 14 以上版本的使用者,您可以直接 建立 AppAttestProvider 物件:

Swift

注意:這項 Firebase 產品不適用於 watchOS 目標。

class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    return AppAttestProvider(app: app)
  }
}

Objective-C

注意:這項 Firebase 產品不適用於 watchOS 目標。

@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourSimpleAppCheckProviderFactory

- (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app {
  return [[FIRAppAttestProvider alloc] initWithApp:app];
}

@end

或是在 iOS 14 以上版本中,AppAttestProvider建立物件 返回舊版 DeviceCheckProvider

Swift

注意:這項 Firebase 產品不適用於 watchOS 目標。

class YourAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    if #available(iOS 14.0, *) {
      return AppAttestProvider(app: app)
    } else {
      return DeviceCheckProvider(app: app)
    }
  }
}

Objective-C

注意:這項 Firebase 產品不適用於 watchOS 目標。

@interface YourAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourAppCheckProviderFactory

- (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app {
  if (@available(iOS 14.0, *)) {
    return [[FIRAppAttestProvider alloc] initWithApp:app];
  } else {
    return [[FIRDeviceCheckProvider alloc] initWithApp:app];
  }
}

@end

實作 AppCheckProviderFactory 類別後,請設定 App Check 適合用於下列用途:

Swift

注意:這項 Firebase 產品不適用於 watchOS 目標。

let providerFactory = YourAppCheckProviderFactory()
AppCheck.setAppCheckProviderFactory(providerFactory)

FirebaseApp.configure()

Objective-C

注意:這項 Firebase 產品不適用於 watchOS 目標。

YourAppCheckProviderFactory *providerFactory =
        [[YourAppCheckProviderFactory alloc] init];
[FIRAppCheck setAppCheckProviderFactory:providerFactory];

[FIRApp configure];

後續步驟

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

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

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

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

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

啟用強制執行 App Check

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

在偵錯環境中使用 App Check

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

請參閱「搭配 Apple 平台上的偵錯供應商使用 App Check」一文。