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 reCAPTCHA Enterprise. Mengintegrasikan aplikasi dengan App Check membantu melindungi dari permintaan berbahaya, sehingga Anda tidak dikenai biaya untuk panggilan API yang tidak sah.

Apakah Pemeriksaan Aplikasi cocok 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, Pemeriksaan Aplikasi tidak diperlukan.
  • Jika aplikasi Anda hanya digunakan server ke server, Pemeriksaan Aplikasi tidak diperlukan. Namun, jika server yang berkomunikasi dengan GMP digunakan oleh klien publik (seperti aplikasi seluler), sebaiknya gunakan App Check untuk melindungi server tersebut, bukan GMP.

Ringkasan langkah-langkah penerapan

Pada tingkat tinggi, berikut adalah 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 ke aplikasi Anda.
  4. Lakukan inisialisasi Places API dan App Check API.
  5. Aktifkan proses debug.
  6. Pantau permintaan aplikasi Anda dan tentukan penerapannya.

Setelah berintegrasi dengan App Check, Anda dapat melihat metrik traffic backend di Firebase console. Metrik ini memberikan pengelompokan 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 aplikasi ke versi terbaru 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:

  • Salah satu penyedia pengesahan yang kami rekomendasikan, reCAPTCHA Enterprise,mengenakan biaya untuk lebih dari 10.000 penilaian per bulan.

    Penyedia pengesahan lain yang kami rekomendasikan, reCAPTCHA v3, memiliki kuota, setelah itu traffic tidak akan dievaluasi.

    Anda dapat memilih untuk menggunakan penyedia pengesahan kustom, meskipun ini adalah kasus penggunaan lanjutan. Lihat dokumentasi App Check untuk informasi selengkapnya.

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

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

Mengintegrasikan aplikasi dengan App Check

Prasyarat dan persyaratan

  • Aplikasi dengan versi mingguan atau kuartalan terbaru Maps JS API, Core, dan Places yang dimuat.
  • Project Cloud dengan Maps JS dan Places API (Baru) yang diaktifkan.
  • Anda harus menjadi pemilik aplikasi di Cloud Console.
  • Anda memerlukan project ID aplikasi dari Konsol Cloud

Langkah 1: Menambahkan Firebase ke aplikasi

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

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

Firebase memberikan petunjuk untuk setiap penyedia pengesahan default. Petunjuk ini menunjukkan cara menyiapkan project Firebase dan menambahkan library App Check ke aplikasi Anda. Ikuti contoh kode yang disediakan untuk melakukan inisialisasi App Check.

Langkah 3: Muat library Maps JS API

  1. Muat library inti, Maps, dan Places seperti yang ditunjukkan dalam cuplikan berikut. Untuk informasi dan petunjuk selengkapnya, lihat dokumentasi Class Tempat Maps JavaScript API.

    async function init() {
      const {Settings} = await google.maps.importLibrary('core');
      const {Map} = await google.maps.importLibrary('maps');
      const {Place} = await google.maps.importLibrary('places');
    }  

Langkah 4: Lakukan inisialisasi Places dan App Check API

  1. Lakukan inisialisasi App Check menggunakan konfigurasi yang disediakan oleh Firebase console.
  2. Pastikan permintaan ke Maps JS API disertai dengan token App Check:
      async function init() {
        const {Settings} = await google.maps.importLibrary('core');
        const {Map} = await google.maps.importLibrary('maps');
        const {Place} = await google.maps.importLibrary('places');
      
        const app = initializeApp({
          // Your firebase configuration object
        });
      
        // Pass your reCAPTCHA Enterprise site key to initializeAppCheck().
        const appCheck = initializeAppCheck(app, {
          provider: new ReCaptchaEnterpriseProvider(
            'abcdefghijklmnopqrstuvwxy-1234567890abcd',
          ),
      
          // Optional argument. If true, the SDK automatically refreshes App Check
          // tokens as needed.
          isTokenAutoRefreshEnabled: true,
        });
      
        Settings.getInstance().fetchAppCheckToken = () =>
            getToken(appCheck, /* forceRefresh = */ false);
      
        // Make a Places JS request
        const place = new Place({id: 'ChIJN5Nz71W3j4ARhx5bwpTQEGg'});
        await place.fetchFields({fields: ['*']});
      
        // Load a map
        map = new Map(document.getElementById("map"), {
          center: { lat: 37.4161493, lng: -122.0812166 },
          zoom: 8,
        });
      }  
      

Langkah 5: Aktifkan proses debug (opsional)

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

Untuk menguji aplikasi secara lokal:

  • Aktifkan penyedia debug untuk tujuan pengembangan.
  • Anda akan menerima UUID4 acak yang dibuat secara otomatis (disebut _token debug_ dalam dokumentasi App Check) dari log debug SDK. Tambahkan token ini ke Firebase console.
  • Untuk informasi dan petunjuk selengkapnya, lihat dokumentasi App Check.

Untuk menjalankan aplikasi Anda di lingkungan CI:

  • Buat UUID4 acak dari Firebase console.
  • Tambahkan UUID4 sebagai token debug, lalu salin ke secret store yang akan diakses oleh pengujian CI per pengujian yang dijalankan.
  • Untuk informasi dan petunjuk selengkapnya, lihat dokumentasi App Check.

Langkah 6: Pantau permintaan aplikasi Anda dan tentukan penerapannya

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

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