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

Ta strona pokazuje, jak włączyć App Check w aplikacji na Androida za pomocą wbudowanego dostawcy Play Integrity. Gdy włączysz App Check, będziesz mieć pewność , że tylko Twoja aplikacja może uzyskiwać dostęp do zasobów backendu projektu. Zobacz omówienie tej funkcji.

Dostawca Play Integrity obsługuje aplikacje na Androida opublikowane w Google Play, poza Google Play lub w obu tych miejscach. Jeśli Twój przypadek użycia wymaga funkcji Play Integrity , które nie są zaimplementowane w App Check, lub jeśli chcesz używać App Check z własnym dostawcą niestandardowym, przeczytaj artykuł Implementowanie niestandardowego dostawcy App Check.

1. Konfigurowanie projektu w Firebase

  1. Dodaj Firebase do projektu aplikacji na Androida, jeśli jeszcze tego nie zrobisz.

  2. Włącz interfejs Play Integrity API:

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

    2. W sekcji Wersja kliknij Integralność aplikacji.

    3. Otwórz sekcję Play Integrity API na stronie, kliknij Połącz projekt w chmurze, a następnie wybierz projekt w Firebase z listy projektów Google Cloud. Wybrany projekt musi być tym samym projektem w Firebase, w którym rejestrujesz aplikację (patrz następny krok).

  3. W konsoli Firebase otwórz Zabezpieczenia > Sprawdzanie aplikacji.

  4. Na karcie Aplikacje zarejestruj aplikacje, aby używać App Check z dostawcą Play Integrity. Musisz podać odcisk cyfrowy SHA-256 certyfikatu podpisywania aplikacji.

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

  5. Opcjonalnie: w ustawieniach rejestracji aplikacji ustaw niestandardowy czas życia danych (TTL) tokenów wydawanych przez dostawcę.App Check Możesz ustawić czas życia na dowolną wartość od 30 minut do 7 dni. Podczas zmiany tej wartości pamiętaj o tych kwestiach:

    • Bezpieczeństwo: krótszy czas życia zapewnia większe bezpieczeństwo, ponieważ zmniejsza okno, w którym wyciekły lub przechwycony token może zostać wykorzystany przez atakującego.
    • Wydajność: krótszy czas życia oznacza, że aplikacja będzie częściej przeprowadzać atestację. Ponieważ proces atestacji aplikacji dodaje opóźnienie do żądań sieciowych za każdym razem, gdy jest wykonywany, krótki czas życia może wpłynąć na wydajność aplikacji.
    • Limit i koszt: krótszy czas życia i częsta ponowna atestacja szybciej wyczerpują limit, a w przypadku usług płatnych mogą generować wyższe koszty. Zobacz Limity.

    Domyślny czas życia wynoszący 1 godzinę jest odpowiedni dla większości aplikacji. Pamiętaj, że biblioteka App Check odświeża tokeny mniej więcej w połowie czasu życia.

Skonfiguruj ustawienia zaawansowane (opcjonalnie)

App Check oferuje szereg ustawień, które obsługują zaawansowane przypadki użycia, w tym dystrybucję aplikacji poza Google Play. W przypadku każdej zarejestrowanej aplikacji na Androida możesz skonfigurować te ustawienia na karcie App Check > Aplikacje tab w konsoli Firebase. Zalecamy skonfigurowanie tych ustawień zgodnie z tabelą poniżej podczas pierwszej rejestracji aplikacji.

Kanał dystrybucji aplikacji PLAY_RECOGNIZED LICENSED Minimalny akceptowalny poziom integralności urządzenia
Wyłącznie w Google Play Wymagane Wymagane Nie sprawdzaj wyraźnie poziomu integralności urządzenia
Wyłącznie poza Google Play Niewymagane Niewymagane Integralność urządzenia
W Google Play i poza Google Play Wymagane Niewymagane Nie sprawdzaj wyraźnie poziomu integralności urządzenia

Szczegóły

Każde ustawienie zaawansowane odpowiada etykiecie oceny integralności Play Integrity. Więcej informacji znajdziesz w dokumentacji Play Integrity.

  • Domyślnie App Check wymaga etykiety rozpoznawania aplikacji.PLAY_RECOGNIZED Aplikacje nieopublikowane w Google Play nie kwalifikują się do otrzymania tej etykiety.
  • Domyślnie App Check nie wymaga etykiety licencji aplikacji LICENSED. Tę etykietę mogą otrzymać tylko użytkownicy, którzy zainstalowali lub zaktualizowali Twoją aplikację bezpośrednio z Google Play.
  • Domyślnie App Check nie sprawdza wyraźnie werdyktu integralności urządzenia. App Check obsługuje wyraźne sprawdzanie tych 3 poziomów integralności urządzenia (w kolejności rosnącej integralności):

    • Podstawowa integralność. Powoduje, że App Check wymaga etykiety rozpoznawania urządzenia.MEETS_BASIC_INTEGRITY Aby Twoja aplikacja mogła otrzymać tę opcjonalną etykietę, musisz najpierw wyrazić zgodę w Konsoli Google Play.

    • Integralność urządzenia. Powoduje, że App Check wymaga etykiety rozpoznawania urządzenia.MEETS_DEVICE_INTEGRITY Wszystkie aplikacje automatycznie kwalifikują się do otrzymania tej etykiety.

    • Restrykcyjna integralność. Powoduje, że App Check wymaga etykiety rozpoznawania urządzenia MEETS_STRONG_INTEGRITY. Aby Twoja aplikacja mogła otrzymać tę opcjonalną etykietę, musisz najpierw wyrazić zgodę w Konsoli Google Play.

2. Dodawanie biblioteki App Check do aplikacji

W pliku Gradle na poziomie modułu (aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle), dodaj zależność od biblioteki App Check na Androida. Do kontrolowania obsługi wersji biblioteki zalecamy używanie Firebase Android BoM.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:34.12.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 korzystamy z Firebase Android BoM, aplikacja zawsze używa zgodnych wersji bibliotek Firebase na Androida.

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

Jeśli nie chcesz używać Firebase BoM, musisz określić wersję każdej biblioteki Firebase w wierszu zależności.

Pamiętaj, że jeśli w aplikacji używasz kilku bibliotek Firebase, zdecydowanie zalecamy używanie BoM do zarządzania wersjami bibliotek, co zapewnia zgodność wszystkich wersji.

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:19.0.2")
}

3. Inicjowanie App Check

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

Kotlin

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

Java

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

Dalsze kroki

Gdy biblioteka App Check zostanie zainstalowana w aplikacji, zacznij rozpowszechniać zaktualizowaną aplikację wśród użytkowników.

Zaktualizowana aplikacja kliencka zacznie wysyłać App Check tokeny wraz z każdym żądaniem wysyłanym do Firebase, ale usługi Firebase nie będą wymagać, aby tokeny były prawidłowe, dopóki nie włączysz egzekwowania w sekcji App Check w Konsoli Firebase.

Monitorowanie danych i włączanie egzekwowania

Zanim włączysz egzekwowanie, upewnij się, że nie zakłóci to działania dotychczasowych użytkowników. Z drugiej strony, jeśli zauważysz podejrzane korzystanie z zasobów aplikacji, możesz włączyć egzekwowanie wcześniej.

Aby ułatwić podjęcie decyzji, możesz sprawdzić dane App Check dotyczące używanych usług:

Włączanie egzekwowania App Check

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

Używanie App Check w środowiskach debugowania

Jeśli po zarejestrowaniu aplikacji w App Check chcesz uruchomić aplikację w środowisku, które App Check zwykle nie klasyfikuje jako prawidłowe, np. w emulatorze podczas programowania lub w środowisku trybu ciągłej integracji (CI), możesz utworzyć kompilację do debugowania aplikacji, która zamiast prawdziwego dostawcy atestacji używa dostawcy debugowania App Check.

Zobacz Używanie App Check z dostawcą debugowania na Androida.