Konfiguracja

Z tego artykułu dowiesz się, jak skonfigurować aplikację lub grę pod kątem interfejsu Play Integrity API. Musisz włączyć odpowiedzi z interfejsu API, a potem zintegrować go z aplikacją i jej serwerem backendu. Dodatkowe opcje konfiguracji, funkcje testowe i raportowanie stają się dostępne po połączeniu w Konsoli Google Play projektu Google Cloud, którego używasz na potrzeby interfejsu Play Integrity API.

Włącz odpowiedzi interfejsu Play Integrity API

Każda aplikacja i każdy pakiet SDK wywołujący interfejs Play Integrity API musi używać projektu Google Cloud do monitorowania korzystania z interfejsu API. Aplikacje w Google Play mogą połączyć projekt Cloud w Konsoli Google Play, aby włączać odpowiedzi Play Integrity API. Jeśli chcesz utworzyć nowy projekt Cloud lub Twoja aplikacja jest rozpowszechniana wyłącznie poza Google Play, możesz włączyć odpowiedzi interfejsu Play Integrity API w konsoli Google Cloud.

Skonfiguruj w Konsoli Google Play (zalecane)

Po włączeniu odpowiedzi interfejsu Play Integrity API w Konsoli Google Play uzyskasz dostęp do dodatkowych opcji konfiguracji, funkcji testowania i raportów 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 z projektem Cloud. Wybierz projekt Cloud, który chcesz połączyć z aplikacją. Spowoduje to włączenie odpowiedzi interfejsu Play Integrity API. Możesz teraz zintegrować interfejs Play Integrity API ze swoją aplikacją.

Skonfiguruj w Google Cloud Console

W konsoli Google Cloud utwórz nowy projekt Google Cloud lub wybierz istniejący projekt Cloud, którego chcesz używać z interfejsem Play Integrity API. Otwórz Interfejsy API i usługi. Wybierz Włącz interfejsy API i usługi. Wyszukaj interfejs Play Integrity API, a potem go włącz. Możesz teraz zintegrować interfejs Play Integrity API ze swoją aplikacją.

Konfigurowanie instrukcji dla dostawców pakietów SDK

W celu wywołania interfejsu Play Integrity API dostawcy pakietów SDK muszą używać własnych projektów Google Cloud. Dzięki temu korzystanie z interfejsu API jest przypisywane do pakietu SDK, a nie do poszczególnych aplikacji, które z niego korzystają. Oznacza to, że aplikacje używające Twojego pakietu SDK nie muszą samodzielnie konfigurować interfejsu Play Integrity API. Twoje żądania wysyłane do interfejsu Play Integrity API są automatycznie wliczane do wykorzystania interfejsu API przez pakiet SDK, a nie do aplikacji.

Deweloperzy pakietów SDK mogą skonfigurować interfejs Play Integrity API na 2 sposoby: w Google Play SDK Console lub w Google Cloud Console.

Włączenie odpowiedzi interfejsu Play Integrity API w Google Play SDK Console daje dostęp do dodatkowych opcji konfiguracji. Otwórz Integralność pakietu SDK i kliknij Ustawienia. W sekcji Konfiguracja projektu wybierz Połącz z projektem Cloud. Wybierz projekt Cloud, który chcesz połączyć z pakietem SDK. Spowoduje to włączenie 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.

Użyj konsoli Google Cloud

Odpowiedzi interfejsu Play Integrity API możesz włączyć w konsoli Google Cloud. 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. Otwórz Interfejsy API i usługi. Wybierz Włącz interfejsy API i usługi. Wyszukaj interfejs Play Integrity API, a potem go włącz. Teraz możesz zintegrować interfejs Play Integrity API ze swoim pakietem SDK.

Zwiększ liczbę dziennych żądań do interfejsu Play Integrity API z pakietu SDK

Dostawcy pakietów SDK, którzy chcą zwiększyć maksymalną liczbę żądań dziennie, powinni wypełnić formularz prośby o przyznanie limitu. W sekcji otwartych komentarzy wskaż, że wysyłasz żądanie pakietu SDK, i podaj współrzędne Maven (groupId:artifactId) lub adres URL pakietu SDK.

Większa liczba żądań do interfejsu Play Integrity API

Twoja aplikacja może wysłać maksymalnie 10 tys. żądań na aplikację dziennie. Jeśli Twoja aplikacja ma obsługiwać większą liczbę użytkowników, możesz poprosić o jej zwiększenie. Aby to zrobić, wykonaj podane niżej instrukcje.

Zwiększenie dziennej maksymalnej liczby żądań

Aby kwalifikować się do zwiększenia maksymalnej dziennej liczby żądań, aplikacja musi być dostępna zarówno w Google Play, jak i w pozostałych kanałach dystrybucji. Nawet po zwiększeniu maksymalnej wartości dziennej należy nadal ograniczać klasyczne żądania na użytkownika do rzadkich, wartościowych działań, aby oszczędzać dane użytkownika i baterię.

Aby poprosić o zwiększenie dziennej maksymalnej liczby żądań, wykonaj te czynności:

  1. Połącz w Konsoli Play projekt Google Cloud, którego używasz na potrzeby interfejsu Play Integrity API.
  2. Sprawdź, czy poprawnie implementujesz logikę interfejsu API, w tym zalecaną strategię ponawiania.
  3. Poproś o zwiększenie limitu, korzystając z tego formularza.

Zwiększenie limitu Play Integrity API może potrwać do tygodnia, dlatego zdecydowanie zalecamy monitorowanie wykorzystania interfejsu Play Integrity API w Konsoli Google Play lub konsoli Google Cloud, gdzie możesz też skonfigurować alerty dotyczące limitów, aby uniknąć przerw w działaniu usługi.

Klasyczny limit żądań zostanie automatycznie zwiększony zarówno do wywołania klienta w celu wygenerowania tokenów integralności, jak i do wywołania serwera do odszyfrowywania i weryfikowania tokenów integralności. W przypadku wywołań serwera do odszyfrowywania i weryfikowania tokenów integralności jest stosowany standardowy limit żądań.

Zintegruj interfejs Play Integrity API ze swoją aplikacją

Aby zintegrować interfejs Play Integrity API z aplikacją lub pakietem SDK, w zależności od środowiska programistycznego wykonaj jedną z tych czynności:

Kotlin lub Java

Najnowsza biblioteka interfejsu Play Integrity API na Androida jest dostępna w repozytorium Google Maven. Dodaj tę zależność do pliku build.gradle aplikacji:

implementation 'com.google.android.play:integrity:1.3.0'

Jedność

Zainstaluj wtyczkę Google Play Integrity w wersji 1.3.0 lub nowszej. Instrukcje znajdziesz w artykule na temat instalowania pakietów Google dla 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.
  • Systemy Unity 2017.x i starsze nie są obsługiwane.

Reklamy natywne

Zainstaluj Play Core Native SDK w wersji 1.13.0 lub nowszej. Instrukcje znajdziesz w przewodniku konfiguracji środowiska programistycznego dla Play Core Native.

Skonfiguruj odpowiedzi interfejsu API (opcjonalnie)

Odpowiedź interfejsu API zawiera oceny domyślne zwracane w każdym żądaniu. Po skonfigurowaniu integracji Play Integrity API w Konsoli Play możesz dostosować odpowiedź interfejsu API.

Odpowiedzi domyślne

Te oceny integralności są domyślnie zwracane w odpowiedzi interfejsu Play Integrity API:

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.
Pusta (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 Play LICENSED Użytkownik ma uprawnienia do korzystania z aplikacji, To znaczy, że zainstalował ją z Google Play lub kupił w Google Play. Użytkownik zachowuje uprawnienia do aplikacji po jej odinstalowaniu. Dlatego jeśli później uzyska tę samą aplikację w inny sposób, jego konto wciąż będzie objęte licencją.
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 określone, ponieważ pominięto wymaganie. Może się tak zdarzyć z kilku powodów, między innymi:
  • 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

Jeśli rozpowszechniasz treści w Grach Google Play na PC, automatycznie wybierzesz opcję otrzymania dodatkowej etykiety w ramach oceny 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.

Opcjonalne odpowiedzi

Jeśli skonfigurujesz integrację interfejsu Play Integrity API w Konsoli Play lub w Play SDK Console, 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 edytuj i zapisz zmiany.

Opcjonalne informacje o urządzeniu

Aplikacje i pakiety SDK mogą włączać dodatkowe etykiety urządzenia w ocenie 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 przygotować serwer backendu tak, aby działał inaczej w zależności od zakresu możliwych odpowiedzi. Na przykład urządzenie, które zwraca 3 etykiety (MEETS_STRONG_INTEGRITY, MEETS_DEVICE_INTEGRITY i MEETS_BASIC_INTEGRITY), można uznać za bardziej zaufane niż urządzenie, które zwraca tylko 1 etykietę (MEETS_BASIC_INTEGRITY).

Możesz też włączyć funkcję ostatniej aktywności na urządzeniu. Ostatnia aktywność na urządzeniu zwraca poziom z zakresu od LEVEL_1 (mała liczba żądań) do LEVEL_4 (duża liczba żądań). Na przykład urządzenie, które zwraca poziom aktywności znacznie wyższy niż typowe dla aplikacji, może próbować wygenerować dużą liczbę tokenów integralności do dystrybucji na niezaufanych urządzeniach.

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 potwierdzeniu integralności podczas uruchamiania. Urządzenie przeszło testy integralności systemu i jest zgodne z Androidem.
Ostatnia aktywność na urządzeniu Standardowe żądania tokena integralności interfejsu API na tym urządzeniu w ciągu ostatniej godziny na aplikację Klasyczne żądania tokena integralności interfejsu API na tym urządzeniu w ciągu ostatniej godziny na aplikację
LEVEL_1 (najniższa) 10 lub mniej 5 lub mniej
LEVEL_2 Między 11 a 25 Między 6 a 10
LEVEL_3 Między 26 a 50 Między 11 a 15
LEVEL_4 (najwyższa) Ponad 50 Ponad 15
UNEVALUATED Ostatnia aktywność na urządzeniu nie została oceniona. Może się tak zdarzyć, gdy:
  • Urządzenie nie jest wystarczająco zaufane.
  • Google Play nie rozpoznaje wersji aplikacji zainstalowanej na urządzeniu.
  • Wystąpiły problemy techniczne na urządzeniu.

Opcjonalne szczegóły środowiska

Aplikacje mogą wyrazić zgodę na otrzymywanie dodatkowych ocen dotyczących środowiska. Ryzyko związane z dostępem do aplikacji informuje, czy uruchomione są inne aplikacje, które mogą przechwytywać ekran, wyświetlać nakładki lub sterować urządzeniem. Ocena Play Protect informuje, czy funkcja 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ła pole szczegółów środowiska z wynikiem:

Pole odpowiedzi Wartość Opis
Ocena ryzyka dotyczącego dostępu do aplikacji KNOWN_INSTALLED Aplikacje są instalowane z Google Play lub wstępnie wczytywane na partycji systemowej przez producenta urządzenia.
KNOWN_CAPTURING Na urządzeniu są instalowane aplikacje instalowane przez Google Play lub wstępnie wczytywane na urządzenie, które mogą służyć do odczytywania lub zapisywania danych wejściowych i wyjściowych żądającej aplikacji (np. aplikacji do nagrywania ekranu).
KNOWN_CONTROLLING Aplikacje są instalowane przez Google Play lub wstępnie wczytywane na urządzeniu, które mogą służyć do sterowania urządzeniem oraz danymi wejściowymi i wyjściowymi danej aplikacji, np. aplikacjami do zdalnego sterowania.
KNOWN_OVERLAYS Aplikacje są instalowane z Google Play lub wstępnie zainstalowane na urządzeniu i mogą wyświetlać nakładki w aplikacji wysyłającej żądanie.
UNKNOWN_INSTALLED Zainstalowane są inne aplikacje, które nie zostały zainstalowane przez Google Play lub wstępnie wczytane na partycji systemowej przez producenta urządzenia.
UNKNOWN_CAPTURING Uruchomione są też inne aplikacje (nie zainstalowane przez Play ani wstępnie wczytane na urządzeniu), które mogą służyć do odczytywania lub zapisywania danych wejściowych i wyjściowych żądającego aplikacji (np. aplikacje do nagrywania ekranu).
UNKNOWN_CONTROLLING uruchomione są inne aplikacje (nie zainstalowane przez Google Play ani wstępnie zainstalowane na urządzeniu), które mogą służyć do sterowania urządzeniem oraz danymi wejściowymi i wyjściowymi danej aplikacji, np. aplikacje do zdalnego sterowania urządzeniami;
UNKNOWN_OVERLAYS Działające są inne aplikacje (niezainstalowane przez Google Play lub wstępnie wczytane na urządzeniu), które mogą wyświetlać nakładki w aplikacji wysyłającej żądanie.
EMPTY (pusta wartość) Jeśli pominięto niezbędny wymóg, ryzyko dostępu do aplikacji nie jest oceniane. W tym przypadku pole appAccessRiskVerdict jest puste. Może się tak zdarzyć z kilku powodów, między innymi:
  • Urządzenie nie jest wystarczająco zaufane.
  • nie jest to telefon, tablet ani urządzenie składane;
  • Na urządzeniu nie jest zainstalowany Android 6 (poziom interfejsu API 23) lub nowszy.
  • 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 daną grę w Google Play.
Ocena Play Protect NO_ISSUES Funkcja Play Protect jest włączona, ale na urządzeniu nie wykryto żadnych problemów z aplikacją.
NO_DATA Funkcja Play Protect jest włączona, ale nie przeprowadzono jeszcze skanowania. Urządzenie lub aplikacja Sklep Play mogły zostać niedawno zresetowane.
POSSIBLE_RISK Funkcja Play Protect jest wyłączona.
MEDIUM_RISK Funkcja Play Protect jest włączona i znalazła potencjalnie szkodliwe aplikacje zainstalowane na urządzeniu.
HIGH_RISK Funkcja Play Protect jest włączona i wykryła, że na urządzeniu są zainstalowane niebezpieczne aplikacje.
UNEVALUATED Decyzja w sprawie Play Protect nie została rozpatrzona. Pominięto niezbędny wymóg, np. urządzenie nie było wystarczająco godne zaufania.

Skonfiguruj ustawienia żądań klasycznych (opcjonalnie)

Pomiń tę sekcję, jeśli zamierzasz wysyłać tylko standardowe żądania do interfejsu API.

Gdy wysyłasz żądania klasyczne, serwery Google Play domyślnie zarządzają szyfrowaniem odpowiedzi, którego aplikacja używa podczas interakcji z interfejsem Play Integrity API. Korzystanie z tej opcji domyślnej jest zalecane, ale możesz też zarządzać swoimi kluczami szyfrowania odpowiedzi i je pobierać, postępując zgodnie z poniższymi instrukcjami.

Pozwól Google zarządzać szyfrowaniem odpowiedzi (domyślne i zalecane)

Aby chronić bezpieczeństwo aplikacji, zalecamy zezwolenie Google na generowanie kluczy szyfrowania odpowiedzi i zarządzanie nimi. Aby odszyfrowywać odpowiedzi, Twój serwer backendu będzie łączyć się z serwerem Google Play.

Zarządzanie kluczami szyfrowania odpowiedzi i ich pobieranie

Jeśli chcesz odszyfrować ocenę integralności lokalnie w swoim bezpiecznym środowisku serwera, możesz zarządzać kluczami szyfrowania odpowiedzi i je pobierać. Aby móc pobierać klucze szyfrowania odpowiedzi i nimi zarządzać, musisz używać Konsoli Play, a aplikacja musi być dostępna zarówno w Google Play, jak i w innych kanałach dystrybucji. Postępuj zgodnie z poniższymi instrukcjami, aby przejść z kluczy zarządzanych przez Google na samodzielnie zarządzane klucze szyfrowania odpowiedzi.

Pamiętaj, aby nie odszyfrowywać ani zweryfikować otrzymanego tokena w aplikacji klienckiej. Nigdy nie ujawniaj też żadnych kluczy odszyfrowywania dla aplikacji klienckiej.

Zanim zmienisz strategię zarządzania szyfrowaniem odpowiedzi w Konsoli Play, upewnij się, że Twój serwer jest prawidłowo skonfigurowany do odszyfrowywania i weryfikowania tokenów integralności na serwerach Google Play, aby uniknąć przerw w ich działaniu.

Przełączanie się między kluczami szyfrowania odpowiedzi zarządzanymi przez Google i samodzielnie

Jeśli szyfrowaniem odpowiedzi zarządza obecnie Google, ale 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 używa interfejsu Play Integrity API.
  3. W sekcji Wersja w menu po lewej stronie kliknij Integralność aplikacji.
  4. Obok Play Integrity API kliknij Ustawienia.
  5. W sekcji Klasyczne żądania obok opcji Szyfrowanie odpowiedzi kliknij Edytuj.
  6. W wyświetlonym oknie kliknij Zarządzaj kluczami szyfrowania odpowiedzi i pobierz je.
  7. Postępuj zgodnie z instrukcjami przesyłania klucza publicznego.
  8. Gdy wyświetli się komunikat, że przesyłanie się powiodło, kliknij Zapisz. Zaszyfrowane klucze zostaną automatycznie pobrane.
  9. Zmień logikę serwera, aby odszyfrowywać i weryfikować tokeny integralności lokalnie w Twoim bezpiecznym środowisku serwera przy użyciu kluczy szyfrowania odpowiedzi.
  10. (Opcjonalnie) Jeśli będziesz samodzielnie zarządzać kluczami szyfrowania odpowiedzi, Twoja aplikacja może nadal korzystać z serwera Google Play, aby odszyfrować i zweryfikować odpowiedź.

Jeśli samodzielnie zarządzasz kluczami szyfrowania odpowiedzi i chcesz, aby szyfrowanie odpowiedzi było zarządzane przez Google, wykonaj te czynności:

  1. Zmień logikę serwera tak, aby odszyfrowywać i weryfikować wyłącznie dane na serwerach Google.
  2. Zaloguj się w Konsoli Play.
  3. Wybierz aplikację, która używa interfejsu Play Integrity API.
  4. W sekcji Wersja w menu po lewej stronie kliknij Integralność aplikacji.
  5. Obok Play Integrity API kliknij Ustawienia.
  6. W sekcji Klasyczne żądania obok opcji Szyfrowanie odpowiedzi kliknij Edytuj.
  7. W wyświetlonym oknie kliknij Pozwól Google zarządzać moim szyfrowaniem odpowiedzi (zalecane).
  8. Kliknij Zapisz zmiany.