Catch up on everthing we announced at this year's Firebase Summit. Learn more

Aktifkan App Check dengan App Attest di platform Apple

Halaman ini menunjukkan cara mengaktifkan App Check di aplikasi Apple, menggunakan penyedia App Attest bawaan. Saat mengaktifkan App Check, Anda membantu memastikan bahwa hanya aplikasi Anda yang dapat mengakses sumber daya Firebase proyek Anda. Melihat Sekilas fitur ini.

App Periksa penggunaan aplikasi membuktikan untuk memverifikasi bahwa permintaan untuk layanan Firebase berasal dari aplikasi sejati Anda. App Periksa saat ini tidak menggunakan aplikasi membuktikan menganalisis risiko fraud .

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

1. Siapkan proyek Firebase Anda

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

  2. Menambahkan Firebase ke proyek Apple jika Anda belum melakukannya.

  3. Daftarkan aplikasi Anda untuk menggunakan App Periksa dengan penyedia App membuktikan dalam Pengaturan Proyek> App Periksa bagian dari konsol Firebase.

    Anda biasanya perlu mendaftarkan semua aplikasi proyek Anda, karena setelah Anda mengaktifkan penerapan untuk produk Firebase, hanya aplikasi terdaftar yang dapat mengakses sumber daya backend produk.

  4. Opsional: Pada pengaturan pendaftaran aplikasi, mengatur kustom time-to-live (TTL) untuk App Periksa token yang dikeluarkan oleh provider. Anda dapat mengatur TTL ke nilai apa pun antara 30 menit dan 7 hari. Saat mengubah nilai ini, perhatikan pengorbanan berikut:

    • Keamanan: TTL yang lebih pendek memberikan keamanan yang lebih kuat, karena mengurangi jendela di mana token yang bocor atau dicegat dapat disalahgunakan oleh penyerang.
    • Performa: TTL yang lebih pendek berarti aplikasi Anda akan melakukan pengesahan lebih sering. Karena proses pengesahan aplikasi menambahkan latensi ke permintaan jaringan setiap kali dilakukan, TTL singkat dapat memengaruhi kinerja aplikasi Anda.
    • Kuota dan biaya: TTL yang lebih pendek dan pengesahan ulang yang sering menghabiskan kuota Anda lebih cepat, dan untuk layanan berbayar, berpotensi lebih mahal. Lihat Kuota & batas .

    TTL default 1 jam wajar bagi sebagian besar aplikasi. Perhatikan bahwa pustaka App Check menyegarkan token kira-kira setengah dari durasi TTL.

2. Tambahkan perpustakaan App Check ke aplikasi Anda

  1. Tambahkan dependensi untuk App Periksa untuk proyek Anda Podfile :

    pod 'Firebase/AppCheck'

    Atau, alternatif, Anda dapat menggunakan Swift Package Manager gantinya.

    Pastikan Anda juga menggunakan versi terbaru dari SDK Firebase lain yang Anda andalkan.

  2. Run pod install dan membuka menciptakan .xcworkspace berkas.

  3. Dalam Xcode, menambahkan kemampuan App membuktikan aplikasi Anda.

  4. Dalam proyek Anda .entitlements berkas, mengatur lingkungan App membuktikan production .

3. Inisialisasi Pemeriksaan Aplikasi

Anda perlu menginisialisasi App Check sebelum menggunakan SDK Firebase lainnya.

Pertama, menulis sebuah implementasi AppCheckProviderFactory . Spesifik implementasi Anda akan tergantung pada kasus penggunaan Anda.

Sebagai contoh, Jika Anda hanya memiliki pengguna di iOS 14 dan kemudian, Anda dapat hanya selalu membuat AppAttestProvider objek:

Cepat

Catatan: Produk Firebase ini tidak tersedia pada target watchOS.

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

Objective-C

Catatan: Produk Firebase ini tidak tersedia pada target watchOS.

@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourSimpleAppCheckProviderFactory

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

@end

Atau, Anda dapat membuat AppAttestProvider objek pada iOS 14 dan kemudian, dan jatuh kembali ke DeviceCheckProvider pada versi sebelumnya:

Cepat

Catatan: Produk Firebase ini tidak tersedia pada 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 pada 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 telah menerapkan AppCheckProviderFactory kelas, configure App Periksa untuk menggunakannya:

Cepat

Catatan: Produk Firebase ini tidak tersedia pada target watchOS.

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

FirebaseApp.configure()

Objective-C

Catatan: Produk Firebase ini tidak tersedia pada target watchOS.

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

[FIRApp configure];

Setelah pustaka App Check dipasang di aplikasi Anda, mulailah mendistribusikan aplikasi yang diperbarui kepada pengguna Anda.

Aplikasi klien yang diperbarui akan mulai mengirimkan token App Check bersama dengan setiap permintaan yang dibuatnya ke Firebase, tetapi produk Firebase tidak akan mengharuskan token valid sampai Anda mengaktifkan penerapan di bagian App Check di Firebase console. Lihat dua bagian berikutnya untuk detailnya.

5. Pantau metrik permintaan

Setelah aplikasi Anda yang telah diperbarui berada di tangan pengguna, Anda dapat mengaktifkan penerapan App Check untuk produk Firebase yang Anda gunakan. Namun, sebelum Anda melakukannya, Anda harus memastikan bahwa hal itu tidak akan mengganggu pengguna sah Anda yang sudah ada.

Database Realtime, Cloud Firestore, dan Cloud Storage

Alat penting yang dapat Anda gunakan untuk membuat keputusan ini untuk Realtime Database, Cloud Firestore, dan Cloud Storage adalah layar metrik permintaan App Check.

Untuk melihat App Periksa permintaan metrik untuk produk, buka Project Settings> App Periksa bagian dari konsol Firebase. Sebagai contoh:

Tangkapan layar halaman metrik Pemeriksaan Aplikasi

Metrik permintaan untuk setiap produk dipecah menjadi empat kategori:

  • Permintaan diverifikasi adalah mereka yang memiliki App valid Periksa tanda. Setelah Anda mengaktifkan penerapan App Check, hanya permintaan dalam kategori ini yang akan berhasil.

  • Permintaan klien usang adalah mereka yang hilang App Periksa tanda. Permintaan ini mungkin berasal dari versi Firebase SDK yang lebih lama sebelum App Check disertakan dalam aplikasi.

  • Permintaan yang tidak diketahui asalnya adalah mereka yang hilang App Periksa token, dan tidak terlihat seperti mereka datang dari Firebase SDK. Ini mungkin dari permintaan yang dibuat dengan kunci API curian atau permintaan palsu yang dibuat tanpa Firebase SDK.

  • Permintaan tidak valid adalah mereka yang memiliki App valid Periksa token, yang mungkin dari klien tidak otentik mencoba untuk meniru aplikasi Anda, atau dari lingkungan ditiru.

Distribusi kategori ini untuk aplikasi Anda harus menginformasikan saat Anda memutuskan untuk mengaktifkan penegakan. Berikut adalah beberapa pedoman:

  • Jika hampir semua permintaan terbaru berasal dari klien terverifikasi, pertimbangkan untuk mengaktifkan penegakan untuk mulai melindungi sumber daya backend Anda.

  • Jika sebagian besar permintaan terbaru berasal dari klien yang kemungkinan sudah usang, untuk menghindari mengganggu pengguna, pertimbangkan untuk menunggu lebih banyak pengguna mengupdate aplikasi Anda sebelum mengaktifkan penerapan. Menerapkan App Check pada aplikasi yang dirilis akan merusak versi aplikasi sebelumnya yang tidak terintegrasi dengan App Check SDK.

  • Jika aplikasi Anda belum diluncurkan, Anda harus segera mengaktifkan penerapan App Check, karena tidak ada klien lama yang digunakan.

Fungsi Cloud

Untuk Cloud Functions, Anda bisa mendapatkan metrik App Check dengan memeriksa log fungsi Anda. Setiap pemanggilan fungsi yang dapat dipanggil memancarkan entri log terstruktur seperti contoh berikut:

{
  "severity": "INFO",    // INFO, WARNING, or ERROR
  "logging.googleapis.com/labels": {"firebase-log-type": "callable-request-verification"},
  "jsonPayload": {
    "message": "Callable header verifications passed.",
    "verifications": {
      // ...
      "app": "MISSING",  // VALID, INVALID, or MISSING
    }
  }
}

Anda dapat menganalisis metrik ini di Cloud Console Google dengan menciptakan log berbasis kontra metrik dengan metrik filter berikut:

resource.type="cloud_function"
resource.labels.function_name="YOUR_CLOUD_FUNCTION"
resource.labels.region="us-central1"
labels.firebase-log-type="callable-request-verification"

Label metrik menggunakan bidang jsonPayload.verifications.appCheck .

6. Aktifkan penegakan

Untuk mengaktifkan penegakan, ikuti petunjuk untuk setiap produk di bawah. Setelah Anda mengaktifkan penegakan untuk suatu produk, semua permintaan yang belum diverifikasi ke produk tersebut akan ditolak.

Database Realtime, Cloud Firestore, dan Cloud Storage

Untuk mengaktifkan penerapan Realtime Database, Cloud Firestore (iOS dan Android), dan Cloud Storage:

  1. Buka Pengaturan Proyek> App Periksa bagian dari konsol Firebase.

  2. Perluas tampilan metrik produk yang penerapannya ingin Anda aktifkan.

  3. Klik Menegakkan dan mengkonfirmasikan pilihan Anda.

Perhatikan bahwa diperlukan waktu hingga 10 menit setelah Anda mengaktifkan penerapan agar penerapannya dapat diterapkan.

Fungsi Cloud

Lihat Aktifkan App Periksa penegakan untuk Fungsi Cloud .

Langkah selanjutnya

Jika, setelah Anda mendaftarkan aplikasi untuk App Check, Anda ingin menjalankan aplikasi di lingkungan yang biasanya tidak diklasifikasikan sebagai valid oleh App Check, seperti simulator selama pengembangan, atau dari lingkungan continuous integration (CI), Anda dapat buat build debug aplikasi Anda yang menggunakan penyedia debug App Check alih-alih penyedia pengesahan nyata.

Lihat Gunakan App Periksa dengan penyedia debug pada platform Apel .