Ikuti sorotan dari Firebase di Google I/O 2023. Pelajari lebih lanjut

Mulai menggunakan App Check dengan penyedia kustom di Android

Halaman ini menunjukkan cara mengaktifkan App Check di aplikasi Android menggunakan penyedia App Check kustom. Dengan mengaktifkan App Check, Anda membantu memastikan bahwa hanya aplikasi Anda yang dapat mengakses resource Firebase project Anda.

Jika Anda ingin menggunakan App Check dengan penyedia Play Integrity default, lihat Mengaktifkan App Check dengan Play Integrity di Android.

Sebelum memulai

1. Tambahkan library App Check ke aplikasi

Dalam file Gradle modul (level aplikasi) Anda (biasanya app/build.gradle), deklarasikan dependensi untuk library Android App Check:

Kotlin+KTX

dependencies {
    implementation 'com.google.firebase:firebase-appcheck:17.0.0'
}

Java

dependencies {
    implementation 'com.google.firebase:firebase-appcheck:17.0.0'
}

2. Implementasikan antarmuka App Check

Pertama, Anda harus membuat class yang menerapkan antarmuka AppCheckProvider dan AppCheckProviderFactory.

Class AppCheckProvider harus memiliki metode getToken() yang mengumpulkan semua informasi yang diperlukan oleh penyedia App Check kustom Anda sebagai bukti keaslian, lalu mengirimkannya ke layanan akuisisi token Anda sebagai pengganti token App Check. App Check SDK menangani penyimpanan token ke dalam cache, jadi selalu dapatkan token baru dalam penerapan getToken() Anda.

Kotlin+KTX

class YourCustomAppCheckToken(
    private val token: String,
    private val expiration: Long
) : AppCheckToken() {
    override fun getToken(): String {
        return token
    }

    override fun getExpireTimeMillis(): Long {
        return expiration
    }
}

class YourCustomAppCheckProvider : AppCheckProvider {
    val token: Task<AppCheckToken>
        get() {
            // Logic to exchange proof of authenticity for an App Check token.
            // ...

            // Refresh the token early to handle clock skew.
            val expMillis: Long = expirationFromServer * 1000 - 60000

            // Create AppCheckToken object.
            val appCheckToken: AppCheckToken =
                    YourCustomAppCheckToken(tokenFromServer, expMillis)

            return appCheckToken!
        }
}

Java

public class YourCustomAppCheckToken extends AppCheckToken {
    private String token;
    private long expiration;

    YourCustomAppCheckToken(String token, long expiration) {
        this.token = token;
        this.expiration = expiration;
    }

    @NonNull
    @Override
    public String getToken() {
        return token;
    }

    @Override
    public long getExpireTimeMillis() {
        return expiration;
    }
}

public class YourCustomAppCheckProvider implements AppCheckProvider {
    @Override
    public Task<AppCheckToken> getToken() {
        // Logic to exchange proof of authenticity for an App Check token and
        //   expiration time.
        // ...

        // Refresh the token early to handle clock skew.
        long expMillis = expirationFromServer * 1000 - 60000;

        // Create AppCheckToken object.
        AppCheckToken appCheckToken =
                YourCustomAppCheckToken(tokenFromServer, expMillis);

        return appCheckToken;
    }
}

Selain itu, terapkan class AppCheckProviderFactory yang membuat instance dari penerapan AppCheckProvider:

Kotlin+KTX

class YourCustomAppCheckProviderFactory : AppCheckProviderFactory {
    fun create(firebaseApp: FirebaseApp): AppCheckProvider {
        // Create and return an AppCheckProvider object.
        return YourCustomAppCheckProvider(firebaseApp)
    }
}

Java

public class YourCustomAppCheckProviderFactory implements AppCheckProviderFactory {
  @Override
  public AppCheckProvider create(FirebaseApp firebaseApp) {
    // Create and return an AppCheckProvider object.
    return new YourCustomAppCheckProvider(firebaseApp);
  }
}

3. Lakukan inisialisasi App Check

Tambahkan kode inisialisasi berikut ke aplikasi Anda agar berjalan sebelum Anda menggunakan Firebase SDK lainnya:

Kotlin+KTX

FirebaseApp.initializeApp(/*context=*/ this)
val firebaseAppCheck = FirebaseAppCheck.getInstance()
firebaseAppCheck.installAppCheckProviderFactory(
    YourCustomAppCheckProviderFactory.getInstance())

Java

FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
    YourCustomAppCheckProviderFactory.getInstance());

Langkah berikutnya

Setelah library App Check terinstal di aplikasi Anda, mulai distribusikan aplikasi yang telah diupdate kepada pengguna.

Aplikasi klien yang diupdate akan mulai mengirimkan token App Check beserta setiap permintaan yang dibuatnya ke Firebase. Namun, sebelum Anda mengaktifkan penerapan di bagian App Check di Firebase console, token tersebut tidak harus valid untuk produk Firebase.

Memantau metrik dan mengaktifkan penerapan

Sebelum mengaktifkan penerapan, Anda harus memastikan bahwa tindakan tersebut tidak akan mengganggu pengguna sah yang sudah ada. Di sisi lain, jika Anda melihat penggunaan resource aplikasi yang mencurigakan, sebaiknya segera aktifkan penerapan.

Untuk membantu membuat keputusan ini, Anda dapat melihat metrik App Check untuk layanan yang Anda gunakan:

Mengaktifkan penerapan App Check

Setelah memahami pengaruh App Check terhadap pengguna dan siap melanjutkan, Anda dapat mengaktifkan penerapan App Check:

Menggunakan App Check di lingkungan debug

Jika Anda telah mendaftarkan aplikasi untuk App Check lalu ingin menjalankan aplikasi di lingkungan yang biasanya tidak akan diklasifikasikan sebagai valid oleh App Check, seperti emulator selama pengembangan atau dari lingkungan continuous integration (CI), Anda dapat membuat build debug aplikasi yang menggunakan penyedia debug App Check, bukan penyedia pengesahan sungguhan.

Lihat Menggunakan App Check dengan penyedia debug di Android.