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.
Użyj Google Play SDK Console (zalecane)
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:
- W Konsoli Play połącz projekt Google Cloud, którego używasz w przypadku interfejsu Play Integrity API.
- Sprawdź, czy poprawnie implementujesz logikę interfejsu API, w tym zalecaną strategię ponawiania prób.
- 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:
|
|
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ż:
|
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:
|
|
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:
- Zaloguj się w Konsoli Play.
- Wybierz aplikację, która korzysta z interfejsu Play Integrity API.
- W menu po lewej stronie w sekcji Wersja kliknij Integralność aplikacji.
- Obok opcji Play Integrity API kliknij Ustawienia.
- W sekcji Klasyczne żądania obok opcji Szyfrowanie odpowiedzi kliknij Edytuj.
- W wyświetlonym oknie kliknij Zarządzaj kluczami szyfrowania odpowiedzi i pobierz je.
- Aby przesłać klucz publiczny, postępuj zgodnie z instrukcjami.
- Gdy pojawi się okno z informacją, że przesyłanie się powiodło, kliknij Zapisz, a zaszyfrowane klucze zostaną pobrane automatycznie.
- Zmień logikę serwera, aby odszyfrowywać i weryfikować tokeny integralności lokalnie, w bezpiecznym środowisku serwera, za pomocą kluczy szyfrowania odpowiedzi.
- (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:
- Zmień logikę serwera, aby odszyfrowywała i weryfikować tylko na serwerach Google.
- Zaloguj się w Konsoli Play.
- Wybierz aplikację, która korzysta z interfejsu Play Integrity API.
- W menu po lewej stronie w sekcji Wersja kliknij Integralność aplikacji.
- Obok opcji Play Integrity API kliknij Ustawienia.
- W sekcji Klasyczne żądania obok opcji Szyfrowanie odpowiedzi kliknij Edytuj.
- W wyświetlonym oknie kliknij Pozwól Google zarządzać szyfrowaniem odpowiedzi (zalecane).
- Kliknij Zapisz zmiany.