Pierwsze kroki ze Sprawdzaniem aplikacji za pomocą Play Integrity na Androidzie

Na tej stronie znajdziesz instrukcje włączania funkcji App Check w aplikacji na Androida za pomocą wbudowanego dostawcy Play Integrity. Gdy włączysz App Check, zapewnisz, że tylko Twoja aplikacja będzie mieć dostęp do zasobów Firebase w Twoim projekcie. Zapoznaj się z omówieniem tej funkcji.

Obecnie wbudowany dostawca Play Integrity obsługuje tylko aplikacje na Androida rozpowszechniane w Google Play. Aby korzystać z funkcji Play Integrity poza Google Play lub używać App Check z własnym niestandardowym dostawcą, zapoznaj się z artykułem Wdrażanie niestandardowego dostawcy App Check.

1. Konfigurowanie projektu Firebase

  1. Dodaj Firebase do projektu na Androida, jeśli nie zostało to jeszcze zrobione.

  2. Włącz interfejs Play Integrity API:

    1. Konsoli Google Play wybierz swoją aplikację lub dodaj ją, jeśli jeszcze tego nie zrobiono.

    2. W sekcji Wersja kliknij Integralność aplikacji.

    3. Przejdź do sekcji Interfejs Play Integrity API, kliknij Połącz z projektem Cloud, a następnie wybierz projekt Firebase z listy projektów Google Cloud. Wybrany projekt musi być tym samym projektem Firebase, w którym rejestrujesz aplikację (patrz następny krok).

  3. Zarejestruj aplikacje, aby używać App Check u dostawcy Play Integrity w sekcji App Check w konsoli Firebase. Musisz dostarczyć odcisk cyfrowy SHA-256 certyfikatu podpisywania aplikacji.

    Zwykle trzeba zarejestrować wszystkie aplikacje projektu, ponieważ po włączeniu egzekwowania zasad dotyczących usługi Firebase tylko zarejestrowane aplikacje będą mogły uzyskiwać dostęp do zasobów backendu tej usługi.

  4. Opcjonalnie: w ustawieniach rejestracji aplikacji ustaw niestandardowy czas życia danych (TTL) dla tokenów App Check wydanych przez dostawcę. Wartość TTL możesz ustawić na dowolną wartość od 30 minut do 7 dni. Podczas zmiany tej wartości należy wziąć pod uwagę te kompromisy:

    • Bezpieczeństwo: krótsze czasy TTL zapewniają większą ochronę, ponieważ zmniejszają czas, w którym atakujący może wykorzystać wyciek lub przechwycenie tokena.
    • Wydajność: krótsze czasy TTL oznaczają, że aplikacja będzie częściej przeprowadzać weryfikację. Ponieważ proces uwierzytelniania aplikacji zwiększa opóźnienie żądań sieciowych przy każdym jego wykonaniu, krótki czas trwania TTL może mieć wpływ na działanie aplikacji.
    • Limit i koszt: krótsze okresy ważności i częste ponowne uwierzytelnianie powodują szybsze wyczerpywanie limitu, a w przypadku płatnych usług mogą też zwiększać koszty. Zobacz Limity i kwoty.

    Domyślna wartość TTL, czyli 1 godzina, jest odpowiednia w przypadku większości aplikacji. Pamiętaj, że biblioteka App Check odświeża tokeny co około połowę czasu trwania wartości TTL.

2. Dodawanie biblioteki App Check do aplikacji

pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle) dodaj zależność z biblioteką App Check na Androida. Zalecamy używanie Firebase Android BoM do kontrolowania wersji biblioteki.

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

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

Gdy korzystasz z Firebase Android BoM, aplikacja zawsze używa zgodnych wersji bibliotek Firebase na Androida.

(Alternatywnie)  Dodaj zależności biblioteki Firebase bez używania pakietu BoM

Jeśli zdecydujesz się nie używać Firebase BoM, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.

Jeśli w aplikacji używasz kilku bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami bibliotek. Dzięki temu wszystkie wersje będą ze sobą zgodne.

dependencies {
    // Add the dependencies for the App Check libraries
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck-playintegrity:18.0.0")
}
Szukasz modułu biblioteki dla Kotlina? Od października 2023 r. (Firebase BoM 32.5.0) deweloperzy Kotlina i Java mogą korzystać z głównego modułu biblioteki (szczegółowe informacje znajdziesz w często zadawanych pytaniach dotyczących tej inicjatywy).

3. Inicjowanie App Check

Dodaj do aplikacji ten kod inicjalizacji, aby był wykonywany przed użyciem innych pakietów SDK Firebase:

Kotlin+KTX

Firebase.initialize(context = this)
Firebase.appCheck.installAppCheckProviderFactory(
    PlayIntegrityAppCheckProviderFactory.getInstance(),
)

Java

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

Dalsze kroki

Po zainstalowaniu biblioteki App Check w aplikacji rozpocznij dystrybucję zaktualizowanej aplikacji do użytkowników.

Zaktualizowana aplikacja kliencka zacznie wysyłać tokeny App Check wraz z każdą prośbą wysyłaną do Firebase, ale usługi Firebase nie będą wymagać, aby tokeny były prawidłowe, dopóki nie włączysz wymuszania w sekcji App Check w konsoli Firebase.

Monitorowanie danych i włączanie egzekwowania

Zanim jednak włączysz egzekwowanie zasad, upewnij się, że nie zakłóci to działania dotychczasowych prawidłowych użytkowników. Jeśli jednak zauważysz podejrzane wykorzystanie zasobów aplikacji, możesz wcześniej włączyć egzekwowanie.

Aby ułatwić sobie podjęcie decyzji, możesz sprawdzić dane App Check dotyczące usług, których używasz:

Włącz wymuszanie App Check

Gdy zrozumiesz, jak App Check wpłynie na użytkowników i będziesz gotowy do dalszych działań, możesz włączyć egzekwowanie App Check:

Używanie App Check w środowiskach debugowania

Jeśli po zarejestrowaniu aplikacji w usłudze App Check chcesz uruchomić ją w środowisku, które App Check normalnie nie uzna za ważne, np. w emulatorze podczas tworzenia lub w środowisku ciągłej integracji (CI), możesz utworzyć wersję debugową aplikacji, która używa dostawcy debugowania App Check zamiast prawdziwego dostawcy uwierzytelniania.

Zapoznaj się z artykułem Korzystanie z App Check z dostawcą usług debugowania na Androidzie.