На этой странице объясняется, как настроить ваше приложение, игру или SDK для использования API Play Integrity. Для интеграции API вам необходим проект Google Cloud, который необходим для начала отправки запросов. Затем вы можете связать свой проект Google Cloud в консоли Google Play (для приложений) или консоли Google Play SDK (для SDK). Связывание проекта необходимо для доступа к дополнительным параметрам конфигурации, функциям тестирования, отчетам API и для запроса увеличения вашей ежедневной квоты запросов.
Включить API обеспечения целостности игры
Каждое приложение или SDK, обращающееся к Play Integrity API, должно иметь проект Google Cloud для использования API и мониторинга использования. Это обязательный первый шаг для всех интеграций. Вы можете включить Play Integrity API в консоли Google Cloud или сразу перейти к связыванию вашего проекта Cloud с Google Play, и Play Integrity API будет включен автоматически.
В консоли Google Cloud создайте новый проект Cloud или выберите существующий проект Cloud, который вы хотите использовать с API Play Integrity.
- Перейдите в раздел API и сервисы .
- Выберите «Включить API и сервисы» .
- Найдите Play Integrity API .
- Нажмите «Включить» .
Теперь вы можете интегрировать API Play Integrity в свое приложение. Для доступа к расширенным функциям и увеличению квот необходимо перейти к этапу привязки.
Ссылка на Google Play (рекомендуется)
Вы можете связать свой проект Google Cloud со своим приложением или SDK, используя эти инструкции.
Приложения и игры в Google Play
Приложения, распространяемые в Google Play, должны связать свой проект Google Cloud в консоли Google Play, чтобы включить дополнительные функции и запросить увеличение ежедневной квоты API.
- Откройте консоль Google Play и выберите своё приложение.
- Перейдите в раздел «Защищено с помощью Play» .
- Рядом с Play Integrity API выберите кнопку «Начать» , чтобы перейти к настройкам Play Integrity API .
- Нажмите кнопку проекта Link Cloud .
- Выберите проект Google Cloud, который вы планируете использовать с API Play Integrity. Если API Play Integrity еще не включен для проекта, он будет включен автоматически при связывании.
Для поставщиков SDK в консоли Play SDK
Разработчики SDK, использующие консоль Google Play SDK, могут связать свой проект Google Cloud, чтобы приписывать использование API именно SDK, а не отдельным приложениям, его использующим, включать дополнительные функции и запрашивать увеличение ежедневной квоты на использование API. Обратите внимание, что доступ к консоли Google Play SDK предоставляется при соблюдении определенных критериев соответствия .
- Откройте консоль Google Play SDK и выберите свой SDK.
- Перейдите в раздел «Целостность SDK» .
- В разделе Play Integrity API нажмите «Привязать облачный проект» .
- Выберите проект Google Cloud, который вы планируете использовать с Play Integrity API; если Play Integrity API еще не включен для проекта, он будет включен автоматически при связывании.
Ознакомьтесь с ограничениями на использование API обеспечения целостности игры.
Для вашего приложения или SDK установлен стандартный дневной лимит в 10 000 запросов, привязанный к номеру соответствующего облачного проекта. Если вы ожидаете большего объема запросов, вы можете запросить увеличение квоты.
| Действие | Суточная квота | Примечания |
|---|---|---|
| Запросы токенов | 10 000 | Используется как для классических запросов, так и для стандартной подготовки токенов. |
| Расшифровка токенов на серверах Google | 10 000 | Используется как в классических, так и в стандартных запросах. |
Увеличьте максимальное количество запросов в день.
Увеличение квоты зависит от соответствия критериям. Увеличение квоты распространяется как на генерацию токенов на стороне клиента, так и на вызовы расшифровки на стороне сервера. Обработка запросов может занять до недели. Мы рекомендуем отслеживать использование Play Integrity API в консоли Google Cloud и настраивать оповещения о превышении квоты, чтобы избежать перебоев в работе сервиса.
Даже при увеличении квоты продолжайте ограничивать классические запросы редкими, но важными действиями, чтобы экономить заряд батареи и трафик пользователя.
Приложения и игры в Google Play
Для увеличения квоты ваше приложение должно быть доступно в Google Play в дополнение к любым другим каналам распространения. Необходимо связать ваш проект Google Cloud с вашим приложением в Play Console . Запросы на квоты от несвязанных проектов будут отклонены.
Чтобы запросить повышение:
- Подключите соответствующий проект Google Cloud в консоли Play .
- Убедитесь, что вы правильно реализовали логику API, включая соответствующие стратегии повторных попыток.
- Отправьте форму запроса на квоту .
Для поставщиков SDK в консоли Play SDK
Для получения увеличения квоты ваш SDK должен быть зарегистрирован в консоли Google Play SDK, а ваш облачный проект должен быть связан с вашим SDK там же. Доступ к консоли Google Play SDK предоставляется при соблюдении критериев соответствия .
Чтобы запросить повышение:
- Подключите свой проект Google Cloud в консоли Google Play SDK .
- Заполните форму заявки в службу поддержки разработчиков .
В комментариях укажите данные о вашем SDK, опишите сценарий использования, тип API-запросов (стандартный, классический или оба), частоту запросов и желаемый максимальный суточный лимит запросов.
Интегрируйте API проверки целостности игр в ваше приложение.
Для интеграции API Play Integrity в ваше приложение или SDK выполните одно из следующих действий в зависимости от вашей среды разработки:
Kotlin или Java
Последняя версия библиотеки Android для Play Integrity API доступна в репозитории Maven от Google . Добавьте следующую зависимость в файл build.gradle вашего приложения:
implementation 'com.google.android.play:integrity:1.6.0'
Единство
В следующих разделах описывается, как интегрировать и настроить Google Play Integrity API для проектов Unity, включая поддерживаемые версии Unity, методы установки и настройку среды.
Поддерживаемые версии Unity
- Поддерживаются все версии 2019.x, 2020.x и более новые.
- Если вы используете Unity 2018.x, поддерживаются версии 2018.4 и более новые.
- Unity 2017.x и более ранние версии не поддерживаются.
Настройте среду разработки.
OpenUPM-CLI
Если у вас установлен OpenUPM CLI , вы можете установить реестр OpenUPM с помощью следующей команды:
openupm add com.google.play.integrityOpenUPM
Откройте настройки менеджера пакетов , выбрав в меню Unity пункт «Редактировать» > «Настройки проекта» > «Менеджер пакетов» .
Добавьте OpenUPM в качестве объекта реестра с ограниченной областью видимости в окно диспетчера пакетов:
Name: package.openupm.com URL: https://package.openupm.com Scopes: com.google.external-dependency-manager com.google.play.common com.google.play.core com.google.play.integrityОткройте меню менеджера пакетов , выбрав в меню Unity пункт «Окно» > «Менеджер пакетов» .
Set the manager scope drop-down to select My Registries .
Выберите из списка пакетов плагин Google Play Integrity для Unity и нажмите «Установить» .
Импорт из GitHub
Загрузите последнюю версию
.unitypackageс GitHub.Импортируйте файл
.unitypackage, выбрав в меню Unity пункт Assets > Import package > Custom Package и импортировав все элементы.
Unreal Engine
В следующих разделах описывается, как интегрировать и настроить API Google Play Integrity для проектов Unreal Engine.
Поддерживаемые версии Unreal Engine
Плагин поддерживает Unreal Engine 5.0 и все последующие версии.
Настройте среду разработки.
Загрузите плагин Play Unreal Engine из репозитория GitHub.
Скопируйте папку
GooglePlayв папкуPluginsвашего проекта Unreal Engine.Open your Unreal Engine project and click Edit → Plugins .
Найдите Google Play и поставьте галочку в поле «Включено» .
Перезапустите игровой проект и запустите сборку.
Откройте файл
Build.csвашего проекта и добавьте модульPlayIntegrityв разделPublicDependencyModuleNames:using UnrealBuildTool; public class MyGame : ModuleRules { public MyGame(ReadOnlyTargetRules Target) : base(Target) { // ... PublicDependencyModuleNames.Add("PlayIntegrity"); // ... } }
Родной
Следуйте инструкциям по настройке . Для получения более подробной информации см. справочную документацию по собственному API Play Integrity.
Настройка ответов API (необязательно)
Ответ API включает в себя результаты по умолчанию, возвращаемые в каждом запросе. Если вы связали свой облачный проект в консоли Play или консоли Play SDK, вы можете настроить ответ API, включив в него дополнительную информацию.
Вердикты по обеспечению целостности по умолчанию
По умолчанию в ответе API Play Integrity возвращаются следующие результаты проверки целостности:
| Поле ответа | Ценить | Описание |
|---|---|---|
| Данные игрового аккаунта | LICENSED | У пользователя есть права на использование приложения. Другими словами, пользователь установил или обновил ваше приложение из Google Play на своем устройстве. |
UNLICENSED | У пользователя нет прав на использование приложения. Это происходит, например, когда пользователь устанавливает ваше приложение через сторонние ресурсы или не загружает его из Google Play. | |
UNEVALUATED | Информация о лицензировании не была проверена, поскольку было упущено одно из требований. Это может произойти по нескольким причинам, в том числе по следующим:
| |
| целостность приложения | PLAY_RECOGNIZED | Приложение и сертификат соответствуют версиям, распространяемым через Google Play. |
UNRECOGNIZED_VERSION | Название сертификата или пакета не соответствует записям Google Play. | |
UNEVALUATED | Целостность приложения не оценивалась. Было упущено необходимое требование, например, устройство не обладало достаточной надежностью. | |
| целостность устройства | MEETS_DEVICE_INTEGRITY | Приложение работает на подлинном и сертифицированном устройстве Android. На устройствах с Android 13 и выше имеется аппаратное подтверждение того, что загрузчик устройства заблокирован, а загруженная ОС Android представляет собой сертифицированный производителем устройства образ. |
| Пустое значение (пустой символ) | Приложение работает на устройстве, имеющем признаки атаки (например, перехват API) или компрометации системы (например, рутирование), либо приложение работает не на физическом устройстве (например, на эмуляторе, не прошедшем проверку целостности Google Play). |
Игры Google Play для ПК
Если вы распространяете игру через Google Play Games для ПК , вы автоматически будете включены в список получателей дополнительной отметки в заключении о целостности устройства:
| Поле ответа | Этикетка | Описание |
|---|---|---|
| целостность устройства | MEETS_VIRTUAL_INTEGRITY | Приложение работает на эмуляторе Android, использующем сервисы Google Play. Эмулятор проходит проверку целостности системы и соответствует основным требованиям совместимости с Android. |
Дополнительные вердикты по вопросам честности
Если вы подключили свой облачный проект в Play Console или Play SDK Console, вы можете подписаться на получение дополнительной информации.
Чтобы внести изменения, перейдите в консоль Play и выберите пункт « Защищено с помощью Play» . Рядом с пунктом «Play Integrity API» нажмите «Управление» . Нажмите «Изменить ответы» , отредактируйте и сохраните изменения.
Информация об устройстве
Дополнительные метки устройства в заключении deviceIntegrity дают больше информации об среде, в которой работает приложение. Одно устройство возвращает несколько меток, если оно соответствует критериям для каждой из них. Вы можете использовать эти метки для создания многоуровневой стратегии обеспечения безопасности. Например, вы можете больше доверять устройству, которое возвращает три метки ( MEETS_STRONG_INTEGRITY , MEETS_DEVICE_INTEGRITY и MEETS_BASIC_INTEGRITY ), чем устройству, которое возвращает только одну метку ( MEETS_BASIC_INTEGRITY ).
Атрибуты устройства показывают версию Android SDK операционной системы Android, установленной на устройстве. В будущем эта информация может быть расширена за счет других атрибутов устройства.
Анализ активности устройства показывает уровень от LEVEL_1 (небольшое количество запросов) до LEVEL_4 (большое количество запросов). Высокий уровень активности может указывать на использование устройства для генерации чрезмерного количества токенов с целью их распространения среди ненадежных устройств.
Функция «Запись с устройства» позволяет сохранять некоторые пользовательские данные для каждого устройства отдельно, которые можно надежно восстановить при повторной установке приложения на том же устройстве.
После того, как вы дадите согласие на предоставление необязательной информации, ваш API-ответ будет содержать новые поля и данные в заключении:
| Поле ответа | Этикетка | Описание | |
|---|---|---|---|
| целостность устройства | MEETS_BASIC_INTEGRITY | Приложение работает на устройстве, прошедшем базовые проверки целостности системы. Загрузчик устройства может быть заблокирован или разблокирован, а состояние загрузки может быть подтверждено или нет. Устройство может не быть сертифицировано, в этом случае Google не может предоставить никаких гарантий безопасности, конфиденциальности или совместимости приложения. На Android 13 и выше вердикт MEETS_BASIC_INTEGRITY требует, чтобы корневой узел доверия для аттестации был предоставлен Google. | |
MEETS_STRONG_INTEGRITY | The app is running on a genuine and certified Android device with a recent security update.
| ||
| Атрибуты устройства | sdkVersion: 19, 20, ..., 37 | The SDK version of the Android OS running on the device. The number returned maps to Build.VERSION_CODES . | |
| Пустое значение (пустой символ) | Версия SDK не проверяется, поскольку не было выполнено необходимое условие. В этом случае поле sdkVersion не задано, следовательно, поле deviceAttributes пустое. Это может произойти по следующим причинам:
| ||
| Standard API integrity token requests on this device in the last hour per app | Запросы на получение токена целостности классического API на этом устройстве за последний час для каждого приложения | ||
| Последние данные об активности устройств | LEVEL_1 (самый низкий) | 10 или меньше | 5 или меньше |
LEVEL_2 | От 11 до 25 лет | От 6 до 10 | |
LEVEL_3 | От 26 до 50 лет | В возрасте от 11 до 15 лет | |
LEVEL_4 (самый высокий) | Более 50 | Более 15 | |
UNEVALUATED | Recent device activity was not evaluated. This could happen because:
| ||
| отзыв устройства | values: bitFirst, bitSecond, bitThird | These are the bit values that you set in the past for the specific device. You decide the meaning of each bit. The three bit values are false by default. | |
writeDates: yyyymmFirst, yyyymmSecond, yyyymmThird | Это даты записи битовых значений в формате UTC с точностью до года и месяца. Дата записи бита восстановления обновляется каждый раз, когда бит устанавливается в значение true, и удаляется, когда бит устанавливается в значение false. | ||
Детали окружающей среды
Риск доступа к приложению показывает, запущены ли другие приложения, которые могут быть использованы для захвата экрана, отображения наложений или управления устройством. Проверенные сервисы специальных возможностей, известные Google Play, автоматически исключаются из этого вердикта.
Play Protect verdict tells you whether Google Play Protect is enabled on the device and whether it has found known malware.
After you opt in to optional information, your API response will include new fields and responses in the verdict:
| Поле ответа | Ценить | Описание |
|---|---|---|
| Вердикт по риску доступа к приложению | KNOWN_INSTALLED | Apps are installed by Google Play or preloaded on the system partition by the device manufacturer. |
KNOWN_CAPTURING | Apps installed by Google Play or preloaded on the device are running that could be used to read or capture inputs and outputs of the requesting app, such as screen recording apps. | |
KNOWN_CONTROLLING | Apps installed by Google Play or preloaded on the device are running that could be used to control the device and inputs and outputs of the requesting app, such as remote controlling apps. | |
KNOWN_OVERLAYS | Apps installed by Google Play or preloaded on the device are running that might be displaying overlays on the requesting app. | |
UNKNOWN_INSTALLED | Other apps are installed, which were not installed by Google Play or preloaded on the system partition by the device manufacturer. | |
UNKNOWN_CAPTURING | Other apps are running (not installed by Play or preloaded on the device) that could be used to read or capture inputs and outputs of the requesting app, such as screen recording apps. | |
UNKNOWN_CONTROLLING | Запущены и другие приложения (не установленные через Play или предустановленные на устройстве), которые могут использоваться для управления устройством, а также входами и выходами запрашивающего приложения, например, приложения для дистанционного управления. | |
UNKNOWN_OVERLAYS | Запущены другие приложения (не установленные через Play или предустановленные на устройстве), которые могут отображать наложения поверх запрашивающего приложения. | |
| Пустое значение (пустой символ) | App access risk is not evaluated if a necessary requirement was missed. In this case the appAccessRiskVerdict field is empty. This could happen for several reasons, including the following:
| |
| Вердикт по игре Play Protect | NO_ISSUES | Play Protect is turned on and did not find any app issues on the device. |
NO_DATA | Функция Play Protect включена, но сканирование еще не выполнялось. Возможно, устройство или приложение Play Store были недавно сброшены до заводских настроек. | |
POSSIBLE_RISK | Функция Play Protect отключена. | |
MEDIUM_RISK | Play Protect is turned on and has found potentially harmful apps installed on the device. | |
HIGH_RISK | Play Protect is turned on and has found dangerous apps installed on the device. | |
UNEVALUATED | Оценка эффективности Play Protect не проводилась. Было упущено необходимое условие, например, устройство не обладало достаточной надежностью. |
Настройка параметров классического запроса (необязательно)
Пропустите этот раздел, если вы планируете выполнять только стандартные API-запросы .
По умолчанию Google Play использует шифрование ответов, то есть ваш бэкэнд обращается к серверу Google для расшифровки результатов. В качестве альтернативы вы можете самостоятельно управлять ключами для локальной расшифровки в защищенной серверной среде.
Позвольте Google управлять шифрованием ваших ответов (рекомендуется).
We recommend allowing Google to generate and manage keys to protect your app's security. Your backend will call Google Play's server to decrypt and verify responses.
Управляйте своими собственными ключами шифрования.
Для локального расшифрования в вашей собственной защищенной серверной среде вы можете загрузить ключи шифрования из Play Console или Play SDK Console. Для использования этой функции ваше приложение должно быть доступно в Google Play.
Прежде чем изменять стратегию управления шифрованием ответов в консоли Play, убедитесь, что ваш сервер правильно настроен для расшифровки и проверки токенов целостности на серверах Google Play во избежание сбоев.
Переключайтесь между ключами шифрования, управляемыми Google, и ключами, управляемыми вами самостоятельно.
- Откройте Play Console и выберите своё приложение.
- Перейдите в раздел «Защищено с помощью Play» .
- Рядом с Play Integrity API нажмите «Управление» .
- В разделе «Классические запросы» , рядом с пунктом «Шифрование ответа» , нажмите «Редактировать» .
Чтобы переключиться на самостоятельно управляемые ключи:
- Select Manage and download my response encryption keys and upload your public key.
- Click Save to automatically download your encrypted keys.
- Обновите свой защищенный сервер, чтобы расшифровка происходила локально с помощью этих ключей.
Чтобы переключиться на ключи, управляемые Google:
- Выберите « Разрешить Google управлять шифрованием моего ответа (рекомендуется)» .
- Нажмите «Сохранить изменения» .