Ta strona pokazuje, jak włączyć Sprawdzanie aplikacji w aplikacji na Androida przy użyciu niestandardowego dostawcy Sprawdzania aplikacji . Włączając Sprawdzanie aplikacji, pomagasz upewnić się, że tylko Twoja aplikacja ma dostęp do zasobów Firebase Twojego projektu.
Jeśli chcesz używać Sprawdzania aplikacji z domyślnym dostawcą Play Integrity, zobacz Włączanie sprawdzania aplikacji z Play Integrity na Androida .
Zanim zaczniesz
Dodaj Firebase do swojego projektu na Androida, jeśli jeszcze tego nie zrobiłeś.
Zaimplementuj logikę po stronie serwera niestandardowego dostawcy sprawdzania aplikacji .
1. Dodaj bibliotekę App Check do swojej aplikacji
W pliku Gradle modułu (na poziomie aplikacji) (zazwyczaj app/build.gradle
) zadeklaruj zależność dla biblioteki App Check Android:
Kotlin+KTX
dependencies {
implementation 'com.google.firebase:firebase-appcheck:17.0.1'
}
Java
dependencies {
implementation 'com.google.firebase:firebase-appcheck:17.0.1'
}
2. Zaimplementuj interfejsy App Check
Najpierw musisz utworzyć klasy, które implementują interfejsy AppCheckProvider
i AppCheckProviderFactory
.
Twoja klasa AppCheckProvider
musi mieć metodę getToken()
, która zbiera wszelkie informacje wymagane przez niestandardowego dostawcę sprawdzania aplikacji jako dowód autentyczności i wysyła je do usługi pozyskiwania tokenów w zamian za token sprawdzania aplikacji. Zestaw App Check SDK obsługuje buforowanie tokenów, więc zawsze otrzymuj nowy token w swojej implementacji getToken()
.
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;
}
}
Zaimplementuj również klasę AppCheckProviderFactory
, która tworzy instancje twojej implementacji 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. Zainicjuj sprawdzanie aplikacji
Dodaj następujący kod inicjujący do swojej aplikacji, aby działała przed użyciem jakichkolwiek innych pakietów SDK Firebase:
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());
Następne kroki
Gdy biblioteka sprawdzania aplikacji zostanie zainstalowana w Twojej aplikacji, rozpocznij dystrybucję zaktualizowanej aplikacji do użytkowników.
Zaktualizowana aplikacja kliencka zacznie wysyłać tokeny sprawdzania aplikacji wraz z każdym żądaniem skierowanym do Firebase, ale produkty Firebase nie będą wymagać, aby tokeny były ważne, dopóki nie włączysz wymuszania w sekcji Sprawdzanie aplikacji w konsoli Firebase.
Monitoruj metryki i włączaj egzekwowanie
Zanim jednak włączysz wymuszanie, upewnij się, że nie zakłóci to działania Twoich obecnych legalnych użytkowników. Z drugiej strony, jeśli zauważysz podejrzane użycie zasobów aplikacji, warto wcześniej włączyć wymuszanie.
Aby pomóc w podjęciu tej decyzji, możesz przejrzeć dane Sprawdzania aplikacji dotyczące usług, z których korzystasz:
- Monitoruj metryki żądań sprawdzania aplikacji dla bazy danych czasu rzeczywistego, Cloud Firestore, Cloud Storage i uwierzytelniania (beta).
- Monitoruj metryki żądań sprawdzania aplikacji dla Cloud Functions .
Włącz wymuszanie sprawdzania aplikacji
Gdy zrozumiesz, w jaki sposób Sprawdzanie aplikacji wpłynie na Twoich użytkowników i będziesz gotowy do kontynuowania, możesz włączyć wymuszanie Sprawdzania aplikacji:
- Włącz wymuszanie sprawdzania aplikacji dla bazy danych czasu rzeczywistego, Cloud Firestore, Cloud Storage i uwierzytelniania (beta).
- Włącz wymuszanie sprawdzania aplikacji dla Cloud Functions .
Użyj sprawdzania aplikacji w środowiskach debugowania
Jeśli po zarejestrowaniu aplikacji do kontroli aplikacji chcesz uruchomić aplikację w środowisku, którego kontrola aplikacji normalnie nie sklasyfikowałaby jako ważne, na przykład emulator podczas opracowywania lub ze środowiska ciągłej integracji (CI), możesz utwórz kompilację debugowania swojej aplikacji, która używa dostawcy debugowania sprawdzania aplikacji zamiast prawdziwego dostawcy zaświadczeń.
Zobacz Używanie sprawdzania aplikacji z dostawcą debugowania w systemie Android .