Konfiguracja

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

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 APIgo 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.

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 APIgo 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ń:

  1. Połącz w Konsoli Play projekt Google Cloud, którego używasz do interfejsu Play Integrity API.
  2. Upewnij się, że prawidłowo wdrożono logikę interfejsu API, w tym zalecaną strategię ponownych prób.
  3. 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.:
  • Urządzenie nie jest wystarczająco zaufane.
  • Użytkownik nie jest zalogowany w Google Play.
  • Google Play nie rozpoznaje wersji aplikacji zainstalowanej na urządzeniu.
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_INTEGRITYMEETS_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ż:
  • Urządzenie nie jest wystarczająco zaufane.
  • Google Play nie rozpoznaje wersji aplikacji zainstalowanej na urządzeniu.
  • Wystąpiły problemy techniczne z urządzeniem.
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ż:
  • Urządzenie nie jest wystarczająco zaufane.
  • Google Play nie rozpoznaje wersji aplikacji zainstalowanej na urządzeniu.
  • Wystąpiły problemy techniczne z urządzeniem.

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.:
  • Urządzenie nie jest wystarczająco zaufane.
  • Urządzenie nie jest telefonem, tabletem ani składanym urządzeniem.
  • Urządzenie nie ma zainstalowanego Androida 6 (poziom interfejsu API 23) lub nowszego.
  • Google Play nie rozpoznaje wersji aplikacji zainstalowanej na urządzeniu.
  • Wersja Sklepu Google Play na urządzeniu jest nieaktualna.
  • Tylko gry: konto użytkownika nie ma licencji na grę w Google Play.
  • Użyto standardowego żądania z parametrem verdictOptOut.
  • W przypadku żądania standardowego użyto wersji biblioteki interfejsu Play Integrity API, która nie obsługuje jeszcze ryzyka dotyczącego dostępu do aplikacji w przypadku żądań standardowych.
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:

  1. Zaloguj się w Konsoli Play.
  2. Wybierz aplikację, która korzysta z interfejsu Play Integrity API.
  3. W sekcji Wersja w menu po lewej stronie kliknij Integralność aplikacji.
  4. Obok opcji Play Integrity API kliknij Ustawienia.
  5. W sekcji Klasyczne żądania na stronie obok opcji Szyfrowanie odpowiedzi kliknij Edytuj.
  6. W wyświetlonym oknie kliknij Chcę samodzielnie pobierać klucze szyfrowania odpowiedzi i nimi zarządzać.
  7. Aby przesłać klucz publiczny, postępuj zgodnie z instrukcjami.
  8. Gdy w oknie pojawi się komunikat o udanym przesłaniu, kliknij Zapisz. Zaszyfrowane klucze zostaną pobrane automatycznie.
  9. Zmień logikę serwera, aby odszyfrowywać i weryfikować tokeny integralności lokalnie, w bezpiecznym środowisku serwera, przy użyciu kluczy szyfrowania odpowiedzi.
  10. (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:

  1. Zmień logikę serwera, aby odszyfrowywać i weryfikować tylko na serwerach Google.
  2. Zaloguj się w Konsoli Play.
  3. Wybierz aplikację, która korzysta z interfejsu Play Integrity API.
  4. W sekcji Wersja w menu po lewej stronie kliknij Integralność aplikacji.
  5. Obok opcji Play Integrity API kliknij Ustawienia.
  6. W sekcji Klasyczne żądania na stronie obok opcji Szyfrowanie odpowiedzi kliknij Edytuj.
  7. W wyświetlonym oknie kliknij Chcę, aby moje klucze szyfrowania odpowiedzi były zarządzane przez Google (zalecane).
  8. Kliknij Zapisz zmiany.