На этой странице объясняется, как настроить приложение или игру для использования API Play Integrity. Вам необходимо включить ответы от API, а затем интегрировать API в свое приложение и его внутренний сервер. Дополнительные параметры конфигурации, функции тестирования и отчеты станут доступны после привязки проекта Google Cloud, который вы используете для API Play Integrity, в консоли Google Play.
Включить ответы API Play Integrity
Каждое приложение или SDK, вызывающие API Play Integrity, должны использовать проект Google Cloud для мониторинга использования API. Приложения в Google Play могут связать проект Cloud в Google Play Console, чтобы включить ответы API Play Integrity. Если вы хотите создать новый проект Cloud или ваше приложение распространяется исключительно за пределами Google Play, вы можете включить ответы API Play Integrity из своей консоли Google Cloud Console.
Настроить в Google Play Console (рекомендуется)
Включив ответы Play Integrity API в Google Play Console , вы получите доступ к дополнительным параметрам конфигурации, функциям тестирования и отчетам API. Эта опция доступна только для приложений, распространяемых в Google Play. Перейдите в Release > App integrity . В разделе Play Integrity API выберите Link a Cloud project . Выберите облачный проект, который вы хотите связать со своим приложением, и это включит ответы Play Integrity API. Теперь вы можете интегрировать Play Integrity API в свое приложение.
Настройка в Google Cloud Console
В консоли Google Cloud Console создайте новый проект Cloud или выберите существующий проект Cloud, который вы хотите использовать с API Play Integrity. Перейдите в раздел API и службы . Выберите включить API и службы . Найдите API Play Integrity и включите его. Теперь вы можете интегрировать API Play Integrity в свое приложение.
Инструкции по настройке для поставщиков SDK
Поставщики SDK должны использовать собственный проект Google Cloud для вызова API Play Integrity, чтобы использование API приписывалось SDK, а не отдельным приложениям, использующим SDK. Это означает, что приложениям, использующим ваш SDK, не нужно индивидуально настраивать API Play Integrity. Ваши запросы к API Play Integrity автоматически учитываются в использовании API вашего SDK, а не приложения.
У разработчиков SDK есть два варианта настройки Play Integrity API: Google Play SDK Console или Google Cloud Console.
Используйте Google Play SDK Console (рекомендуется)
Включив ответы Play Integrity API в Google Play SDK Console, вы получите доступ к дополнительным параметрам конфигурации. Перейдите в раздел «Целостность SDK» и нажмите «Настройки» . В разделе «Конфигурация проекта» выберите «Связать проект Cloud» . Выберите проект Cloud, который вы хотите связать с вашим SDK, и это включит ответы Play Integrity API. Теперь вы можете интегрировать Play Integrity API в свой SDK. Обратите внимание, что доступ к Google Play SDK Console зависит от критериев соответствия .
Используйте Google Cloud Console
Вы можете включить ответы Play Integrity API из вашей Google Cloud Console. В вашей Google Cloud Console создайте новый проект Cloud или выберите существующий проект Cloud, который вы хотите использовать с Play Integrity API. Перейдите в раздел API и службы . Выберите включить API и службы . Найдите Play Integrity API и включите его. Теперь вы можете интегрировать Play Integrity API в свой SDK.
Увеличьте количество ежедневных запросов API Play Integrity вашего SDK
Поставщики SDK, которые хотят увеличить свой максимальный ежедневный объем запросов, должны заполнить форму запроса квоты . В разделе открытых комментариев укажите, что вы делаете запрос SDK, и включите свои координаты Maven ( groupId:artifactId
) или URL-адрес вашего SDK.
Ограничения на использование API Play Integrity
Ваше приложение будет подвергаться максимуму в 10 000 общих запросов на приложение в день. Вы можете запросить увеличение этого ежедневного максимума, если вашему приложению необходимо обрабатывать большее количество пользователей, следуя инструкциям ниже.
Действие | Дневная квота на приложение | Примечания |
---|---|---|
Запросы токенов | 10,000 | Используется совместно для классических запросов и стандартной подготовки токенов |
Расшифровка токенов на серверах Google | 10,000 | Распространяется на классические и стандартные запросы |
Увеличьте максимальное количество ежедневных запросов
Чтобы иметь право на увеличение вашего ежедневного максимального количества запросов, ваше приложение должно быть доступно в Google Play в дополнение к любым другим каналам распространения. Даже при увеличении ежедневного максимума вам следует продолжать ограничивать классические запросы на пользователя нечастыми, высокоценными действиями, чтобы сохранить пользовательские данные и батарею.
Чтобы запросить увеличение максимального ежедневного количества запросов, выполните следующие действия:
- Подключите проект Google Cloud, который вы используете для API Play Integrity в Play Console.
- Убедитесь, что вы правильно реализуете логику API, включая рекомендуемую стратегию повторных попыток.
- Запросите увеличение квоты, используя эту форму .
Увеличение квоты API Play Integrity может занять до недели, поэтому мы настоятельно рекомендуем отслеживать использование API Play Integrity в консоли Google Play или в консоли Google Cloud, где вы также можете настроить оповещения о квоте , чтобы избежать перебоев в работе вашего сервиса.
Увеличение квоты автоматически применяется как к клиентскому вызову для генерации токенов целостности, так и к серверному вызову для расшифровки и проверки токенов целостности.
Интегрируйте API Play Integrity в свое приложение
Чтобы интегрировать API Play Integrity в свое приложение или SDK, выполните одно из следующих действий в зависимости от вашей среды разработки:
Котлин или Java
Последняя библиотека Android для API Play Integrity доступна в репозитории Maven от Google . Добавьте следующую зависимость в файл build.gradle
вашего приложения:
implementation 'com.google.android.play:integrity:1.4.0'
Единство
В следующих разделах описывается, как интегрировать и настроить API Google Play Integrity для проектов 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.integrity
OpenUPM
Откройте настройки менеджера пакетов , выбрав пункт меню 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 Окно > Менеджер пакетов .
В раскрывающемся списке области действия менеджера выберите «Мои реестры» .
Выберите пакет плагина Google Play Integrity для Unity из списка пакетов и нажмите «Установить» .
Импорт из GitHub
Загрузите последнюю версию
.unitypackage
с GitHub.Импортируйте файл
.unitypackage
, выбрав пункт меню Unity «Активы» > «Импорт пакета» > «Пользовательский пакет» и импортировав все элементы.
Нереальный движок
В следующих разделах описывается, как интегрировать и настроить Google Play Integrity API для проектов Unreal Engine.
Поддерживаемые версии Unreal Engine
Плагин поддерживает Unreal Engine 5.0 и все последующие версии.
Настройте среду разработки
Загрузите плагин Play Unreal Engine из репозитория GitHub.
Скопируйте папку
GooglePlay
в папкуPlugins
вашего проекта Unreal Engine.Откройте проект Unreal Engine и нажмите «Правка» → «Плагины» .
Найдите Google Play и установите флажок «Включено» .
Перезапустите игровой проект и запустите сборку.
Откройте файл
Build.cs
вашего проекта и добавьте модульPlayIntegrity
вPublicDependencyModuleNames
:using UnrealBuildTool; public class MyGame : ModuleRules { public MyGame(ReadOnlyTargetRules Target) : base(Target) { // ... PublicDependencyModuleNames.Add("PlayIntegrity"); // ... } }
Родной
Установите Play Core Native SDK 1.13.0 или выше. Инструкции см. в руководстве по настройке среды разработки Play Core Native.
Настроить ответы API (необязательно)
Ответ API включает вердикты по умолчанию, возвращаемые в каждом запросе. Если вы настроили интеграцию API Play Integrity в Play Console, вы можете настроить ответ API.
Ответы по умолчанию
По умолчанию в ответе Play Integrity API возвращаются следующие вердикты целостности:
Поле ответа | Ценить | Описание |
---|---|---|
Целостность устройства | MEETS_DEVICE_INTEGRITY | Приложение работает на подлинном устройстве Android, сертифицированном Play Protect. На Android 13 и выше есть аппаратное подтверждение того, что загрузчик устройства заблокирован, а загруженная ОС Android является сертифицированным образом производителя устройства. |
Пусто (пустое значение) | Приложение запущено на устройстве, имеющем признаки атаки (например, перехват API) или взлома системы (например, наличие прав root), или приложение запущено не на физическом устройстве (например, эмулятор, не прошедший проверку целостности Google Play). | |
Данные учетной записи Play | LICENSED | У пользователя есть право на приложение. Другими словами, пользователь установил или обновил ваше приложение из Google Play на своем устройстве. |
UNLICENSED | У пользователя нет права на приложение. Это происходит, когда, например, пользователь загружает ваше приложение извне или не приобретает его из Google Play. | |
UNEVALUATED | Детали лицензирования не были оценены, поскольку требование было пропущено. Это могло произойти по нескольким причинам, включая следующие:
| |
Целостность приложения | PLAY_RECOGNIZED | Приложение и сертификат соответствуют версиям, распространяемым Google Play. |
UNRECOGNIZED_VERSION | Имя сертификата или пакета не соответствует записям Google Play. | |
UNEVALUATED | Целостность приложения не была оценена. Необходимое требование было пропущено, например, устройство не было достаточно надежным. |
Условные ответы
Если вы распространяете игру в Google Play Games для ПК , вы автоматически соглашаетесь на получение дополнительной метки в заключении о целостности устройства:
Поле ответа | Этикетка | Описание |
---|---|---|
Целостность устройства | MEETS_VIRTUAL_INTEGRITY | Приложение работает на эмуляторе Android, работающем на базе сервисов Google Play. Эмулятор проходит проверку целостности системы и соответствует основным требованиям совместимости Android. |
Дополнительные ответы
Если вы настроили интеграцию API Play Integrity в Play Console или Play SDK Console, вы можете подписаться на получение информации в ответе API.
Чтобы внести изменения в ответы API, посетите Play Console и перейдите в Release > App integrity . В разделе Responses отредактируйте и сохраните изменения.
Дополнительная информация об устройстве и отзыв устройства
Приложения и SDK могут выбрать дополнительные метки устройств в вердикте целостности устройства. После того, как вы согласитесь получать дополнительные метки, ответ целостности будет включать несколько меток для одного и того же устройства, если каждый из критериев метки будет выполнен. Вы можете подготовить свой внутренний сервер к разному поведению в зависимости от диапазона возможных ответов. Например, устройство, которое возвращает три метки ( MEETS_STRONG_INTEGRITY
, MEETS_DEVICE_INTEGRITY
и MEETS_BASIC_INTEGRITY
), может быть более надежным, чем устройство, которое возвращает только одну метку ( MEETS_BASIC_INTEGRITY
).
Вы можете выбрать атрибуты устройства , которые сообщают вам версию Android SDK ОС Android, работающей на устройстве. В будущем он может быть расширен другими атрибутами устройства.
Вы можете выбрать недавнюю активность устройства . Недавняя активность устройства возвращает уровень от LEVEL_1
(низкое количество запросов) до LEVEL_4
(высокое количество запросов). Например, устройство, которое возвращает значительно более высокий уровень активности, чем типичный для вашего приложения, может пытаться сгенерировать большое количество токенов целостности для распространения на ненадежные устройства.
Приложения также могут выбрать функцию отзыва устройства . Отзыв устройства позволяет вам сохранять некоторые пользовательские данные для каждого устройства с определенными устройствами, которые вы можете надежно извлечь, когда ваше приложение будет установлено снова на том же устройстве.
После того, как вы дадите согласие на получение дополнительной информации об устройстве и отзыв устройства, ваш ответ API будет включать новые поля целостности устройства и ответы в вердикте:
Поле ответа | Этикетка | Описание | |
---|---|---|---|
Целостность устройства | MEETS_BASIC_INTEGRITY | Приложение запущено на устройстве, которое прошло базовые проверки целостности системы. Загрузчик устройства может быть заблокирован или разблокирован, а состояние загрузки может быть проверено или не проверено. Устройство может не иметь сертификата Play Protect, в этом случае Google не может предоставить никаких гарантий безопасности, конфиденциальности или совместимости приложений. На Android 13 и выше вердикт MEETS_BASIC_INTEGRITY требует, чтобы корень доверия подтверждения был предоставлен Google. | |
MEETS_STRONG_INTEGRITY | Приложение работает на настоящем устройстве Android, сертифицированном Play Protect, с последним обновлением безопасности.
| ||
Атрибуты устройства | sdkVersion: 19, 20, ..., 36 | Версия SDK ОС Android, работающей на устройстве. Возвращаемое число соответствует Build.VERSION_CODES . | |
Пусто (пустое значение) | Версия SDK не оценивается, поскольку необходимое требование было пропущено. В этом случае поле sdkVersion не установлено; таким образом, поле deviceAttributes пустое. Это могло произойти по следующим причинам:
| ||
Стандартные запросы на маркер целостности API на этом устройстве за последний час для каждого приложения | Запросы токена целостности классического API на этом устройстве за последний час для каждого приложения | ||
Недавняя активность устройства | LEVEL_1 (самый низкий) | 10 или меньше | 5 или меньше |
LEVEL_2 | Между 11 и 25 | Между 6 и 10 | |
LEVEL_3 | От 26 до 50 | Между 11 и 15 | |
LEVEL_4 (высший) | Более 50 | Более 15 | |
UNEVALUATED | Недавняя активность устройства не была оценена. Это могло произойти по следующим причинам:
| ||
Отзыв устройства | values: bitFirst, bitSecond, bitThird | Это значения битов, которые вы установили в прошлом для конкретного устройства. Вы определяете значение каждого бита. Три значения битов по умолчанию ложны. | |
writeDates: yyyymmFirst, yyyymmSecond, yyyymmThird | Это даты записи битовых значений в UTC с точностью до года и месяца. Дата записи бита отзыва обновляется каждый раз, когда бит устанавливается в значение true, и удаляется, когда бит устанавливается в значение false. |
Дополнительные сведения об окружающей среде
Приложения могут выбрать получение дополнительных вердиктов об окружающей среде. Риск доступа к приложениям позволяет узнать, запущены ли другие приложения, которые могут захватывать экран, отображать наложения или управлять устройством. Вердикт Play Protect позволяет узнать, включена ли Play Protect на устройстве и обнаружено ли известное вредоносное ПО.
После того, как вы дадите согласие на получение этих вердиктов, ваш ответ API будет включать поле сведений о среде с вердиктом:
Поле ответа | Ценить | Описание |
---|---|---|
Вердикт о риске доступа к приложению | KNOWN_INSTALLED | Приложения устанавливаются через Google Play или предварительно загружаются в системный раздел производителем устройства. |
KNOWN_CAPTURING | Работают приложения, установленные через Google Play или предварительно загруженные на устройство, которые можно использовать для считывания или захвата входных и выходных данных запрашивающего приложения, например приложения для записи экрана. | |
KNOWN_CONTROLLING | Работают приложения, установленные через Google Play или предварительно загруженные на устройство, которые можно использовать для управления устройством, а также входами и выходами запрашивающего приложения, например, приложения удаленного управления. | |
KNOWN_OVERLAYS | Работают приложения, установленные через Google Play или предварительно загруженные на устройство, которые могут отображать наложения на запрашивающем приложении. | |
UNKNOWN_INSTALLED | Устанавливаются другие приложения, которые не были установлены Google Play или предварительно загружены в системный раздел производителем устройства. | |
UNKNOWN_CAPTURING | Работают другие приложения (не установленные Play и не предзагруженные на устройство), которые можно использовать для чтения или захвата входных и выходных данных запрашивающего приложения, например приложения для записи экрана. | |
UNKNOWN_CONTROLLING | Работают другие приложения (не установленные Play и не предварительно загруженные на устройство), которые можно использовать для управления устройством, а также входами и выходами запрашивающего приложения, например, приложения для удаленного управления. | |
UNKNOWN_OVERLAYS | Запущены другие приложения (не установленные Play и не предустановленные на устройстве), которые могут отображать наложения на запрашивающем приложении. | |
Пусто (пустое значение) | Риск доступа к приложению не оценивается, если необходимое требование было пропущено. В этом случае поле appAccessRiskVerdict пустое. Это может произойти по нескольким причинам, включая следующие:
| |
Вердикт Play Protect | NO_ISSUES | Play Protect включен и не обнаружил никаких проблем с приложением на устройстве. |
NO_DATA | Play Protect включен, но сканирование еще не проводилось. Возможно, устройство или приложение Play Store недавно были сброшены. | |
POSSIBLE_RISK | Функция Play Protect отключена. | |
MEDIUM_RISK | Функция Play Protect включена и обнаружила на устройстве потенциально опасные приложения. | |
HIGH_RISK | Функция Play Protect включена и обнаружила на устройстве опасные приложения. | |
UNEVALUATED | Вердикт Play Protect не был оценен. Необходимое требование было пропущено, например, устройство не было достаточно надежным. |
Настройте параметры классического запроса (необязательно)
Пропустите этот раздел, если вы планируете делать только стандартные запросы API .
Когда вы делаете классические запросы, по умолчанию серверы Google Play управляют шифрованием ответа, которое ваше приложение использует при взаимодействии с API Play Integrity. Хотя мы рекомендуем вам использовать этот параметр по умолчанию, вы также можете управлять и загружать ключи шифрования ответа, следуя инструкциям ниже.
Позвольте Google управлять шифрованием вашего ответа (по умолчанию и рекомендуется)
Чтобы защитить безопасность вашего приложения, рекомендуется разрешить Google генерировать и управлять вашими ключами шифрования ответов. Ваш внутренний сервер будет вызывать сервер Google Play для расшифровки ответов.
Управляйте и скачивайте мои ключи шифрования ответов
Если вы хотите расшифровать вердикт целостности локально в вашей собственной защищенной серверной среде, вы можете управлять и загружать ключи шифрования ответа. Для управления и загрузки ключей шифрования ответа вы должны использовать Play Console, а ваше приложение должно быть доступно в Google Play в дополнение к любым другим каналам распространения. Следуйте инструкциям ниже, чтобы переключиться с управляемых Google на самостоятельно управляемые ключи шифрования ответа.
Помните, что не следует расшифровывать или проверять полученный токен из клиентского приложения, а также никогда не раскрывать клиентскому приложению какие-либо ключи дешифрования.
Прежде чем изменять стратегию управления шифрованием ответов в Play Console, убедитесь, что ваш сервер правильно настроен для расшифровки и проверки токенов целостности на серверах Google Play, чтобы избежать сбоев.
Переключение между ключами шифрования ответов, управляемыми Google, и ключами шифрования ответов, управляемыми самостоятельно
Если в настоящее время шифрованием ваших ответов управляет Google и вы хотите самостоятельно управлять ключами шифрования ответов и загружать их, выполните следующие действия:
- Войдите в Play Console .
- Выберите приложение, использующее API Play Integrity.
- В разделе «Выпуск» левого меню перейдите в раздел «Целостность приложения» .
- Рядом с Play Integrity API нажмите Настройки .
- В разделе «Классические запросы» на странице рядом с пунктом «Шифрование ответа » нажмите «Изменить» .
- В появившемся окне нажмите «Управление» и загрузите мои ключи шифрования ответов .
- Следуйте инструкциям по загрузке открытого ключа.
- После того, как в окне появится сообщение об успешной загрузке, нажмите кнопку «Сохранить» , и ваши зашифрованные ключи загрузятся автоматически.
- Измените логику сервера таким образом, чтобы вы могли расшифровывать и проверять токены целостности локально, в собственной защищенной серверной среде, используя ключи шифрования ответов.
- (Необязательно) Если вы самостоятельно управляете ключами шифрования ответов, ваше приложение по-прежнему может обратиться к серверу Google Play для расшифровки и проверки ответа.
Если вы самостоятельно управляете ключами шифрования ответов и хотите передать управление шифрованием ответов Google, выполните следующие действия:
- Измените логику сервера так, чтобы расшифровка и проверка выполнялись исключительно на серверах Google.
- Войдите в Play Console .
- Выберите приложение, использующее API Play Integrity.
- В разделе «Выпуск» левого меню перейдите в раздел «Целостность приложения» .
- Рядом с Play Integrity API нажмите Настройки .
- В разделе «Классические запросы» на странице рядом с пунктом «Шифрование ответа » нажмите «Изменить» .
- В появившемся окне нажмите Разрешить Google управлять шифрованием моего ответа (рекомендуется) .
- Нажмите Сохранить изменения .
На этой странице объясняется, как настроить приложение или игру для использования API Play Integrity. Вам необходимо включить ответы от API, а затем интегрировать API в свое приложение и его внутренний сервер. Дополнительные параметры конфигурации, функции тестирования и отчеты станут доступны после привязки проекта Google Cloud, который вы используете для API Play Integrity, в консоли Google Play.
Включить ответы API Play Integrity
Каждое приложение или SDK, вызывающие API Play Integrity, должны использовать проект Google Cloud для мониторинга использования API. Приложения в Google Play могут связать проект Cloud в Google Play Console, чтобы включить ответы API Play Integrity. Если вы хотите создать новый проект Cloud или ваше приложение распространяется исключительно за пределами Google Play, вы можете включить ответы API Play Integrity из своей консоли Google Cloud Console.
Настроить в Google Play Console (рекомендуется)
Включив ответы Play Integrity API в Google Play Console , вы получите доступ к дополнительным параметрам конфигурации, функциям тестирования и отчетам API. Эта опция доступна только для приложений, распространяемых в Google Play. Перейдите в Release > App integrity . В разделе Play Integrity API выберите Link a Cloud project . Выберите облачный проект, который вы хотите связать со своим приложением, и это включит ответы Play Integrity API. Теперь вы можете интегрировать Play Integrity API в свое приложение.
Настройка в Google Cloud Console
В консоли Google Cloud Console создайте новый проект Cloud или выберите существующий проект Cloud, который вы хотите использовать с API Play Integrity. Перейдите в раздел API и службы . Выберите включить API и службы . Найдите API Play Integrity и включите его. Теперь вы можете интегрировать API Play Integrity в свое приложение.
Инструкции по настройке для поставщиков SDK
Поставщики SDK должны использовать собственный проект Google Cloud для вызова API Play Integrity, чтобы использование API приписывалось SDK, а не отдельным приложениям, использующим SDK. Это означает, что приложениям, использующим ваш SDK, не нужно индивидуально настраивать API Play Integrity. Ваши запросы к API Play Integrity автоматически учитываются в использовании API вашего SDK, а не приложения.
У разработчиков SDK есть два варианта настройки Play Integrity API: Google Play SDK Console или Google Cloud Console.
Используйте Google Play SDK Console (рекомендуется)
Включив ответы Play Integrity API в Google Play SDK Console, вы получите доступ к дополнительным параметрам конфигурации. Перейдите в раздел «Целостность SDK» и нажмите «Настройки» . В разделе «Конфигурация проекта» выберите «Связать проект Cloud» . Выберите проект Cloud, который вы хотите связать с вашим SDK, и это включит ответы Play Integrity API. Теперь вы можете интегрировать Play Integrity API в свой SDK. Обратите внимание, что доступ к Google Play SDK Console зависит от критериев соответствия .
Используйте Google Cloud Console
Вы можете включить ответы Play Integrity API из вашей Google Cloud Console. В вашей Google Cloud Console создайте новый проект Cloud или выберите существующий проект Cloud, который вы хотите использовать с Play Integrity API. Перейдите в раздел API и службы . Выберите включить API и службы . Найдите Play Integrity API и включите его. Теперь вы можете интегрировать Play Integrity API в свой SDK.
Увеличьте количество ежедневных запросов API Play Integrity вашего SDK
Поставщики SDK, которые хотят увеличить свой максимальный ежедневный объем запросов, должны заполнить форму запроса квоты . В разделе открытых комментариев укажите, что вы делаете запрос SDK, и включите свои координаты Maven ( groupId:artifactId
) или URL-адрес вашего SDK.
Ограничения на использование API Play Integrity
Ваше приложение будет подвергаться максимуму в 10 000 общих запросов на приложение в день. Вы можете запросить увеличение этого ежедневного максимума, если вашему приложению необходимо обрабатывать большее количество пользователей, следуя инструкциям ниже.
Действие | Дневная квота на приложение | Примечания |
---|---|---|
Запросы токенов | 10,000 | Используется совместно для классических запросов и стандартной подготовки токенов |
Расшифровка токенов на серверах Google | 10,000 | Распространяется на классические и стандартные запросы |
Увеличьте максимальное количество ежедневных запросов
Чтобы иметь право на увеличение вашего ежедневного максимального количества запросов, ваше приложение должно быть доступно в Google Play в дополнение к любым другим каналам распространения. Даже при увеличении ежедневного максимума вам следует продолжать ограничивать классические запросы на пользователя нечастыми, высокоценными действиями, чтобы сохранить пользовательские данные и батарею.
Чтобы запросить увеличение максимального ежедневного количества запросов, выполните следующие действия:
- Подключите проект Google Cloud, который вы используете для API Play Integrity в Play Console.
- Убедитесь, что вы правильно реализуете логику API, включая рекомендуемую стратегию повторных попыток.
- Запросите увеличение квоты, используя эту форму .
Увеличение квоты API Play Integrity может занять до недели, поэтому мы настоятельно рекомендуем отслеживать использование API Play Integrity в консоли Google Play или в консоли Google Cloud, где вы также можете настроить оповещения о квоте , чтобы избежать перебоев в работе вашего сервиса.
Увеличение квоты автоматически применяется как к клиентскому вызову для генерации токенов целостности, так и к серверному вызову для расшифровки и проверки токенов целостности.
Интегрируйте API Play Integrity в свое приложение
Чтобы интегрировать API Play Integrity в свое приложение или SDK, выполните одно из следующих действий в зависимости от вашей среды разработки:
Котлин или Java
Последняя библиотека Android для API Play Integrity доступна в репозитории Maven от Google . Добавьте следующую зависимость в файл build.gradle
вашего приложения:
implementation 'com.google.android.play:integrity:1.4.0'
Единство
В следующих разделах описывается, как интегрировать и настроить API Google Play Integrity для проектов 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.integrity
OpenUPM
Откройте настройки менеджера пакетов , выбрав пункт меню 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 Окно > Менеджер пакетов .
В раскрывающемся списке области действия менеджера выберите «Мои реестры» .
Выберите пакет плагина Google Play Integrity для Unity из списка пакетов и нажмите «Установить» .
Импорт из GitHub
Загрузите последнюю версию
.unitypackage
с GitHub.Импортируйте файл
.unitypackage
, выбрав пункт меню Unity «Активы» > «Импорт пакета» > «Пользовательский пакет» и импортировав все элементы.
Нереальный движок
В следующих разделах описывается, как интегрировать и настроить Google Play Integrity API для проектов Unreal Engine.
Поддерживаемые версии Unreal Engine
Плагин поддерживает Unreal Engine 5.0 и все последующие версии.
Настройте среду разработки
Загрузите плагин Play Unreal Engine из репозитория GitHub.
Скопируйте папку
GooglePlay
в папкуPlugins
вашего проекта Unreal Engine.Откройте проект Unreal Engine и нажмите «Правка» → «Плагины» .
Найдите Google Play и установите флажок «Включено» .
Перезапустите игровой проект и запустите сборку.
Откройте файл
Build.cs
вашего проекта и добавьте модульPlayIntegrity
вPublicDependencyModuleNames
:using UnrealBuildTool; public class MyGame : ModuleRules { public MyGame(ReadOnlyTargetRules Target) : base(Target) { // ... PublicDependencyModuleNames.Add("PlayIntegrity"); // ... } }
Родной
Установите Play Core Native SDK 1.13.0 или выше. Инструкции см. в руководстве по настройке среды разработки Play Core Native.
Настроить ответы API (необязательно)
Ответ API включает вердикты по умолчанию, возвращаемые в каждом запросе. Если вы настроили интеграцию API Play Integrity в Play Console, вы можете настроить ответ API.
Ответы по умолчанию
По умолчанию в ответе Play Integrity API возвращаются следующие вердикты целостности:
Поле ответа | Ценить | Описание |
---|---|---|
Целостность устройства | MEETS_DEVICE_INTEGRITY | Приложение работает на подлинном устройстве Android, сертифицированном Play Protect. На Android 13 и выше есть аппаратное подтверждение того, что загрузчик устройства заблокирован, а загруженная ОС Android является сертифицированным образом производителя устройства. |
Пусто (пустое значение) | Приложение запущено на устройстве, имеющем признаки атаки (например, перехват API) или взлома системы (например, наличие прав root), или приложение запущено не на физическом устройстве (например, эмулятор, не прошедший проверку целостности Google Play). | |
Данные учетной записи Play | LICENSED | У пользователя есть право на приложение. Другими словами, пользователь установил или обновил ваше приложение из Google Play на своем устройстве. |
UNLICENSED | У пользователя нет права на приложение. Это происходит, когда, например, пользователь загружает ваше приложение извне или не приобретает его из Google Play. | |
UNEVALUATED | Детали лицензирования не были оценены, поскольку требование было пропущено. Это могло произойти по нескольким причинам, включая следующие:
| |
Целостность приложения | PLAY_RECOGNIZED | Приложение и сертификат соответствуют версиям, распространяемым Google Play. |
UNRECOGNIZED_VERSION | Сертификат или имя пакета не совпадают с записями Google Play. | |
UNEVALUATED | Целостность приложения не была оценена. Было пропущено необходимое требование, например, устройство недостаточно заслуживает доверия. |
Условные ответы
Если вы распространяете Google Play Games для ПК , вы будете автоматически выбрать, чтобы получить дополнительную метку в вердикте целостности устройства:
Поле ответа | Этикетка | Описание |
---|---|---|
Целостность устройства | MEETS_VIRTUAL_INTEGRITY | Приложение работает на эмуляторе Android, основанном на Google Play Services. Эмулятор проходит проверку целостности системы и соответствует основным требованиям совместимости Android. |
Дополнительные ответы
Если вы настроите интеграцию API API -интеграции Play Integrity в Play Console или Play SDK Console, вы можете выбрать информацию в своем ответе API.
Чтобы внести изменения в ваши ответы API, посетите воспроизведение консоли и перейдите к выпуску > Целостность приложения . Под ответами редактируйте и сохраните ваши изменения.
Дополнительная информация об устройстве и отзыв устройства
Приложения и SDK могут выбрать дополнительные метки устройства в вердикте целостности устройства. После того, как вы выберете дополнительные этикетки, ответ на целостность будет включать несколько меток для одного и того же устройства, если каждый из критериев метки будет соблюден. Вы можете подготовить свой бэкэнд -сервер, чтобы вести себя по -разному в зависимости от диапазона возможных ответов. Например, устройство, которое возвращает три метки ( MEETS_STRONG_INTEGRITY
, MEETS_DEVICE_INTEGRITY
и MEETS_BASIC_INTEGRITY
) может доверять больше, чем устройство, которое возвращает только одну метку ( MEETS_BASIC_INTEGRITY
).
Вы можете выбрать атрибуты устройства , что сообщает вам версию Android SDK ОС Android, работающую на устройстве. В будущем он может быть расширен с помощью других атрибутов устройства.
Вы можете выбрать недавнюю активность устройства . Недавняя активность устройства возвращает уровень в диапазоне от LEVEL_1
(низкое количество запросов) до LEVEL_4
(большое количество запросов). Например, устройство, которое возвращает значительно более высокий уровень активности, чем типично для вашего приложения, может попытаться генерировать большое количество токенов целостности для распределения на ненадежные устройства.
Приложения также могут выбрать отзыв устройства . Отзыв устройства позволяет сохранить некоторые пользовательские данные для каждого устройства с определенными устройствами, которые вы можете надежно получить, когда ваше приложение снова установлено позже на том же устройстве.
После того, как вы выберете дополнительную информацию об устройстве и отзыв устройства, ваш ответ API будет включать новые поля целостности устройства и ответы в вердикте:
Поле ответа | Этикетка | Описание | |
---|---|---|---|
Целостность устройства | MEETS_BASIC_INTEGRITY | Приложение работает на устройстве, которое проходит базовые проверки целостности системы. Загрузчик устройства может быть заблокирован или разблокирован, а состояние загрузки может быть проверено или не проверено. Устройство не может быть сертифицировано Play Protect, и в этом случае Google не может предоставить какую -либо безопасность, конфиденциальность или заверения совместимости приложений. На Android 13 и выше, вердикт MEETS_BASIC_INTEGRITY требует, чтобы корень доверия был предоставлен Google. | |
MEETS_STRONG_INTEGRITY | Приложение работает на подлинном сертифицированном устройстве Play Protect Android с недавним обновлением безопасности.
| ||
Атрибуты устройства | sdkVersion: 19, 20, ..., 36 | SDK -версия ОС Android, работающая на устройстве. Номер возвращал карты в Build.VERSION_CODES . | |
Пусто (пустое значение) | Версия SDK не оценивается, потому что необходимое требование было пропущено. В этом случае поле sdkVersion не является; Таким образом, поле deviceAttributes пусто. Это может произойти, потому что:
| ||
Стандартные запросы на токен целостности API на этом устройстве за последний час на приложение | Классические запросы на токен целостности API на этом устройстве за последний час на приложение | ||
Недавняя активность устройства | LEVEL_1 (самый низкий) | 10 или меньше | 5 или меньше |
LEVEL_2 | От 11 до 25 | От 6 до 10 | |
LEVEL_3 | Между 26 и 50 | От 11 до 15 | |
LEVEL_4 (самый высокий) | Более 50 | Более 15 | |
UNEVALUATED | Недавняя активность устройства не была оценена. Это может произойти, потому что:
| ||
Отзыв устройства | values: bitFirst, bitSecond, bitThird | Это битовые значения, которые вы устанавливаете в прошлом для конкретного устройства. Вы решаете значение каждого бита. Три -битные значения по умолчанию являются ложными. | |
writeDates: yyyymmFirst, yyyymmSecond, yyyymmThird | Это даты записи битовых значений в UTC, точной до года и месяца. Дата записи бита отзыва обновляется каждый раз, когда бит устанавливается на TRUE и удаляется, когда бит установлен на FALSE. |
Дополнительные детали среды
Приложения могут выбрать дополнительные приговоры об окружающей среде. Риск доступа к приложениям позволяет узнать, запускаются ли другие приложения, которые могут захватить экран, отображать наложения или управлять устройством. Вердикт Play Protect позволяет узнать, включена ли Play Protect на устройстве и нашел ли он известный вредоносные программы.
После того, как вы выберете эти вердикты, ваш ответ API будет включать в себя поле с подробностями среды с вердиктом:
Поле ответа | Ценить | Описание |
---|---|---|
Приложение приложения доступа к приложению вердикт | KNOWN_INSTALLED | Приложения устанавливаются Google Play или предварительно загружены на системный раздел производителем устройств. |
KNOWN_CAPTURING | Запускаются приложения, установленные Google Play или предварительно загруженным на устройстве, которые можно использовать для чтения или захвата входов и выходов запрашивающего приложения, таких как приложения для записи экрана. | |
KNOWN_CONTROLLING | Запускаются приложения, установленные Google Play или предварительно загруженным на устройстве, которые можно использовать для управления устройством и входами и выходами запрашивающего приложения, таких как приложения с дистанционным управлением. | |
KNOWN_OVERLAYS | Приложения, установленные Google Play или предварительно загруженные на устройстве, используются, которые могут отображать наложения в приложении запрашивающих приложений. | |
UNKNOWN_INSTALLED | Установлены другие приложения, которые не были установлены Google Play или предварительно загружены в системный раздел производителем устройства. | |
UNKNOWN_CAPTURING | Другие приложения работают (не установлены Play или предварительно загружены на устройство), которые можно использовать для чтения или захвата входов и выходов запрашивающего приложения, таких как приложения для записи экрана. | |
UNKNOWN_CONTROLLING | Другие приложения выполняются (не установлены Play или предварительно загружены на устройство), которые можно использовать для управления устройством и входами и выходами запрашивающего приложения, таких как приложения с дистанционным управлением. | |
UNKNOWN_OVERLAYS | Другие приложения работают (не установлены Play или предварительно загружены на устройство), которые могут отображать наложения в запрашивающем приложении. | |
Пусто (пустое значение) | Риск доступа к приложениям не оценивается, если было пропущено необходимое требование. В этом случае поле appAccessRiskVerdict пусто. Это может произойти по нескольким причинам, включая следующие:
| |
Играть в защиту вердикт | NO_ISSUES | Play Protect включается и не нашел проблем с приложением на устройстве. |
NO_DATA | Play Protect включается, но сканирование еще не было выполнено. Устройство или приложение Play Store, возможно, были недавно сброшены. | |
POSSIBLE_RISK | Play Protect выключен. | |
MEDIUM_RISK | Play Protect включен и обнаружил потенциально вредные приложения, установленные на устройстве. | |
HIGH_RISK | Play Protect включен и обнаружил опасные приложения, установленные на устройстве. | |
UNEVALUATED | Вердикт Play Protect не был оценен. Было пропущено необходимое требование, например, устройство недостаточно заслуживает доверия. |
Настройка классических настроек запроса (необязательно)
Пропустите этот раздел, если вы планируете сделать стандартные запросы API .
Когда вы делаете классические запросы, по умолчанию серверы Google Play управляют шифрованием ответа, которое ваше приложение использует при взаимодействии с API Play Integrity API. Несмотря на то, что мы рекомендуем использовать эту опцию по умолчанию, вы также можете выбрать управление и загрузку ключей шифрования ответа, следуя приведенным ниже инструкциям.
Позвольте Google управлять вашим шифрованием ответа (по умолчанию и рекомендуется)
Чтобы защитить безопасность вашего приложения, рекомендуется позволить Google генерировать и управлять вашим ключам шифрования ответа. Ваш бэкэнд -сервер вызовет сервер Google Play, чтобы расшифровать ответы.
Управление и скачать мои клавиши шифрования ответа
Если вы хотите расшифровывать вердикт целостности локально в своей собственной среде безопасного сервера, вы можете управлять и загружать свои клавиши шифрования ответа. Чтобы управлять и загрузить ключи шифрования ответа, вы должны использовать Play Console, и ваше приложение должно быть доступно в Google Play в дополнение к любым другим каналам распространения. Следуйте приведенным ниже инструкциям, чтобы переключиться с Google, управляемых на клавиши шифрования ответа самоуправленного.
Помните, чтобы не расшифровать и не проверять полученный токен из вашего клиентского приложения, и никогда не подвергайте никаких ключей дешифрования клиентскому приложению.
Прежде чем изменить стратегию управления шифрованием ответа в консоли PLAY, убедитесь, что ваш сервер правильно настроен на расшифровку и проверку токенов целостности на серверах Google Play, чтобы избежать нарушения.
Переключить между Google-управляемыми и самоуправляемыми ключами шифрования ответа
Если Google в настоящее время управляет вашим шифрованием ответа, и вы хотите переключиться на управление и загрузить свои клавиши шифрования ответа, выполните следующие действия:
- Войдите в игровой консоли .
- Выберите приложение, которое использует API Play Integry API.
- В разделе «Выпуск левого меню» перейдите к целостности приложения .
- Рядом, чтобы воспроизвести API целостности , нажмите «Настройки» .
- В разделе «Классические запросы страницы», рядом с шифрованием ответа , нажмите «Редактировать» .
- В появлении окна нажмите «Управление» и «Загрузите мои клавиши шифрования ответа» .
- Следуйте инструкциям, чтобы загрузить открытый ключ.
- После того, как окно показывает, что загрузка была успешной, нажмите «Сохранить» , и ваши зашифрованные клавиши загружают автоматически.
- Измените логику сервера так, чтобы вы расшифровали и проверяли токены целостности локально, в собственной среде безопасного сервера, используя свои клавиши шифрования ответа.
- (Необязательно) Когда вы самостоятельно управляете своими ключами шифрования ответа, ваше приложение все еще может вернуться на сервер Google Play, чтобы расшифровать и проверить ответ.
Если вы самостоятельно управляете своими ключами шифрования ответа, и вы хотите переключиться, чтобы Google управлял своим шифрованием ответа, выполните следующие действия:
- Измените логику сервера так, чтобы вы исключительно расшифровали и проверяли на серверах Google.
- Войдите в игровой консоли .
- Выберите приложение, которое использует API Play Integry API.
- В разделе «Выпуск левого меню» перейдите к целостности приложения .
- Рядом, чтобы воспроизвести API целостности , нажмите «Настройки» .
- В разделе «Классические запросы страницы», рядом с шифрованием ответа , нажмите «Редактировать» .
- В появлении окна нажмите Google управлять моим шифрованием ответа (рекомендуется) .
- Нажмите Сохранить изменения .