Na tej stronie wyjaśniamy, jak skonfigurować aplikację lub grę pod kątem interfejsu Play Integrity API. Musisz włączyć odpowiedzi z interfejsu API, a potem zintegrować ten interfejs z aplikacją i jej serwerem. Po połączeniu w Konsoli Google Play projektu Google Cloud, którego używasz do interfejsu Play Integrity API, w Konsoli Play staną się dostępne dodatkowe opcje konfiguracji, funkcje testowania i raportowania.
Włączanie odpowiedzi interfejsu Play Integrity API
Każda aplikacja lub pakiet SDK wywołujący interfejs Play Integrity API musi korzystać z projektu Google Cloud, aby monitorować korzystanie z interfejsu API. Aplikacje w Google Play mogą łączyć projekt w Google Cloud w Konsoli Google Play, aby włączyć odpowiedzi interfejsu Play Integrity API. Jeśli chcesz utworzyć nowy projekt w Google Cloud lub aplikacja jest rozpowszechniana wyłącznie poza Google Play, możesz włączyć odpowiedzi interfejsu Play Integrity API w Konsoli Google Cloud.
Konfigurowanie w Konsoli Google Play (zalecane)
Włączając odpowiedzi interfejsu Play Integrity API w Konsoli Google Play, uzyskasz dostęp do dodatkowych opcji konfiguracji, funkcji testowania i raportowania interfejsu API. Ta opcja jest dostępna tylko w przypadku aplikacji rozpowszechnianych w Google Play. Kliknij Wersja > Integralność aplikacji. W sekcji Play Integrity API wybierz Połącz projekt w Google Cloud. Wybierz projekt w chmurze, który chcesz połączyć z aplikacją. Umożliwi to odpowiedzi interfejsu Play Integrity API. Możesz teraz zintegrować interfejs Play Integrity API ze swoją aplikacją.
Konfigurowanie w konsoli Google Cloud
W konsoli Google Cloud utwórz nowy projekt Cloud lub wybierz istniejący projekt Cloud, którego chcesz użyć z interfejsem Play Integrity API. Przejdź do sekcji Interfejsy API i usługi. Kliknij Włącz interfejsy API i usługi. Wyszukaj interfejs Play Integrity API i go włącz. Możesz teraz zintegrować interfejs Play Integrity API ze swoją aplikacją.
Instrukcje konfigurowania pakietów SDK dla dostawców
Do wywoływania interfejsu Play Integrity API dostawcy pakietów SDK muszą używać własnego projektu Google Cloud, aby korzystanie z interfejsu API było przypisywane do pakietu SDK, a nie do poszczególnych aplikacji korzystających z pakietu SDK. Oznacza to, że aplikacje korzystające z Twojego pakietu SDK nie muszą osobno konfigurować interfejsu Play Integrity API. Twoje żądania do interfejsu Play Integrity API automatycznie wliczają się do użycia interfejsu API pakietu SDK, a nie aplikacji.
Deweloperzy pakietów SDK mają 2 opcje konfiguracji interfejsu Play Integrity API: konsolę Google Play SDK lub konsolę Google Cloud.
Użyj Google Play SDK Console (zalecane)
Włączając odpowiedzi interfejsu Play Integrity API w Konsoli Google Play SDK, uzyskasz dostęp do dodatkowych opcji konfiguracji. Otwórz stronę Integralność pakietu SDK i kliknij Ustawienia. W sekcji Konfiguracja projektu kliknij Połącz z projektem w chmurze. Wybierz projekt w chmurze, który chcesz połączyć z pakietem SDK. Umożliwi to włączanie odpowiedzi interfejsu Play Integrity API. Możesz teraz zintegrować interfejs Play Integrity API ze swoim pakietem SDK. Pamiętaj, że dostęp do Google Play SDK Console podlega kryteriom kwalifikacji.
Korzystanie z konsoli Google Cloud
Możesz włączyć odpowiedzi interfejsu Play Integrity API w Google Cloud Console. W konsoli Google Cloud utwórz nowy projekt Cloud lub wybierz istniejący projekt Cloud, którego chcesz używać z interfejsem Play Integrity API. Przejdź do sekcji Interfejsy API i usługi. Kliknij Włącz interfejsy API i usługi. Wyszukaj interfejs Play Integrity API i go włącz. Możesz teraz zintegrować interfejs Play Integrity API z pakietem SDK.
Zwiększanie dziennej liczby żądań wysyłanych przez pakiet SDK do interfejsu Play Integrity API
Dostawcy pakietów SDK, którzy chcą zwiększyć maksymalną liczbę żądań dziennie, powinni wypełnić formularz prośby o przydział danych. W sekcji otwartych komentarzy określ, że przesyłasz prośbę o pakiet SDK, i podaj współrzędne Maven (groupId:artifactId
) lub URL pakietu SDK.
Zwiększanie dziennej liczby żądań wysyłanych do interfejsu Play Integrity API
Twoja aplikacja może wysłać maksymalnie 10 tys. żądań dziennie. Jeśli Twoja aplikacja musi obsługiwać zwiększoną liczbę użytkowników, możesz poprosić o zwiększenie tej maksymalnej dziennej liczby, postępując zgodnie z instrukcjami podanymi poniżej.
Zwiększanie maksymalnej liczby żądań dziennie
Aby móc zwiększyć maksymalną dzienną liczbę żądań, aplikacja musi być dostępna w Google Play i ewentualnie innych kanałach dystrybucji. Nawet po zwiększeniu dziennego limitu nadal należy ograniczać klasyczne żądania na użytkownika do rzadko wykonywanych działań o wysokiej wartości, aby oszczędzać dane użytkownika i energię baterii.
Aby poprosić o zwiększenie dziennej maksymalnej liczby żądań:
- Połącz w Konsoli Play projekt Google Cloud, którego używasz do interfejsu Play Integrity API.
- Upewnij się, że prawidłowo wdrożono logikę interfejsu API, w tym zalecaną strategię ponownych prób.
- Poproś o zwiększenie limitu, korzystając z tego formularza.
Zwiększenie limitu interfejsu Play Integrity API może potrwać do tygodnia, dlatego zdecydowanie zalecamy monitorowanie wykorzystania interfejsu Play Integrity API w Konsoli Google Play lub w Konsoli Google Cloud, gdzie możesz też skonfigurować alerty dotyczące limitu, aby uniknąć przerw w działaniu usługi.
Zwiększenie limitu żądań klasycznych zostanie automatycznie zastosowane zarówno do wywołania klienta w celu wygenerowania tokenów integralności, jak i do wywołania serwera w celu odszyfrowania i weryfikacji tokenów integralności. Standardowe zwiększenia limitu żądań są stosowane do wywołania serwera w celu odszyfrowania i weryfikacji tokenów integralności.
Zintegruj interfejs Play Integrity API z aplikacją
Aby zintegrować interfejs Play Integrity API z aplikacją lub pakietem SDK, wykonaj jedną z tych czynności w zależności od środowiska programistycznego:
Kotlin lub Java
Najnowszą bibliotekę na Androida dla interfejsu Play Integrity API można pobrać z repozytorium Google Maven.
Dodaj do pliku build.gradle
aplikacji tę zależność:
implementation 'com.google.android.play:integrity:1.4.0'
Unity
Zainstaluj wtyczkę Google Play Integrity Plugin for Unity w wersji 1.3.0 lub nowszej. Instrukcje znajdziesz w artykule Instalowanie pakietów Google w Unity.
- Obsługiwane są wszystkie wersje 2019.x, 2020.x i nowsze.
- Jeśli korzystasz z Unity 2018.x, obsługiwana jest wersja 2018.4 lub nowsza.
- Wersje Unity 2017.x i starsze nie są obsługiwane.
Rodzimy użytkownik
Zainstaluj pakiet SDK podstawowej biblioteki Play do aplikacji natywnych w wersji 1.13.0 lub nowszej. Więcej informacji znajdziesz w przewodniku po konfigurowaniu środowiska programistycznego dla podstawowej biblioteki Play do aplikacji natywnych.
Konfigurowanie odpowiedzi interfejsu API (opcjonalnie)
Odpowiedź interfejsu API zawiera domyślne oceny zwracane w każdym żądaniu. Jeśli skonfigurujesz integrację interfejsu Play Integrity API w Konsoli Play, możesz dostosować odpowiedź interfejsu API.
Domyślne odpowiedzi
W odpowiedzi interfejsu Play Integrity API są domyślnie zwracane te oceny integralności:
Pole odpowiedzi | Wartość | Opis |
---|---|---|
Integralność urządzenia | MEETS_DEVICE_INTEGRITY |
Aplikacja działa na urządzeniu z Androidem z Usługami Google Play. Urządzenie przeszło testy integralności systemu i jest zgodne z Androidem. |
Pusty (pusta wartość) | Aplikacja działa na urządzeniu, na którym pojawiły się oznaki ataku (np. punkt zaczepienia w interfejsie API) lub naruszenia systemu (np. dostęp do roota), albo aplikacja nie działa na urządzeniu fizycznym (tylko np. na emulatorze, który nie przeszedł testów integralności Google Play). | |
Szczegóły konta Google Play | LICENSED |
Użytkownik ma uprawnienia do korzystania z aplikacji, To znaczy, że zainstalował ją z Google Play lub zaktualizował na swoim urządzeniu. |
UNLICENSED |
Użytkownik nie ma uprawnień do korzystania z aplikacji. Może się tak zdarzyć, jeśli np. zainstaluje ją z innego urządzenia lub nie pozyska jej z Google Play. | |
UNEVALUATED |
Szczegóły dotyczące licencji nie zostały ocenione, ponieważ pominięto wymagania. Może się tak zdarzyć z kilku powodów, m.in.:
|
|
Integralność aplikacji | PLAY_RECOGNIZED |
Aplikacja i certyfikat odpowiadają wersjom rozpowszechnianym w Google Play. |
UNRECOGNIZED_VERSION |
Nazwa certyfikatu lub pakietu nie odpowiada rekordom Google Play. | |
UNEVALUATED |
Integralność aplikacji nie została określona. Pominięto niezbędny wymóg, np. urządzenie nie było wystarczająco godne zaufania. |
Odpowiedzi warunkowe
W przypadku rozpowszechniania treści w Grach Google Play na PC automatycznie włączona jest opcja otrzymywania dodatkowej etykiety w opinii o integralności urządzenia:
Pole odpowiedzi | Wytwórnia | Opis |
---|---|---|
Integralność urządzenia | MEETS_VIRTUAL_INTEGRITY |
Aplikacja działa w narzędziu Android Emulator z Usługami Google Play. Emulator przeszedł testy integralności systemu i spełnia podstawowe wymagania dotyczące zgodności dla urządzeń z Androidem. |
Odpowiedzi opcjonalne
Jeśli integrację z interfejsem Play Integrity API skonfigurujesz w Konsoli Play lub w Konsoli Play SDK, możesz wyrazić zgodę na otrzymywanie informacji w odpowiedzi interfejsu API.
Aby wprowadzić zmiany w odpowiedziach interfejsu API, otwórz Konsolę Play i kliknij Wersja > Integralność aplikacji. W sekcji Odpowiedzi zmodyfikuj i zapisz zmiany.
Opcjonalne informacje o urządzeniu
Aplikacje i pakiety SDK mogą włączyć dodatkowe etykiety urządzeń w opinii dotyczącej integralności urządzenia. Gdy wyrazisz zgodę na otrzymywanie dodatkowych etykiet, odpowiedź dotycząca integralności będzie zawierać wiele etykiet dla tego samego urządzenia, jeśli zostaną spełnione wszystkie kryteria. Możesz uzależnić działanie serwera backendu od wielu różnych odpowiedzi. Na przykład urządzenie, które zwraca 3 etykiety (MEETS_STRONG_INTEGRITY
, MEETS_DEVICE_INTEGRITY
i MEETS_BASIC_INTEGRITY
), może być bardziej wiarygodne niż urządzenie, które zwraca tylko 1 etykietę (MEETS_BASIC_INTEGRITY
).
Możesz też włączyć ostatnią aktywność na urządzeniu. Ostatnia aktywność na urządzeniachzwraca poziom od LEVEL_1
(mała liczba żądań) do LEVEL_4
(duża liczba żądań). Na przykład urządzenie, które zwraca znacznie wyższy poziom aktywności niż zwykle w przypadku Twojej aplikacji, może próbować wygenerować dużą liczbę tokenów integralności na potrzeby dystrybucji na niesprawdzonych urządzeniach.
Możesz też wyrazić zgodę na atrybuty urządzenia, które informują o wersji pakietu Android SDK systemu operacyjnego Androida działającego na urządzeniu. W przyszłości może zostać rozszerzony o inne atrybuty urządzenia.
Pole odpowiedzi | Wytwórnia | Opis | |
---|---|---|---|
Integralność urządzenia | MEETS_BASIC_INTEGRITY |
Aplikacja działa na urządzeniu, które przeszło podstawowe testy integralności systemu. Urządzenie może być niezgodne z Androidem i mogło nie zostać zatwierdzone do uruchamiania Usług Google Play. Na przykład może korzystać z nierozpoznanej wersji Androida, mieć odblokowany program rozruchowy lub nie mieć certyfikatu producenta. | |
MEETS_STRONG_INTEGRITY |
Aplikacja działa na urządzeniu z Androidem z Usługami Google Play. Gwarancja integralności systemu jest wysoka – np. dzięki sprzętowemu dowodowi integralności rozruchu. Urządzenie przeszło testy integralności systemu i jest zgodne z Androidem. | ||
Żądania tokena integralności standardowego interfejsu API na tym urządzeniu w ciągu ostatniej godziny (według aplikacji) | Żądania tokena integralności klasycznego interfejsu API na tym urządzeniu w ciągu ostatniej godziny (według aplikacji) | ||
Ostatnia aktywność na urządzeniu | LEVEL_1 (najniższa) |
10 lub mniej | 5 lub mniej |
LEVEL_2 |
Od 11 do 25 lat | Od 6 do 10 | |
LEVEL_3 |
Od 26 do 50 | Od 11 do 15 | |
LEVEL_4 (najwyższa) |
Ponad 50 | Ponad 15 | |
UNEVALUATED |
Ostatnia aktywność na urządzeniu nie została oceniona. Może się tak zdarzyć, ponieważ:
|
||
Atrybuty urządzenia | sdkVersion: 19, 20, ..., 35 |
Wersja pakietu SDK systemu operacyjnego Android używanego na urządzeniu.
Zwracana liczba odpowiada wartościBuild.VERSION_CODES . |
|
Pusty (pusta wartość) | Wersja pakietu SDK nie została oceniona, ponieważ pominięto niezbędny wymóg. W tym przypadku pole sdkVersion jest puste, więc pole deviceAttributes jest puste.
Może się tak zdarzyć, ponieważ:
|
Opcjonalne informacje o środowisku
Aplikacje mogą się zgłaszać do otrzymywania dodatkowych ocen środowiska. Ryzyko związane z dostępem aplikacji informuje, czy uruchomione są inne aplikacje, które mogą rejestrować to, co widać na ekranie, wyświetlać nakładki lub kontrolować urządzenie. Ocena Play Protect informuje, czy usługa Play Protect jest włączona na urządzeniu i czy wykryła znane złośliwe oprogramowanie.
Gdy wyrazisz zgodę na otrzymywanie tych ocen, odpowiedź interfejsu API będzie zawierać pole z danymi środowiska z oznaczeniem oceny:
Pole odpowiedzi | Wartość | Opis |
---|---|---|
Ocena ryzyka dotyczącego dostępu do aplikacji | KNOWN_INSTALLED |
Aplikacje są instalowane przez Google Play lub są wstępnie ładowane na partycji systemowej przez producenta urządzenia. |
KNOWN_CAPTURING |
Uruchomione są aplikacje zainstalowane przez Google Play lub wstępnie załadowane na urządzenie, które mogą służyć do odczytywania lub rejestrowania danych wejściowych i wyjściowych aplikacji przesyłającej żądanie, np. aplikacje do nagrywania ekranu. | |
KNOWN_CONTROLLING |
Uruchomione są aplikacje zainstalowane przez Google Play lub wstępnie załadowane na urządzenie, które mogą służyć do sterowania urządzeniem oraz do obsługi wejść i wyjść aplikacji przesyłającej żądanie, np. aplikacji do zdalnego sterowania. | |
KNOWN_OVERLAYS |
Uruchomione są aplikacje zainstalowane przez Google Play lub wstępnie załadowane na urządzeniu, które mogą wyświetlać nakładki na aplikacji przesyłającej żądanie. | |
UNKNOWN_INSTALLED |
Zainstalowane są inne aplikacje, które nie zostały zainstalowane przez Google Play ani nie zostały wstępnie załadowane na partycji systemowej przez producenta urządzenia. | |
UNKNOWN_CAPTURING |
Użytkownik uruchomił inne aplikacje (niezainstalowane przez Google Play ani niewczytane wstępnie na urządzeniu), które mogą służyć do odczytywania lub rejestrowania danych wejściowych i wyjściowych aplikacji przesyłającej żądanie, np. aplikacji do nagrywania ekranu. | |
UNKNOWN_CONTROLLING |
Użytkownik uruchomił inne aplikacje (nieinstalowane przez Google Play ani niewczytane wstępnie na urządzenie), które mogą służyć do sterowania urządzeniem oraz do obsługi wejść i wyjść aplikacji przesyłającej żądanie, np. aplikacji do zdalnego sterowania. | |
UNKNOWN_OVERLAYS |
Uruchomione są inne aplikacje (niezainstalowane przez Google Play ani niewczytane wstępnie na urządzeniu), które mogą wyświetlać nakładki na aplikacji przesyłającej żądanie. | |
Pusty (pusta wartość) | Ryzyko dotyczące dostępu do aplikacji nie jest oceniane, jeśli pominięto niezbędny wymóg. W takim przypadku pole appAccessRiskVerdict jest puste. Może się tak zdarzyć z kilku powodów, m.in.:
|
|
Werdykt Play Protect | NO_ISSUES |
Usługa Play Protect jest włączona i nie wykryła żadnych problemów z aplikacją na urządzeniu. |
NO_DATA |
Usługa Play Protect jest włączona, ale skanowanie nie zostało jeszcze wykonane. Urządzenie lub aplikacja Sklep Play mogły zostać niedawno zresetowane. | |
POSSIBLE_RISK |
Funkcja Play Protect jest wyłączona. | |
MEDIUM_RISK |
Usługa Play Protect jest włączona i wykryła zainstalowane na urządzeniu potencjalnie szkodliwe aplikacje. | |
HIGH_RISK |
Usługa Play Protect jest włączona i wykryła na urządzeniu niebezpieczne aplikacje. | |
UNEVALUATED |
Wynik Play Protect nie został oceniony. Pominięto niezbędny wymóg, np. urządzenie nie było wystarczająco godne zaufania. |
Konfigurowanie ustawień żądań klasycznych (opcjonalnie)
Pomiń tę sekcję, jeśli zamierzasz wysyłać tylko standardowe żądania interfejsu API.
Gdy wysyłasz żądania klasyczne, serwery Google Play domyślnie zarządzają szyfrowaniem odpowiedzi, którego używa Twoja aplikacja podczas interakcji z interfejsem Play Integrity API. Chociaż zalecamy używanie tej opcji domyślnej, możesz też zarządzać kluczami szyfrowania odpowiedzi i je pobierać, postępując zgodnie z instrukcjami podanymi poniżej.
Pozwól Google zarządzać szyfrowaniem odpowiedzi (domyślnie i zalecane)
Aby zapewnić bezpieczeństwo aplikacji, zalecamy zezwolenie Google na generowanie kluczy szyfrowania odpowiedzi i zarządzanie nimi. Twój serwer backendu połączy się z serwerem Google Play, aby odszyfrować odpowiedzi.
Chcę samodzielnie pobierać klucze szyfrowania odpowiedzi i nimi zarządzać
Jeśli chcesz odszyfrować werdyk integralności lokalnie w bezpiecznym środowisku serwera, możesz zarządzać kluczami szyfrowania odpowiedzi i je pobierać. Aby zarządzać kluczami szyfrowania odpowiedzi i je pobierać, musisz korzystać z Konsoli Play. Twoja aplikacja musi być dostępna w Google Play i w ewentualnych innych kanałach dystrybucji. Aby przejść z kluczy szyfrowania odpowiedzi zarządzanych przez Google na klucze zarządzane samodzielnie, wykonaj podane niżej czynności.
Pamiętaj, aby nie odszyfrowywać ani nie weryfikować otrzymanego tokena w aplikacji klienta. Nigdy nie udostępniaj kluczy odszyfrowywania aplikacji klienta.
Zanim zmienisz strategię zarządzania szyfrowaniem odpowiedzi w Konsoli Play, upewnij się, że Twój serwer jest prawidłowo skonfigurowany pod kątem odszyfrowywania i weryfikowania tokenów integralności na serwerach Google Play.
Przełączanie się między kluczami szyfrowania odpowiedzi zarządzanymi przez Google a kluczami zarządzanymi samodzielnie
Jeśli obecnie szyfrowaniem odpowiedzi zarządza Google, a chcesz samodzielnie zarządzać kluczami szyfrowania odpowiedzi i je pobierać, wykonaj te czynności:
- Zaloguj się w Konsoli Play.
- Wybierz aplikację, która korzysta z interfejsu Play Integrity API.
- W sekcji Wersja w menu po lewej stronie kliknij Integralność aplikacji.
- Obok opcji Play Integrity API kliknij Ustawienia.
- W sekcji Klasyczne żądania na stronie obok opcji Szyfrowanie odpowiedzi kliknij Edytuj.
- W wyświetlonym oknie kliknij Chcę samodzielnie pobierać klucze szyfrowania odpowiedzi i nimi zarządzać.
- Aby przesłać klucz publiczny, postępuj zgodnie z instrukcjami.
- Gdy w oknie pojawi się komunikat o udanym przesłaniu, kliknij Zapisz. Zaszyfrowane klucze zostaną pobrane automatycznie.
- Zmień logikę serwera, aby odszyfrowywać i weryfikować tokeny integralności lokalnie, w bezpiecznym środowisku serwera, przy użyciu kluczy szyfrowania odpowiedzi.
- (Opcjonalnie) Jeśli samodzielnie zarządzasz kluczami szyfrowania odpowiedzi, aplikacja może nadal korzystać z serwera Google Play, aby odszyfrować i zweryfikować odpowiedź.
Jeśli samodzielnie zarządzasz kluczami szyfrowania odpowiedzi i chcesz przejść na zarządzanie szyfrowaniem odpowiedzi przez Google, wykonaj te czynności:
- Zmień logikę serwera, aby odszyfrowywać i weryfikować tylko na serwerach Google.
- Zaloguj się w Konsoli Play.
- Wybierz aplikację, która korzysta z interfejsu Play Integrity API.
- W sekcji Wersja w menu po lewej stronie kliknij Integralność aplikacji.
- Obok opcji Play Integrity API kliknij Ustawienia.
- W sekcji Klasyczne żądania na stronie obok opcji Szyfrowanie odpowiedzi kliknij Edytuj.
- W wyświetlonym oknie kliknij Chcę, aby moje klucze szyfrowania odpowiedzi były zarządzane przez Google (zalecane).
- Kliknij Zapisz zmiany.