Android'de Uygulama Kontrolü'nü özel bir sağlayıcıyla kullanmaya başlayın

Bu sayfada, App Check özel App Check sağlayıcı. App Check özelliğini etkinleştirdiğinizde, projenizin Firebase kaynaklarına yalnızca uygulamanızın erişmesini sağlayabilirsiniz.

App Check uygulamasını varsayılan Play Integrity sağlayıcıyla kullanmak istiyorsanız şuraya göz atın: Android'de Play Integrity ile App Check uygulamasını etkinleştirin.

Başlamadan önce

1. App Check kitaplığını uygulamanıza ekleyin

Modül (uygulama düzeyinde) Gradle dosyanızda (genellikle <project>/<app-module>/build.gradle.kts veya <project>/<app-module>/build.gradle), Android için App Check kitaplığına bağımlılığı ekleyin. Şunu kullanmanızı öneririz: Firebase Android BoM Kitaplık'ta sürüm oluşturmayı kontrol etmek için

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:33.2.0"))

    // Add the dependency for the App Check library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck")
}

Firebase Android BoM kullanıldığında, Uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanacaktır.

(Alternatif) Firebase kitaplığı bağımlılıklarını kullanmadan BoM

Firebase BoM kullanmamayı seçerseniz her Firebase kitaplığı sürümünü belirtmeniz gerekir değerini alır.

Uygulamanızda birden çok Firebase kitaplığı kullanıyorsanız, kitaplık sürümlerini yönetmek için BoM kullanmanızı öneririz. Bu, tüm sürümlerin uyumlu olduğundan emin olun.

dependencies {
    // Add the dependency for the App Check library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck:18.0.0")
}
.
'nı inceleyin. Kotlin'e özel bir kitaplık modülü mü arıyorsunuz? Başlamak için kalan süre: Ekim 2023 (Firebase BoM 32.5.0), hem Kotlin hem de Java geliştiricileri (ayrıntılar için bkz. Bu girişimle ilgili SSS).

2. App Check arayüzlerini uygulayın

Öncelikle, AppCheckProvider ve AppCheckProviderFactory arayüz.

AppCheckProvider sınıfınızda, veri toplayan getToken() yöntemi bulunmalıdır. özel App Check sağlayıcınızın kanıt olarak istediği bilgiler ve bunun karşılığında jeton edinme hizmetinize gönderir. App Check jetonu. App Check SDK'sı jeton önbelleğe alma işlemini gerçekleştirir, bu nedenle her zaman getToken() uygulamanızda yeni bir jeton.

Kotlin+KTX

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

class YourCustomAppCheckProvider(firebaseApp: FirebaseApp) : AppCheckProvider {
    override fun getToken(): Task<AppCheckToken> {
        // Logic to exchange proof of authenticity for an App Check token and
        //   expiration time.
        // ...

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

        // Create AppCheckToken object.
        val appCheckToken: AppCheckToken = YourCustomAppCheckToken(tokenFromServer, expMillis)
        return Tasks.forResult(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 {
    public YourCustomAppCheckProvider(FirebaseApp firebaseApp) {
        // ...
    }

    @NonNull
    @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 * 1000L - 60000L;

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

        return Tasks.forResult(appCheckToken);
    }
}

Ayrıca, AppCheckProviderFactory AppCheckProvider uygulaması:

Kotlin+KTX

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

Java

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

3. Başlat: App Check

Kullanmadan önce çalışması için aşağıdaki ilk kullanıma hazırlama kodunu uygulamanıza ekleyin: tüm diğer Firebase SDK'ları:

Kotlin+KTX

Firebase.initialize(context)
Firebase.appCheck.installAppCheckProviderFactory(
    YourCustomAppCheckProviderFactory(),
)

Java

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

Sonraki adımlar

App Check kitaplığı uygulamanıza yüklendikten sonra, uygulamayı kullanıcılarınıza güncelleyin.

Güncellenen istemci uygulaması, App Check jeton göndermeye başlayacak. Firebase'e istek gönderir, ancak Firebase ürünleri için jeton gerekmez App Check Firebase konsolu.

Metrikleri izleyin ve yaptırımı etkinleştirin

Ancak, zorunlu kılmayı etkinleştirmeden önce, bu işlemin Mevcut güvenli kullanıcılarınızı kesintiye uğratabilir. Öte yandan, benzer bir Uygulama kaynaklarınızın şüpheli kullanımı durumunda, zorunlu kılma ayarını etkinleştirerek gerekir.

Bu kararı vermenize yardımcı olmak içinApp Check hizmetler:

App Check zorunlu kılmayı etkinleştir

App Check özelliğinin kullanıcılarınızı nasıl etkileyeceğini anladığınızda Devam ederseniz App Check yaptırımını etkinleştirebilirsiniz:

Hata ayıklama ortamlarında App Check kullanın

Uygulamanızı App Check için kaydettikten sonra App Check normalde geçerli olarak sınıflandıramadığı bir ortamda bulunuyorsa, Örneğin, geliştirme sırasında emülatör veya sürekli entegrasyon (CI) aracılığıyla uygulamanızın hata ayıklama derlemesini oluşturmak için App Check gerçek bir onay sağlayıcısı yerine hata ayıklama sağlayıcısı ile çalışıyor.

Android'de hata ayıklama sağlayıcıyla App Check uygulamasını kullanma bölümüne bakın.