Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Terapkan penyedia App Check khusus

App Check memiliki dukungan bawaan untuk beberapa penyedia: DeviceCheck dan App Attest di platform Apple, Play Integrity dan SafetyNet di Android, dan reCAPTCHA v3 dan reCAPTCHA Enterprise di aplikasi web ( ikhtisar ). Ini adalah penyedia yang dipahami dengan baik yang harus memenuhi kebutuhan sebagian besar pengembang. Namun, Anda juga dapat menerapkan penyedia App Check kustom Anda sendiri. Menggunakan penyedia kustom diperlukan saat:

  • Anda ingin menggunakan penyedia selain yang ada di dalamnya.

  • Anda ingin menggunakan penyedia bawaan dengan cara yang tidak didukung.

  • Anda ingin memverifikasi perangkat menggunakan platform selain Apple, Android, dan web. Misalnya, Anda dapat membuat penyedia App Check untuk OS desktop atau perangkat Internet-of-Things.

  • Anda ingin menerapkan teknik verifikasi Anda sendiri di platform apa pun.

Ringkasan

Untuk menerapkan penyedia App Check kustom, Anda memerlukan lingkungan backend aman yang dapat menjalankan Node.js Firebase Admin SDK . Ini bisa berupa Cloud Functions, platform container seperti Cloud Run , atau server Anda sendiri.

Dari lingkungan ini, Anda akan menyediakan layanan yang dapat diakses jaringan yang menerima bukti keaslian dari klien aplikasi Anda, dan—jika bukti keaslian lolos penilaian keaslian Anda—mengembalikan token App Check. Indikator spesifik yang Anda gunakan sebagai bukti keaslian akan bergantung pada penyedia pihak ketiga yang Anda gunakan, atau indikator penemuan Anda sendiri, jika Anda menerapkan logika khusus.

Biasanya, Anda mengekspos layanan ini sebagai titik akhir REST atau gRPC, tetapi detail ini terserah Anda.

Buat titik akhir akuisisi token

  1. Instal dan inisialisasi Admin SDK .

  2. Buat titik akhir yang dapat diakses jaringan yang dapat menerima data keaslian dari klien Anda. Misalnya, menggunakan Cloud Functions:

    // Create endpoint at https://example-app.cloudfunctions.net/fetchAppCheckToken
    exports.fetchAppCheckToken = functions.https.onCall((authenticityData, context) => {
      // ...
    });
    
  3. Tambahkan ke logika titik akhir yang menilai keaslian data. Ini adalah logika inti dari penyedia App Check kustom Anda, yang harus Anda tulis sendiri.

  4. Jika Anda menentukan klien asli, gunakan Admin SDK untuk mencetak token App Check dan mengembalikannya serta waktu kedaluwarsanya kepada klien:

    const admin = require('firebase-admin');
    admin.initializeApp();
    
    // ...
    
    admin.appCheck().createToken(appId)
        .then(function (appCheckToken) {
          // Token expires in an hour.
          const expiresAt = Math.floor(Date.now() / 1000) + 60 * 60;
    
          // Return appCheckToken and expiresAt to the client.
        })
       .catch(function (err) {
         console.error('Unable to create App Check token.');
         console.error(err);
       });
    

    Jika Anda tidak dapat memverifikasi keaslian klien, kembalikan kesalahan (misalnya, kembalikan kesalahan HTTP 403).

  5. Opsional : Setel time-to-live (TTL) untuk token App Check yang dikeluarkan oleh penyedia kustom Anda dengan meneruskan objek AppCheckTokenOptions ke createToken() . Anda dapat mengatur TTL ke nilai apa pun antara 30 menit dan 7 hari. Saat menetapkan 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.

    TTL default 1 jam masuk akal untuk sebagian besar aplikasi.

Langkah selanjutnya

Sekarang setelah Anda menerapkan logika sisi server penyedia kustom, pelajari cara menggunakannya dari Apple , Android , dan klien web Anda.