Pilih platform: Android iOS JavaScript

Menggunakan App Check untuk mengamankan kunci API Anda

Firebase App Check memberikan perlindungan untuk panggilan dari aplikasi Anda ke Google Maps Platform dengan memblokir traffic yang berasal dari sumber selain aplikasi yang sah. Hal ini dilakukan dengan memeriksa token dari penyedia pengesahan seperti Play Integrity. Mengintegrasikan aplikasi Anda dengan App Check membantu melindungi dari permintaan berbahaya, sehingga Anda tidak dikenai biaya untuk panggilan API yang tidak sah.

Apakah App Check tepat untuk saya?

App Check direkomendasikan dalam sebagian besar kasus, tetapi App Check tidak diperlukan atau tidak didukung dalam kasus berikut:

  • Anda menggunakan Places SDK asli. App Check hanya didukung untuk Places SDK (Baru).
  • Aplikasi pribadi atau eksperimental. Jika aplikasi Anda tidak dapat diakses secara publik, App Check tidak diperlukan.
  • Jika aplikasi Anda hanya digunakan server ke server, App Check tidak diperlukan. Namun, jika server yang berkomunikasi dengan GMP digunakan oleh klien publik (seperti aplikasi seluler), pertimbangkan untuk menggunakan App Check guna melindungi server tersebut, bukan GMP.
  • Penyedia pengesahan yang direkomendasikan App Check tidak akan berfungsi di perangkat yang dianggap rentan atau tidak tepercaya oleh penyedia pengesahan Anda. Jika perlu mendukung perangkat tersebut, Anda dapat men-deploy layanan pengesahan kustom. Untuk mengetahui informasi selengkapnya, lihat petunjuknya.

Ringkasan langkah-langkah penerapan

Secara umum, berikut langkah-langkah yang akan Anda ikuti untuk mengintegrasikan aplikasi dengan App Check:

  1. Tambahkan Firebase ke aplikasi Anda.
  2. Tambahkan dan lakukan inisialisasi library App Check.
  3. Tambahkan penyedia token.
  4. Aktifkan proses debug.
  5. Pantau permintaan aplikasi Anda dan tentukan penerapan.

Setelah terintegrasi dengan App Check, Anda akan dapat melihat metrik traffic backend di Firebase console. Metrik ini memberikan perincian permintaan berdasarkan apakah permintaan tersebut disertai dengan token App Check yang valid. Lihat dokumentasi Firebase App Check untuk mengetahui informasi selengkapnya.

Jika Anda yakin bahwa sebagian besar permintaan berasal dari sumber yang sah dan pengguna telah mengupdate ke versi terbaru aplikasi Anda yang menyertakan penerapan App Check, Anda dapat mengaktifkan penerapan. Setelah penerapan diaktifkan, App Check akan menolak semua traffic tanpa token App Check yang valid.

Pertimbangan saat merencanakan integrasi App Check

Berikut beberapa hal yang perlu dipertimbangkan saat Anda merencanakan integrasi:

  • Penyedia pengesahan yang kami rekomendasikan, Play Integrity, memiliki batas panggilan harian untuk tingkat penggunaan API Standarnya. Untuk mengetahui informasi selengkapnya tentang batas panggilan, lihat halaman Penyiapan di dokumentasi developer Google Play Integrity.

    Anda juga dapat memilih untuk menggunakan penyedia pengesahan kustom, meskipun ini adalah kasus penggunaan lanjutan. Untuk mengetahui informasi selengkapnya, lihat Menerapkan penyedia App Check kustom.

  • Pengguna aplikasi Anda akan mengalami latensi saat startup. Namun, setelahnya, pengesahan ulang berkala akan terjadi di latar belakang dan pengguna tidak akan lagi mengalami latensi. Jumlah latensi yang tepat saat startup bergantung pada penyedia pengesahan yang Anda pilih.

    Jumlah waktu validitas token App Check (time to live, atau TTL) menentukan frekuensi pengesahan ulang. Durasi ini dapat dikonfigurasi di Firebase console. Pengesahan ulang terjadi saat sekitar setengah dari TTL telah berlalu. Untuk mengetahui informasi selengkapnya, lihat dokumen Firebase untuk penyedia pengesahan Anda.

Mengintegrasikan aplikasi Anda dengan App Check

Prasyarat dan persyaratan

  • Aplikasi dengan Places SDK versi 4.1 atau yang lebih baru terintegrasi.
  • Sidik jari SHA-256 untuk aplikasi Anda.
  • Nama paket aplikasi Anda.
  • Anda harus menjadi pemilik aplikasi di Cloud Console.
  • Anda akan memerlukan project ID aplikasi dari Cloud Console

Langkah 1: Tambahkan Firebase ke aplikasi Anda

Ikuti petunjuk dalam dokumentasi developer Firebase untuk menambahkan Firebase ke aplikasi Anda.

Langkah 2: Tambahkan library App Check dan lakukan inisialisasi App Check

Untuk mengetahui informasi tentang penggunaan Play Integrity, penyedia pengesahan default, lihat Mulai menggunakan App Check dengan Play Integrity di Android.

  1. Jika belum, integrasikan Places SDK ke dalam aplikasi Anda.
  2. Selanjutnya, lakukan inisialisasi App Check dan klien Places.

    // Initialize App Check
    FirebaseApp.initializeApp(/* context= */ this);
    FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
    firebaseAppCheck.installAppCheckProviderFactory(
            PlayIntegrityAppCheckProviderFactory.getInstance());
      
    // Initialize Places SDK
    Places.initializeWithNewPlacesApiEnabled(context, API_KEY);
    PlacesClient client = Places.createClient(context);.

Langkah 3: Tambahkan penyedia token

Setelah melakukan inisialisasi Places API, panggil setPlacesAppCheckTokenProvider() untuk menetapkan PlacesAppCheckTokenProvider.

Places.initializeWithNewPlacesApiEnabled(context, API_KEY);
Places.setPlacesAppCheckTokenProvider(new TokenProvider());
PlacesClient client = Places.createClient(context);.

Berikut contoh penerapan antarmuka pengambil token:

  /** Sample client implementation of App Check token fetcher interface. */
  static class TokenProvider implements PlacesAppCheckTokenProvider {
    @Override
    public ListenableFuture<String> fetchAppCheckToken() {
      SettableFuture<String> future = SettableFuture.create();
      FirebaseAppCheck.getInstance()
          .getAppCheckToken(false)
          .addOnSuccessListener(
              appCheckToken -> {
                future.set(appCheckToken.getToken());
              })
          .addOnFailureListener(
              ex -> {
                future.setException(ex);
              });

      return future;
    }
  }

Langkah 4: Aktifkan proses debug (opsional)

Jika ingin mengembangkan dan menguji aplikasi Anda secara lokal, atau menjalankannya di lingkungan continuous integration (CI), Anda dapat membuat build debug aplikasi yang menggunakan rahasia debug untuk mendapatkan token App Check yang valid. Hal ini memungkinkan Anda menghindari penggunaan penyedia pengesahan asli dalam build debug.

Untuk menjalankan aplikasi di emulator atau di perangkat pengujian:

  • Tambahkan library App Check ke file build.gradle Anda.
  • Konfigurasikan App Check untuk menggunakan factory penyedia debug dalam build debug Anda.
  • Luncurkan aplikasi, yang akan membuat token debug lokal. Tambahkan token ini ke Firebase console.
  • Untuk mengetahui informasi dan petunjuk selengkapnya, lihat dokumentasi App Check.

Untuk menjalankan aplikasi di lingkungan CI:

  • Buat token debug di Firebase console dan tambahkan ke penyimpanan kunci aman sistem CI Anda.
  • Tambahkan library App Check ke file build.gradle Anda.
  • Konfigurasikan varian build CI Anda untuk menggunakan token debug.
  • Gabungkan kode di class pengujian yang memerlukan token App Check dengan DebugAppCheckTestHelper.
  • Untuk mengetahui informasi dan petunjuk selengkapnya, lihat dokumentasi App Check.

Langkah 5: Pantau permintaan aplikasi Anda dan tentukan penerapan

Sebelum memulai penerapan, Anda harus memastikan bahwa Anda tidak akan mengganggu pengguna aplikasi yang sah. Untuk melakukannya, buka layar metrik App Check untuk melihat persentase traffic aplikasi Anda yang diverifikasi, tidak berlaku lagi, atau tidak sah. Setelah melihat bahwa sebagian besar traffic Anda diverifikasi, Anda dapat mengaktifkan penerapan.

Lihat dokumentasi Firebase App Check untuk mengetahui informasi dan petunjuk selengkapnya.