Z tej strony dowiesz się, jak używać funkcji zapamiętywania urządzenia do przechowywania i pobierania danych niestandardowych na określonych urządzeniach. Możesz niezawodnie przywoływać dane niestandardowe później, gdy aplikacja jest zainstalowana na tym samym urządzeniu, nawet po zresetowaniu urządzenia. Umożliwia to wykrywanie i zapobieganie ponownemu użyciu urządzenia na podstawie określonego działania lub zachowania przy jednoczesnym zachowaniu prywatności użytkownika.
Jak działa zapamiętywanie urządzenia?
Zapamiętywanie urządzenia umożliwia aplikacjom przechowywanie i odczytywanie danych niestandardowych powiązanych z konkretnym urządzeniem w taki sposób, aby zachować prywatność użytkownika. Dane są przechowywane na serwerach Google, dzięki czemu aplikacja może niezawodnie przywoływać dane niestandardowe nawet po ponownej instalacji aplikacji lub zresetowaniu urządzenia. Możesz na przykład użyć tej funkcji do przywracania urządzeń, na których wykryto poważne nadużycia, urządzeń, na których wykorzystano już przedmioty o wysokiej wartości (np. bezpłatny okres próbny), lub urządzeń, które są wielokrotnie używane do tworzenia nowych kont w celach nadużycia. Zapamiętywanie urządzenia chroni prywatność użytkownika, ponieważ aplikacja wysyłająca żądanie może przywoływać tylko ograniczone dane powiązane z urządzeniami, bez dostępu do identyfikatorów urządzeń ani użytkowników. Po włączeniu zapamiętywania urządzenia możesz wykonać te czynności:
- Odczytywanie danych dotyczących poszczególnych urządzeń: podczas uzyskiwania oceny integralności możesz odczytać 3 wartości niestandardowe lub bity dla każdego urządzenia. Możesz zdefiniować własne znaczenie tych wartości. Możesz na przykład traktować je jako 3 oddzielne flagi lub połączyć je, aby reprezentowały 8 etykiet niestandardowych.
- Modyfikowanie danych dotyczących poszczególnych urządzeń: po uzyskaniu tokena integralności możesz użyć go do wykonania wywołania po stronie serwera na serwer Google Play, aby zmodyfikować jedną lub więcej wartości. Na użycie tokena masz maksymalnie 14 dni. Umożliwia to modyfikowanie wartości, jeśli na przykład nadużycie stanie się widoczne dopiero w ciągu 2 tygodni od pierwszego sprawdzenia integralności. Gdy zmodyfikujesz wartość, zapisywany jest też miesiąc i rok, w którym dokonano modyfikacji.
Wymagania wstępne i kwestie dotyczące zapamiętywania urządzenia
Zapamiętywanie urządzenia może być używane tylko do przechowywania i przywoływania informacji w celu ochrony bezpieczeństwa aplikacji oraz ograniczania nadużyć, oszustw i nieautoryzowanego dostępu. Nie możesz używać zapamiętywania urządzenia do tworzenia odcisków cyfrowych ani śledzenia poszczególnych użytkowników lub urządzeń. Nie możesz też używać zapamiętywania urządzenia do śledzenia poufnych cech użytkownika lub urządzenia, takich jak płeć, wiek czy lokalizacja.
Zapamiętywanie urządzenia ma te wymagania wstępne:
- Zapamiętywanie urządzenia można używać na telefonach, tabletach, urządzeniach składanych, telewizorach, urządzeniach z Androidem Auto i Wear OS. W przypadku Wear OS zapamiętywanie urządzenia jest dostępne tylko na urządzeniach z Wear OS 5 lub nowszym. Zapamiętanie urządzenia nie jest obsługiwane na emulatorach.
- Zapamiętywanie urządzenia wymaga zainstalowania i włączenia na urządzeniu najnowszych wersji Sklepu Google Play i Usług Google Play.
- Zapamiętywanie urządzenia wymaga, aby konto użytkownika miało licencję Play. W przeciwnym razie ocena będzie nieokreślona.
Zapamiętywanie urządzenia ma te kwestie dotyczące czasu:
- Po zweryfikowaniu tokena integralności masz maksymalnie 14 dni na użycie go do przechowywania niestandardowych danych zapamiętywania urządzenia.
- Zapamiętywanie urządzenia zawiera sygnatury czasowe, dzięki czemu możesz traktować ostatnio zmodyfikowane dane jako priorytetowe w stosunku do danych, które zostały zmodyfikowane dawno temu. Rozważ zignorowanie lub zresetowanie danych po upływie odpowiednio długiego czasu, aby uwzględnić fakt, że urządzenia mogą zmieniać właściciela lub być odnawiane i odsprzedawane.
- Bity zapamiętywania urządzenia będą przechowywane przez 3 lata od ostatniego odczytu lub zapisu.
- Jeśli chcesz usunąć wszystkie dane powiązane z urządzeniem, Twoja aplikacja może zresetować wszystkie 3 wartości na tym urządzeniu na wartość false. Spowoduje to automatyczne zresetowanie sygnatur czasowych.
W przypadku deweloperów z wieloma aplikacjami i deweloperów przenoszących aplikacje zapamiętywanie urządzenia działa w ten sposób:
- Wszystkie aplikacje na Twoim koncie dewelopera Google Play mają dostęp do tych samych 3 wartości na urządzenie. Innymi słowy, jeśli jedna z Twoich aplikacji zmodyfikuje jedną z wartości, wszystkie Twoje aplikacje odczytają zmodyfikowaną wartość, gdy będą zainstalowane na tym samym urządzeniu.
- Jeśli aplikacja zostanie przeniesiona z jednego konta dewelopera na inne, zapamiętywanie urządzenia będzie odzwierciedlać dane dotyczące poszczególnych urządzeń na nowym koncie dewelopera, a nie na starym.
Włączanie zapamiętywania urządzenia
Gdy wszystko będzie gotowe, włącz zapamiętywanie urządzenia w Konsoli Play:
- Zaloguj się w Konsoli Play.
- Wybierz aplikację, która będzie używać zapamiętywania urządzenia.
- W menu po lewej stronie kliknij Zabezpieczone przez Google Play.
- Obok opcji Play Integrity API kliknij Zarządzaj.
- W sekcji Odpowiedzi na stronie kliknij Zmień odpowiedzi.
- Włącz zapamiętywanie urządzenia.
- Kliknij Zapisz zmiany.
Gdy włączysz lub wyłączysz zapamiętywanie urządzenia, wszystkie odpowiedzi testowe Play Integrity API skonfigurowane w Konsoli Play zostaną usunięte i trzeba będzie je utworzyć ponownie.
Odczytywanie wartości zapamiętywania urządzenia
Zapamiętywanie urządzenia działa zarówno w przypadku klasycznych, jak i standardowych żądań do interfejsu Play Integrity API. W przypadku żądań standardowych zapamiętywanie urządzenia jest odświeżane podczas wywołania rozgrzewającego. Innymi słowy, po zmodyfikowaniu danych dotyczących poszczególnych urządzeń musisz wykonać kolejne rozgrzewanie, aby zobaczyć zaktualizowaną wartość. Gdy zapamiętywanie urządzenia jest włączone, możesz odczytywać wartości zapamiętywania urządzenia w ocenach integralności.
Modyfikowanie wartości zapamiętywania urządzenia
Wartości zapamiętywania urządzenia możesz modyfikować, wykonując wywołanie interfejsu API typu serwer-serwer
podobne do dekodowania oceny integralności
verdict. Ustawienie bitu na true spowoduje też zaktualizowanie daty zapisu (nawet jeśli bit był już ustawiony na true). Ustawienie bitu na false spowoduje zresetowanie daty zapisu na pustą. Wszystkie bity, które nie są określone w żądaniu, pozostaną bez zmian. Między zapisaniem bitów a możliwością ich odczytania w ocenie występuje niewielkie opóźnienie propagacji. Opóźnienie to może wynosić do 30 sekund, choć zwykle jest znacznie krótsze. Żądania zapisu zapamiętywania urządzenia powinny być rzadsze niż żądania tokena integralności. Nie są one wliczane do limitu żądań tokena integralności, ale podlegają niepublicznym, defensywnym limitom szybkości.
playintegrity.googleapis.com/v1/PACKAGE_NAME/deviceRecall:write -d \
'{
"integrityToken": "INTEGRITY_TOKEN",
"newValues": {
"bitFirst": true,
"bitThird": false
}
}'newValues.BitFirst = true // ForceSendFields optional for value true newValues.BitSecond = false // ForceSendFields required for value false newValues.BitThird = nil // do not set ForceSendFields for unspecified bits newValues.ForceSendFields = []string{"BitSecond"}