Bu sayfa, özel Uygulama Kontrolü sağlayıcınızı kullanarak bir Android uygulamasında Uygulama Kontrolü'nü nasıl etkinleştireceğinizi gösterir. Uygulama Kontrolü'nü etkinleştirdiğinizde, projenizin Firebase kaynaklarına yalnızca uygulamanızın erişebilmesini sağlamaya yardımcı olursunuz.
Uygulama Kontrolü'nü varsayılan Play Integrity sağlayıcısıyla kullanmak istiyorsanız Android'de Play Integrity ile Uygulama Kontrolünü Etkinleştirme bölümüne bakın.
Sen başlamadan önce
Henüz yapmadıysanız Firebase'i Android projenize ekleyin .
Özel Uygulama Kontrolü sağlayıcınızın sunucu tarafı mantığını uygulayın .
1. Uygulama Kontrolü kitaplığını uygulamanıza ekleyin
Modülünüzde (uygulama düzeyinde) Gradle dosyanızda (genellikle app/build.gradle
), App Check Android kitaplığının bağımlılığını bildirin:
Kotlin+KTX
dependencies {
implementation 'com.google.firebase:firebase-appcheck:17.0.1'
}
Java
dependencies {
implementation 'com.google.firebase:firebase-appcheck:17.0.1'
}
2. Uygulama Kontrolü arayüzlerini uygulayın
Öncelikle, AppCheckProvider
ve AppCheckProviderFactory
arabirimlerini uygulayan sınıflar oluşturmanız gerekir.
AppCheckProvider
sınıfınızın, özel Uygulama Kontrolü sağlayıcınızın özgünlük kanıtı olarak ihtiyaç duyduğu bilgileri toplayan ve bir Uygulama Kontrolü belirteci karşılığında belirteç edinme hizmetinize gönderen bir getToken()
yöntemi olmalıdır. App Check SDK, belirteç önbelleğe almayı işler, bu nedenle getToken()
uygulamanızda her zaman yeni bir belirteç edinin.
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;
}
}
Ayrıca, AppCheckProvider
uygulamanızın örneklerini oluşturan bir AppCheckProviderFactory
sınıfı uygulayın:
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. Uygulama Kontrolünü Başlatın
Diğer Firebase SDK'larını kullanmadan önce çalışması için uygulamanıza aşağıdaki başlatma kodunu ekleyin:
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());
Sonraki adımlar
Uygulama Kontrolü kitaplığı uygulamanıza yüklendikten sonra, güncellenmiş uygulamayı kullanıcılarınıza dağıtmaya başlayın.
Güncellenen istemci uygulaması, Firebase'e yaptığı her istekle birlikte Uygulama Kontrolü belirteçleri göndermeye başlayacak, ancak Firebase konsolunun Uygulama Kontrolü bölümünde zorlamayı etkinleştirene kadar Firebase ürünleri, belirteçlerin geçerli olmasını gerektirmeyecektir.
Metrikleri izleyin ve yaptırımı etkinleştirin
Ancak yaptırımı etkinleştirmeden önce, bunu yapmanın mevcut yasal kullanıcılarınızı kesintiye uğratmayacağından emin olmalısınız. Öte yandan, uygulama kaynaklarınızın şüpheli bir şekilde kullanıldığını görüyorsanız yaptırımı daha erken etkinleştirmek isteyebilirsiniz.
Bu kararı vermenize yardımcı olması için, kullandığınız hizmetler için Uygulama Kontrolü ölçümlerine bakabilirsiniz:
- Realtime Database, Cloud Firestore, Cloud Storage ve Authentication (beta) için App Check istek ölçümlerini izleyin .
- Bulut İşlevleri için Uygulama Kontrolü istek ölçümlerini izleyin .
Uygulama Kontrolü zorlamasını etkinleştir
Uygulama Kontrolü'nün kullanıcılarınızı nasıl etkileyeceğini anladığınızda ve devam etmeye hazır olduğunuzda, Uygulama Kontrolü uygulamasını etkinleştirebilirsiniz:
- Realtime Database, Cloud Firestore, Cloud Storage ve Authentication (beta) için App Check zorlamasını etkinleştirin .
- Cloud Functions için App Check zorlamasını etkinleştirin .
Hata ayıklama ortamlarında Uygulama Kontrolü kullanın
Uygulamanızı Uygulama Kontrolü için kaydettirdikten sonra, uygulamanızı Uygulama Kontrolü'nün normalde geçerli olarak sınıflandırmadığı bir ortamda, örneğin geliştirme sırasında öykünücü veya sürekli entegrasyon (CI) ortamından çalıştırmak isterseniz, şunları yapabilirsiniz: uygulamanızın gerçek bir doğrulama sağlayıcısı yerine Uygulama Kontrolü hata ayıklama sağlayıcısını kullanan bir hata ayıklama yapısı oluşturun.
Bkz . Uygulama Kontrolünü Android'de hata ayıklama sağlayıcısıyla kullanma .