Mulai menggunakan App Check dengan App Attest di platform Apple

Halaman ini menunjukkan cara mengaktifkan App Check di aplikasi Apple menggunakan penyedia App Attest bawaan. Dengan mengaktifkan App Check, Anda membantu memastikan bahwa hanya aplikasi Anda yang dapat mengakses resource Firebase project Anda. Lihat Ringkasan fitur ini.

App Check menggunakan App Attest untuk memverifikasi bahwa permintaan ke layanan Firebase berasal dari aplikasi asli milik Anda. App Check saat ini tidak menggunakan App Attest untuk menganalisis risiko penipuan.

Jika Anda ingin menggunakan App Check dengan penyedia kustom Anda sendiri, lihat Menerapkan penyedia App Check kustom.

1. Menyiapkan project Firebase

  1. Anda memerlukan Xcode 12.5+ untuk menggunakan App Attest.

  2. Tambahkan Firebase ke project Apple jika Anda belum melakukannya.

  3. Daftarkan aplikasi Anda untuk menggunakan App Check dengan penyedia SafetyNet di bagian App Check di Firebase console.

    Anda biasanya harus mendaftarkan semua aplikasi project Anda, karena setelah penerapan untuk produk Firebase diaktifkan, hanya aplikasi terdaftar yang akan dapat mengakses resource backend produk.

  4. Opsional: Di setelan pendaftaran aplikasi, tetapkan time to live (TTL) kustom untuk token App Check yang dikeluarkan oleh penyedia. Anda dapat menetapkan TTL ke semua nilai dalam rentang 30 menit hingga 7 hari. Saat mengubah nilai ini, perhatikan pertimbangan berikut:

    • Keamanan: TTL yang lebih singkat memberikan keamanan yang lebih kuat karena mengurangi periode yang memungkinkan penyalahgunaan token yang bocor atau ditangkap oleh penyerang.
    • Performa: TTL yang lebih singkat membuat aplikasi Anda akan lebih sering melakukan pengesahan. Karena proses pengesahan aplikasi menambahkan latensi ke permintaan jaringan setiap kali dilakukan, TTL yang singkat dapat memengaruhi performa aplikasi Anda.
    • Kuota dan biaya: TTL yang lebih singkat dan pengesahan ulang yang sering dilakukan akan mengurangi kuota Anda lebih cepat, dan untuk layanan berbayar, mungkin akan menimbulkan biaya yang lebih besar. Lihat Kuota & batas.

    TTL default selama 1 jam termasuk wajar untuk sebagian besar aplikasi. Perlu diketahui bahwa library App Check memperbarui token pada sekitar setengah dari durasi TTL.

2. Tambahkan library App Check ke aplikasi

  1. Tambahkan dependensi untuk App Check ke Podfile project Anda:

    pod 'FirebaseAppCheck'

    Sebagai alternatif, Anda dapat menggunakan Swift Package Manager.

    Pastikan Firebase SDK lain yang Anda gunakan juga sudah dalam versi terbaru.

  2. Jalankan pod install, lalu buka file .xcworkspace yang dihasilkan.

  3. Di Xcode, tambahkan kemampuan App Attest ke aplikasi Anda.

  4. Di file .entitlements project Anda, tetapkan lingkungan App Attest ke production.

3. Melakukan inisialisasi App Check

Anda harus melakukan inisialisasi App Check sebelum menggunakan Firebase SDK lainnya.

Pertama, tulis penerapan AppCheckProviderFactory. Detail penerapan Anda akan bergantung pada kasus penggunaan Anda.

Misalnya, jika Anda hanya memiliki pengguna di iOS 14 dan yang lebih baru, Anda dapat selalu membuat objek AppAttestProvider:

Swift

Catatan: Produk Firebase ini tidak tersedia di target watchOS.

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

Objective-C

Catatan: Produk Firebase ini tidak tersedia di target watchOS.

@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourSimpleAppCheckProviderFactory

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

@end

Selain itu, Anda dapat membuat objek AppAttestProvider di iOS 14 dan yang lebih baru, serta melakukan fallback ke DeviceCheckProvider pada versi sebelumnya:

Swift

Catatan: Produk Firebase ini tidak tersedia di target 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

Catatan: Produk Firebase ini tidak tersedia di target 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

Setelah Anda menerapkan class AppCheckProviderFactory, konfigurasikan App Check untuk menggunakannya:

Swift

Catatan: Produk Firebase ini tidak tersedia di target watchOS.

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

FirebaseApp.configure()

Objective-C

Catatan: Produk Firebase ini tidak tersedia di target watchOS.

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

[FIRApp configure];

Langkah berikutnya

Setelah library App Check terinstal di aplikasi Anda, mulai distribusikan aplikasi yang telah diupdate kepada pengguna.

Aplikasi klien yang diupdate akan mulai mengirimkan token App Check beserta setiap permintaan yang dibuatnya ke Firebase. Namun, sebelum Anda mengaktifkan penerapan di bagian App Check di Firebase console, token tersebut tidak harus valid untuk produk Firebase.

Memantau metrik dan mengaktifkan penerapan

Sebelum mengaktifkan penerapan, Anda harus memastikan bahwa tindakan tersebut tidak akan mengganggu pengguna sah yang sudah ada. Di sisi lain, jika Anda melihat penggunaan resource aplikasi yang mencurigakan, sebaiknya segera aktifkan penerapan.

Untuk membantu membuat keputusan ini, Anda dapat melihat metrik App Check untuk layanan yang Anda gunakan:

Mengaktifkan penerapan App Check

Setelah memahami pengaruh App Check terhadap pengguna dan siap melanjutkan, Anda dapat mengaktifkan penerapan App Check:

Menggunakan App Check di lingkungan debug

Jika Anda telah mendaftarkan aplikasi untuk App Check lalu ingin menjalankan aplikasi di lingkungan yang biasanya tidak akan diklasifikasikan sebagai valid oleh App Check, seperti simulator selama pengembangan atau dari lingkungan continuous integration (CI), Anda dapat membuat build debug aplikasi yang menggunakan penyedia debug App Check, bukan penyedia pengesahan asli.

Baca bagian Menggunakan App Check dengan penyedia debug di platform Apple.