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

Z tego artykułu dowiesz się, jak włączyć App Check w aplikacji na Androida przy użyciu wbudowanego dostawcy Play Integrity. Włączenie usługi App Check daje pewność, że tylko Twoja aplikacja będzie miała dostęp do zasobów Firebase projektu. 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 musisz zarejestrować wszystkie aplikacje projektu, ponieważ po włączeniu egzekwowania zasad w usłudze Firebase tylko zarejestrowane aplikacje będą miały 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ę. Proces poświadczania aplikacji zwiększa opóźnienie żądań sieciowych za każdym razem, dlatego krótki czas TTL może wpływać na wydajność 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 z mniej więcej połowę czasu 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.6.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")
}

Dzięki użyciu Firebase Android BoMaplikacja zawsze będzie używać zgodnych wersji bibliotek Firebase na Androida.

(Alternatywnie) Dodaj zależności bibliotek Firebase bez korzystania z 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) zarówno deweloperzy aplikacji Kotlin, jak i języki Java mogą korzystać z modułu głównego biblioteki (szczegółowe informacje znajdziesz w najczęstszych pytaniach na temat 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 wskaźników i włączanie wymuszania

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 korzystanie z 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łączanie wymuszania zasad App Check

Gdy zrozumiesz, jak App Check wpłynie na Twoich 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 App Check chcesz ją uruchamiać w środowisku, które App Check normalnie nie zostałoby sklasyfikowane jako prawidłowe, np. w emulatorze podczas programowania lub w środowisku ciągłej integracji (CI), możesz utworzyć kompilację do debugowania, która zamiast prawdziwego debugowania używa parametru App Check

Zapoznaj się z sekcją Używanie App Check z dostawcą debugowania na Androidzie.