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

Terapkan penyedia App Check khusus

App Check telah built-in dukungan untuk beberapa penyedia: DeviceCheck dan aplikasi membuktikan pada platform Apple, SafetyNet pada Android, atau reCAPTCHA v3 dalam aplikasi web ( gambaran ). 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 DeviceCheck atau App Attest di Apple, SafetyNet di Android, atau reCAPTCHA di aplikasi web.

  • 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.

Gambaran

Untuk menerapkan kustom App penyedia Periksa, Anda membutuhkan lingkungan backend aman yang dapat menjalankan Node.js Firebase Admin SDK . Hal ini dapat Cloud Fungsi, platform wadah 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. Menginstal dan menginisialisasi 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 ke 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: Set waktu-to-live (TTL) untuk App Periksa token yang dikeluarkan oleh penyedia kustom Anda dengan melewati sebuah AppCheckTokenOptions keberatan 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 bahwa Anda telah menerapkan logika server-side penyedia kustom Anda, belajar bagaimana menggunakannya dari Anda Apel , Android , dan web klien.