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
Dodaj Firebase do projektu aplikacji na Androida, jeśli jeszcze tego nie zrobisz.
Włącz interfejs Play Integrity API:
W Konsoli Google Play, wybierz swoją aplikację lub dodaj ją, jeśli jeszcze tego nie zrobisz.
W sekcji Wersja kliknij Integralność aplikacji.
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).
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 w przypadku usługi Firebase tylko zarejestrowane aplikacje będą mogły uzyskiwać dostęp do zasobów backendu tej usługi.
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_RECOGNIZEDAplikacje 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_INTEGRITYAby 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_INTEGRITYWszystkie 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:
- Monitoruj 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).App Check
- Monitoruj dane żądań App Check w przypadku Cloud Functions.
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:
- Włącz egzekwowanie 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).App Check
- Włącz egzekwowanie w przypadku Cloud Functions.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.