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, zapoznaj się z artykułem Implementowanie niestandardowego dostawcy App Check.
1. Konfigurowanie projektu w Firebase
Dodaj Firebase do projektu aplikacji na Androida, jeśli jeszcze tego nie zrobiłeś.
Włącz interfejs Play Integrity API:
W Konsoli Google Play, wybierz swoją aplikację lub dodaj ją, jeśli nie została jeszcze dodana.
W sekcji Wersja kliknij Integralność aplikacji.
Otwórz sekcję Interfejs Play Integrity API na stronie, kliknij Połącz z projektem w chmurze, 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).
W konsoli Firebase otwórz Zabezpieczenia > Sprawdzanie aplikacji.
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 zasad w przypadku usługi Firebase tylko zarejestrowane aplikacje będą mogły uzyskiwać dostęp do zasobów backendu tej usługi.
Opcjonalnie: ustaw czas życia tokena (TTL).
W ustawieniach rejestracji aplikacji ustaw niestandardowy czas życia (TTL) dla App Check tokenów wydawanych przez dostawcę. Możesz ustawić TTL na dowolną wartość od 30 minut do 7 dni. Podczas zmiany tej wartości pamiętaj o tych kompromisach:
- Bezpieczeństwo: krótsze czasy TTL zapewniają większe bezpieczeństwo, ponieważ zmniejszają okno, w którym wyciekły lub przechwycony token może zostać wykorzystany przez atakującego.
- Wydajność: krótsze czasy TTL oznaczają, ż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 TTL może wpłynąć na wydajność aplikacji.
- Limit i koszt: krótsze czasy TTL i częste ponowne atestacje szybciej wyczerpują limit, a w przypadku płatnych usług mogą kosztować więcej. Zobacz Limity.
Domyślny czas TTL 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 TTL.
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
PLAY_RECOGNIZEDetykiety rozpoznawania aplikacji. 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
MEETS_BASIC_INTEGRITYetykiety rozpoznawania urządzenia. 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
MEETS_DEVICE_INTEGRITYetykiety rozpoznawania urządzenia. 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. 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:34.18.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życia 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.4.1") }
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 dystrybuować zaktualizowaną aplikację wśród użytkowników.
Zaktualizowana aplikacja kliencka zacznie wysyłać tokeny App Check 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 zasad w sekcji App Check w konsoli Firebase.
Monitorowanie danych i włączanie egzekwowania zasad
Zanim włączysz egzekwowanie zasad, upewnij się, że nie zakłóci to działania dotychczasowych użytkowników. Z drugiej strony, jeśli zauważysz podejrzane użycie zasobów aplikacji, możesz włączyć egzekwowanie zasad wcześniej.
Aby ułatwić podjęcie decyzji, możesz sprawdzić dane App Check dotyczące używanych usług:
- Monitoruj App Check dane żądań w przypadku Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity for iOS, Maps JavaScript API i Places API (nowa wersja).
- Monitoruj dane żądań App Check w przypadku Cloud Functions.
Włączanie egzekwowania zasad 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 zasad App Check:
- Włącz egzekwowanie zasadApp Checkw przypadku Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity for iOS, Maps JavaScript API i Places API (nowa wersja).
- Włącz egzekwowanie zasad App Check w przypadku Cloud Functions.
Używanie App Check w środowiskach debugowania
Jeśli po zarejestrowaniu aplikacji w App Check chcesz uruchomić ją w środowisku, które App Check zwykle nie klasyfikuje jako prawidłowe, np. w emulatorze podczas programowania lub w środowisku ciągłej integracji (CI), możesz utworzyć kompilację debugowania aplikacji, która zamiast prawdziwego dostawcy atestacji używa dostawcy debugowania App Check.
Zobacz Używanie App Check z dostawcą debugowania na Androida.