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ć ten interfejs z aplikacją i jej serwerem backendu. Dodatkowe opcje konfiguracji, testowania i raportowania staną się dostępne po połączeniu w Konsoli Google Play projektu Google Cloud używanego 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 wykorzystywać projekt Google Cloud do monitorowania korzystania z interfejsu API. Aplikacje w Google Play mogą połączyć projekt Cloud w Konsoli Google Play, aby umożliwić odpowiedzi interfejsu 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 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 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ć ze swoją aplikacją interfejs Play Integrity API.

Skonfiguruj 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. Otwórz Interfejsy API i usługi. Kliknij Włącz interfejsy API i usługi. Wyszukaj Play Integrity API, a potem włącz go. Teraz możesz zintegrować interfejs Play Integrity API ze swoją aplikacją.

Instrukcje konfiguracji dla dostawców pakietów SDK

Dostawcy pakietów SDK muszą używać własnego projektu Google Cloud do wywoływania interfejsu Play Integrity API. W ten sposób wykorzystanie interfejsu API jest przypisywane do pakietu SDK, a nie do poszczególnych aplikacji, które go używają. Oznacza to, że aplikacje korzystające z Twojego pakietu SDK nie muszą osobno konfigurować interfejsu Play Integrity API. Żądania wysyłane do interfejsu Play Integrity API są automatycznie wliczane do wykorzystania interfejsu API pakietu SDK, a nie do aplikacji.

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

Po włączeniu odpowiedzi interfejsu Play Integrity API w Google Play SDK Console uzyskujesz dostęp do dodatkowych opcji konfiguracyjnych. Otwórz Integralność pakietu SDK i kliknij Ustawienia. W sekcji Konfiguracja projektu wybierz Połącz projekt Cloud. Wybierz projekt Cloud, który chcesz połączyć z pakietem SDK – spowoduje to włączenie odpowiedzi interfejsu Play Integrity API. Teraz możesz 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. Kliknij Włącz interfejsy API i usługi. Wyszukaj Play Integrity API, a potem włącz go. Możesz teraz zintegrować interfejs Play Integrity API ze swoim pakietem SDK.

Zwiększ liczbę żądań wysyłanych przez pakiet SDK dziennie do interfejsu Play Integrity API

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

Zwiększ liczbę żądań dziennie do interfejsu Play Integrity API

Twoja aplikacja może otrzymywać maksymalnie 10 tys. żądań dziennie na aplikację. Jeśli aplikacja musi obsługiwać większą liczbę użytkowników, możesz poprosić o zwiększenie tego limitu dziennego. W tym celu wykonaj instrukcje poniżej.

Zwiększ dzienną maksymalną liczbę żądań

Aby kwalifikować się do zwiększenia maksymalnej dziennej liczby żądań, aplikacja musi być dostępna w Google Play oraz w innych kanałach dystrybucji. Nawet po zwiększeniu maksymalnej liczby żądań dziennie nadal ograniczaj 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. W Konsoli Play połącz projekt Google Cloud, którego używasz w przypadku interfejsu Play Integrity API.
  2. Sprawdź, czy poprawnie implementujesz logikę interfejsu API, w tym zalecaną strategię ponawiania prób.
  3. Poproś o zwiększenie limitu, korzystając z tego formularza.

Zwiększenie limitu interfejsu Play Integrity API może potrwać nawet tydzień, dlatego zdecydowanie zalecamy monitorowanie wykorzystania interfejsu Play Integrity API w Konsoli Google Play lub konsoli Google Cloud, gdzie możesz też skonfigurować alerty o limitach, aby uniknąć przerw w działaniu usługi.

Klasyczne zwiększenie limitu żądań będzie stosowane automatycznie zarówno do wywołania klienta w celu wygenerowania tokenów integralności, jak i do wywołania serwera w celu odszyfrowywania i weryfikacji tokenów integralności. Standardowe zwiększanie limitu żądań jest stosowane do wywołania serwera w celu odszyfrowywania i weryfikacji tokenów integralności.

Zintegruj interfejs Play Integrity API z 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 Androida do interfejsu Play Integrity API 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 dla Unity w wersji 1.3.0 lub nowszej. Instrukcje znajdziesz w artykule o instalowaniu pakietów Google na Unity.

  • Obsługiwane są wszystkie wersje 2019.x, 2020.x i nowsze.
  • Jeśli używasz Unity 2018.x, obsługiwana jest wersja 2018.4 lub nowsza.
  • Urządzenia 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 w Play Core Native.

Skonfiguruj odpowiedzi interfejsu API (opcjonalnie)

Odpowiedź interfejsu API zawiera domyślne oceny zwracane w każdym żądaniu. Jeśli w Konsoli Play skonfigurujesz integrację interfejsu Play Integrity API, 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. Po odinstalowaniu aplikacji użytkownik zachowuje uprawnienia do aplikacji. Dlatego jeśli później uzyska tę samą aplikację w inny sposób, jego konto nadal 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 ocenione, ponieważ pominięto wymaganie. Może się tak zdarzyć z kilku powodów. Oto niektóre z nich:
  • 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 aplikację w ramach Gier Google Play na PC, automatycznie otrzymujesz dodatkową etykietę 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.

Odpowiedzi opcjonalne

Jeśli skonfigurujesz integrację interfejsu Play Integrity API 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, w Konsoli Play kliknij Wersja > Integralność aplikacji. W sekcji Odpowiedzi edytuj i zapisz zmiany.

Opcjonalne informacje o urządzeniu

Aplikacje i pakiety SDK mogą uwzględniać dodatkowe etykiety urządzeń w ramach oceny 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, aby działał różnie 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że zostać uznane za zaufane więcej niż urządzenie, które zwraca tylko jedną etykietę (MEETS_BASIC_INTEGRITY).

Możesz też włączyć wyświetlanie ostatniej aktywności na urządzeniu. Ostatnia aktywność urządzenia 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ż typowy dla Twojej aplikacji, może próbować wygenerować dużą liczbę tokenów integralności do rozpowszechniania 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. sprzętowy dowód integralności rozruchu. Urządzenie przeszło testy integralności systemu i jest zgodne z Androidem.
Ostatnia aktywność na urządzeniach Standardowe żądania tokena integralności interfejsu API wysyłane na to urządzenie w ciągu ostatniej godziny na aplikację Żądania tokena integralności klasycznego interfejsu API wysyłane na to urządzenie w ciągu ostatniej godziny na aplikację
LEVEL_1 (najniższa) 10 lub mniej 5 lub mniej
LEVEL_2 Od 11 do 25 Od 6 do 10
LEVEL_3 Od 26 do 50 Od 11 do 15
LEVEL_4 (najwyższa) Ponad 50 Ponad 15
UNEVALUATED Nie oceniono ostatniej aktywności na urządzeniu. 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 na urządzeniu.

Opcjonalne szczegóły środowiska

Aplikacje mogą wyrazić zgodę na otrzymywanie dodatkowych ocen środowiska. Ryzyko dostępu do aplikacji informuje o tym, czy uruchomione są inne aplikacje, które mogą przechwytywać ekran, wyświetlać nakładki lub sterować urządzeniem. Ocena Play Protect informuje o tym, czy usługa Play Protect jest włączona na urządzeniu i czy wykryła znane złośliwe oprogramowanie.

Gdy wyrazisz zgodę na ich otrzymywanie, odpowiedź interfejsu API będzie zawierać 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 Aplikacje są instalowane przez Google Play lub wstępnie załadowane na urządzeniu, które mogą być używane do odczytywania lub zapisywania danych wejściowych i wyjściowych aplikacji, która wysłała żądanie, np. aplikacji do nagrywania ekranu.
KNOWN_CONTROLLING Aplikacje są instalowane z Google Play lub są wstępnie wczytane na urządzeniu, które mogą służyć do sterowania urządzeniem oraz wejściami i wyjściami aplikacji, która wysłała żądanie, (np. aplikacjami do zdalnego sterowania).
KNOWN_OVERLAYS Aplikacje są instalowane z Google Play lub wstępnie załadowane na urządzeniu, które mogą wyświetlać nakładki na tych aplikacjach.
UNKNOWN_INSTALLED Zainstalowane są inne aplikacje, które nie zostały zainstalowane przez Google Play lub wstępnie załadowane na partycji systemowej przez producenta urządzenia.
UNKNOWN_CAPTURING Uruchomione są też inne aplikacje (niezainstalowane przez Google Play lub wstępnie załadowane na urządzeniu), które mogą służyć do odczytywania lub zapisywania danych wejściowych i wyjściowych żądającej aplikacji, np. aplikacje do nagrywania ekranu.
UNKNOWN_CONTROLLING Uruchomione są inne aplikacje (niezainstalowane przez Google Play lub wstępnie załadowane na urządzeniu), które mogą służyć do sterowania urządzeniem oraz wejściami i wyjściami aplikacji żądającej dostępu, np. aplikacjami do zdalnego sterowania.
UNKNOWN_OVERLAYS Uruchomione są też inne aplikacje (niezainstalowane z Google Play lub wstępnie wczytane na urządzeniu), które mogą wyświetlać nakładki w aplikacji, która wysłała żądanie.
EMPTY (pusta wartość) Ryzyko związane z dostępem do aplikacji nie jest oceniane, jeśli pominięto niezbędny wymóg. W tym przypadku pole appAccessRiskVerdict jest puste. Może się tak zdarzyć z kilku powodów. Oto niektóre z nich:
  • 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 Google Play na daną grę.
Ocena Play Protect NO_ISSUES Usługa Play Protect jest włączona, ale nie znaleziono żadnych problemów z aplikacją na urządzeniu.
NO_DATA Usługa Play Protect jest włączona, ale nie przeprowadzono jeszcze skanowania. Być może urządzenie lub aplikacja Sklep Play zostały niedawno zresetowane.
POSSIBLE_RISK Funkcja Play Protect jest wyłączona.
MEDIUM_RISK Usługa Play Protect jest włączona i znajduje zainstalowane na urządzeniu potencjalnie szkodliwe aplikacje.
HIGH_RISK Usługa Play Protect została włączona i znalazła na urządzeniu zainstalowane niebezpieczne aplikacje.
UNEVALUATED Ocena Play Protect nie została sprawdzona. 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 tworzyć tylko standardowe żądania do interfejsu API.

Gdy wysyłasz klasyczne żądania, domyślnie serwery Google Play zarządzają szyfrowaniem odpowiedzi, którego Twoja aplikacja używa, gdy korzystasz z interfejsu Play Integrity API. Zalecamy korzystanie z tej opcji domyślnej. Możesz też zarządzać kluczami szyfrowania odpowiedzi i je pobierać, postępując zgodnie z podanymi niżej instrukcjami.

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

Ze względu na 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 pobrać klucze szyfrowania odpowiedzi i nimi zarządzać. Aby zarządzać kluczami szyfrowania odpowiedzi i je pobierać, musisz używać Konsoli Play, a aplikacja musi być dostępna w Google Play oraz w innych kanałach dystrybucji. Wykonaj poniższe instrukcje, aby przejść z kluczy szyfrowania odpowiedzi zarządzanych przez Google na zarządzane samodzielnie.

Pamiętaj, aby nie odszyfrowywać i nie weryfikować otrzymanego tokena z aplikacji klienckiej ani nie ujawniać jej żadnych kluczy odszyfrowywania.

Zanim zmienisz strategię zarządzania szyfrowaniem odpowiedzi w Konsoli Play, upewnij się, że serwer jest prawidłowo skonfigurowany pod kątem odszyfrowywania i weryfikowania tokenów integralności na serwerach Google Play, aby uniknąć zakłóceń.

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

Jeśli szyfrowaniem odpowiedzi zarządza obecnie Google i 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 menu po lewej stronie w sekcji Wersja kliknij Integralność aplikacji.
  4. Obok opcji 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. Aby przesłać klucz publiczny, postępuj zgodnie z instrukcjami.
  8. Gdy pojawi się okno z informacją, że przesyłanie się powiodło, kliknij Zapisz, a zaszyfrowane klucze zostaną pobrane automatycznie.
  9. Zmień logikę serwera, aby odszyfrowywać i weryfikować tokeny integralności lokalnie, w bezpiecznym środowisku serwera, za pomocą kluczy szyfrowania odpowiedzi.
  10. (Opcjonalnie) Gdy samodzielnie zarządzasz 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 zezwolić Google na zarządzanie szyfrowaniem odpowiedzi, wykonaj te czynności:

  1. Zmień logikę serwera, aby odszyfrowywała 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 menu po lewej stronie w sekcji Wersja kliknij Integralność aplikacji.
  5. Obok opcji 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ć szyfrowaniem odpowiedzi (zalecane).
  8. Kliknij Zapisz zmiany.