Настройка

На этой странице объясняется, как настроить приложение или игру для использования Play Integrity API. Вам необходимо включить ответы API, а затем интегрировать API в ваше приложение и внутренний сервер вашего приложения. Дополнительные параметры конфигурации, функции тестирования и отчеты станут доступны после того, как вы свяжете проект Google Cloud, который вы используете для Play Integrity API, в консоли Google Play.

Включить ответы Play Integrity API

Каждое приложение или SDK, вызывающее Play Integrity API, должно использовать проект Google Cloud для мониторинга использования API. Приложения в Google Play могут связать облачный проект в консоли Google Play, чтобы включить ответы Play Integrity API. Если вы хотите создать новый облачный проект или ваше приложение распространяется исключительно за пределами Google Play, вы можете включить ответы Play Integrity API в своей Google Cloud Console.

Настроить в Google Play Console (рекомендуется)

Включив ответы Play Integrity API в консоли Google Play , вы получите доступ к дополнительным параметрам конфигурации, функциям тестирования и отчетам API. Эта опция доступна только для приложений, распространяемых в Google Play. Перейдите в раздел «Выпуск» > «Целостность приложения» . В разделе Play Integrity API выберите «Связать с облачным проектом» . Выберите облачный проект, который вы хотите связать со своим приложением, и это активирует ответы Play Integrity API. Теперь вы можете интегрировать Play Integrity API в свое приложение.

Настройка в Google Cloud Console

В Google Cloud Console создайте новый облачный проект или выберите существующий облачный проект, который вы хотите использовать с Play Integrity API. Перейдите к API и сервисам . Выберите «Включить API и службы» . Найдите Play Integrity API и включите его. Теперь вы можете интегрировать Play Integrity API в свое приложение.

Инструкции по настройке для поставщиков SDK

Поставщики SDK должны использовать собственный проект Google Cloud для вызова Play Integrity API, чтобы использование API относилось к SDK, а не к отдельным приложениям, использующим SDK. Это означает, что приложениям, использующим ваш SDK, не нужно индивидуально настраивать Play Integrity API. Ваши запросы к Play Integrity API автоматически учитываются при использовании API вашего SDK, а не приложения.

У разработчиков SDK есть два варианта настройки Play Integrity API: консоль Google Play SDK или консоль Google Cloud.

Включив ответы Play Integrity API в консоли Google Play SDK, вы получаете доступ к дополнительным параметрам конфигурации. Перейдите к целостности SDK и нажмите «Настройки» . В разделе «Конфигурация проекта» выберите «Связать облачный проект» . Выберите облачный проект, который вы хотите связать со своим SDK, и это активирует ответы Play Integrity API. Теперь вы можете интегрировать Play Integrity API в свой SDK. Обратите внимание, что доступ к консоли Google Play SDK зависит от критериев приемлемости .

Используйте облачную консоль Google

Вы можете включить ответы Play Integrity API из своей Google Cloud Console. В Google Cloud Console создайте новый облачный проект или выберите существующий облачный проект, который вы хотите использовать с Play Integrity API. Перейдите к API и сервисам . Выберите «Включить API и службы» . Найдите Play Integrity API и включите его. Теперь вы можете интегрировать Play Integrity API в свой SDK.

Увеличьте количество ежедневных запросов Play Integrity API вашего SDK.

Поставщики SDK, которые хотят увеличить максимальное количество ежедневных запросов, должны заполнить форму запроса квоты . В разделе открытых комментариев укажите, что вы делаете запрос SDK, и укажите свои координаты Maven ( groupId:artifactId ) или URL-адрес вашего SDK.

Увеличьте количество ежедневных запросов Play Integrity API.

Ваше приложение будет подвергаться максимум 10 000 запросов на одно приложение в день. Вы можете запросить увеличение этого дневного максимума, если вашему приложению необходимо обслуживать увеличенное количество пользователей, следуя инструкциям ниже.

Увеличьте ежедневное максимальное количество запросов

Чтобы иметь право на увеличение максимального количества ежедневных запросов, ваше приложение должно быть доступно в Google Play в дополнение к любым другим каналам распространения. Даже при увеличении дневного максимума вам следует продолжать ограничивать классические запросы на одного пользователя нечастыми и важными действиями, чтобы сохранить пользовательские данные и заряд батареи.

Чтобы запросить увеличение максимального количества запросов в день, выполните следующие действия:

  1. Свяжите проект Google Cloud, который вы используете для Play Integrity API, в Play Console.
  2. Убедитесь, что вы правильно реализуете логику API, включая рекомендуемую стратегию повторных попыток.
  3. Запросите увеличение квоты, используя эту форму .

Увеличение квоты Play Integrity API может занять до недели, поэтому мы настоятельно рекомендуем отслеживать использование Play Integrity API в консоли Google Play или в Google Cloud Console, где вы также можете настроить оповещения о квотах , чтобы избежать перебоев в вашей работе. услуга.

Увеличение квоты классического запроса будет автоматически применено как к клиентскому вызову для создания токенов целостности, так и к серверному вызову для расшифровки и проверки токенов целостности. Стандартное увеличение квоты запросов применяется к вызову сервера для расшифровки и проверки токенов целостности.

Интегрируйте Play Integrity API в свое приложение.

Чтобы интегрировать Play Integrity API в ваше приложение или SDK, выполните одно из следующих действий в зависимости от вашей среды разработки:

Котлин или Java

Последняя версия библиотеки Android для Play Integrity API доступна в репозитории Google Maven . Добавьте следующую зависимость в файл build.gradle вашего приложения:

implementation 'com.google.android.play:integrity:1.4.0'

Единство

В следующих разделах описывается, как интегрировать и настроить Google Play Integrity API для проектов Unity, включая поддерживаемые версии Unity, методы установки и настройку среды.

Поддерживаемые версии Unity

  • Поддерживаются все версии 2019.x, 2020.x и новее.
  • Если вы используете Unity 2018.x, поддерживается версия 2018.4 или новее.
  • Unity 2017.x и более ранние версии не поддерживаются.

Настройте среду разработки

OpenUPM-CLI

Если у вас установлен интерфейс командной строки OpenUPM, вы можете установить реестр OpenUPM с помощью следующей команды:

openupm add com.google.play.integrity

ОпенУПМ

  1. Откройте настройки менеджера пакетов , выбрав пункт меню Unity Edit > Project Settings > Package Manager .

  2. Добавьте 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
    
  3. Откройте меню диспетчера пакетов , выбрав пункт меню Unity «Окно» > «Диспетчер пакетов» .

  4. Установите раскрывающийся список области менеджера, чтобы выбрать «Мои реестры» .

  5. Выберите плагин Google Play Integrity для пакета Unity из списка пакетов и нажмите «Установить» .

Импорт из GitHub

  1. Загрузите последнюю версию .unitypackage с GitHub.

  2. Импортируйте файл .unitypackage , выбрав пункт меню Unity «Активы» > «Импортировать пакет» > «Пользовательский пакет» и импортировав все элементы.

Родной

Установите Play Core Native SDK 1.13.0 или более поздней версии. Инструкции см. в руководстве по настройке среды разработки Play Core Native.

Настройте ответы API (необязательно)

Ответ API включает вердикты по умолчанию, возвращаемые в каждом запросе. Если вы настроили интеграцию Play Integrity API в Play Console, вы можете настроить ответ API.

Ответы по умолчанию

По умолчанию в ответе Play Integrity API возвращаются следующие вердикты целостности:

Поле ответа Ценить Описание
Целостность устройства MEETS_DEVICE_INTEGRITY Приложение работает на устройстве Android с поддержкой сервисов Google Play. Устройство проходит проверку целостности системы и соответствует требованиям совместимости с Android.
Пусто (пустое значение) Приложение работает на устройстве, имеющем признаки атаки (например, перехват API) или взлома системы (например, рутирование), или приложение не работает на физическом устройстве (например, эмулятор, который не проходит проверку целостности Google Play). чеки).
Детали игрового аккаунта LICENSED У пользователя есть право на использование приложения. Другими словами, пользователь установил или обновил ваше приложение из Google Play на своем устройстве.
UNLICENSED У пользователя нет прав на использование приложения. Это происходит, например, когда пользователь загружает ваше приложение или не скачивает его из Google Play.
UNEVALUATED Детали лицензирования не оценивались, поскольку было пропущено одно из требований. Это может произойти по нескольким причинам, включая следующие:
  • Устройство не заслуживает доверия.
  • Пользователь не авторизован в Google Play.
  • Версия вашего приложения, установленного на устройстве, неизвестна Google Play.
Целостность приложения PLAY_RECOGNIZED Приложение и сертификат соответствуют версиям, распространяемым Google Play.
UNRECOGNIZED_VERSION Название сертификата или пакета не соответствует записям Google Play.
UNEVALUATED Целостность приложения не оценивалась. Было пропущено необходимое требование, например, устройство не заслуживало достаточного доверия.

Условные ответы

Если вы распространяете игры в Google Play Games для ПК , вы автоматически получите дополнительную метку в вердикте целостности устройства:

Поле ответа Этикетка Описание
Целостность устройства MEETS_VIRTUAL_INTEGRITY Приложение работает на эмуляторе Android на базе сервисов Google Play. Эмулятор проходит проверку целостности системы и соответствует основным требованиям совместимости Android.

Дополнительные ответы

Если вы настроили интеграцию Play Integrity API в Play Console или Play SDK Console, вы можете подписаться на получение информации в ответе API.

Чтобы внести изменения в ответы API, посетите Play Console и выберите «Выпуск» > «Целостность приложения» . В разделе «Ответы» отредактируйте и сохраните изменения.

Дополнительная информация об устройстве

Приложения и SDK могут включать дополнительные метки устройств в вердикте целостности устройства. После того как вы согласитесь на получение дополнительных меток, ответ о целостности будет включать несколько меток для одного и того же устройства, если каждый из критериев метки соблюден. Вы можете подготовить свой внутренний сервер к различному поведению в зависимости от диапазона возможных ответов. Например, устройству, которое возвращает три метки ( MEETS_STRONG_INTEGRITY , MEETS_DEVICE_INTEGRITY и MEETS_BASIC_INTEGRITY ), можно доверять больше, чем устройству, которое возвращает только одну метку ( MEETS_BASIC_INTEGRITY ).

Вы также можете подписаться на недавнюю активность устройства . Недавняя активность устройства возвращает уровень от LEVEL_1 (малое количество запросов) до LEVEL_4 (большое количество запросов). Например, устройство, которое возвращает значительно более высокий уровень активности, чем обычно для вашего приложения, может пытаться создать большое количество токенов целостности для распространения на ненадежные устройства.

Вы также можете выбрать атрибуты устройства , в которых будет указана версия Android SDK операционной системы Android, работающей на устройстве. В будущем он может быть расширен другими атрибутами устройства.

Поле ответа Этикетка Описание
Целостность устройства MEETS_BASIC_INTEGRITY Приложение работает на устройстве, которое проходит базовые проверки целостности системы, а для устройств Android 13+ требуется аттестация ключа платформы Android. Устройство может не соответствовать требованиям совместимости Android и не быть одобрено для запуска сервисов Google Play. Например, устройство может работать под управлением неизвестной версии Android, иметь разблокированный загрузчик, непроверенную загрузку или не быть сертифицированным производителем.
MEETS_STRONG_INTEGRITY Приложение работает на устройстве Android с поддержкой сервисов Google Play и имеет надежную гарантию целостности системы, такую ​​как аппаратное подтверждение целостности загрузки, а для устройств Android 13+ требуется наличие обновления безопасности за последний год. Устройство проходит проверку целостности системы и соответствует требованиям совместимости с Android.
Стандартные запросы токена целостности API на этом устройстве за последний час для каждого приложения Запросы токена целостности классического API на этом устройстве за последний час для каждого приложения
Недавняя активность устройства LEVEL_1 (самый низкий) 10 или меньше 5 или меньше
LEVEL_2 Между 11 и 25 Между 6 и 10
LEVEL_3 От 26 до 50 Между 11 и 15
LEVEL_4 (самый высокий) Более 50 Более 15
UNEVALUATED Недавняя активность устройства не оценивалась. Это может произойти потому, что:
  • Устройство не заслуживает доверия.
  • Версия вашего приложения, установленного на устройстве, неизвестна Google Play.
  • На устройстве возникли технические проблемы.
Атрибуты устройства sdkVersion: 19, 20, ..., 35 SDK-версия ОС Android, работающей на устройстве. Возвращаемое число соответствует Build.VERSION_CODES .
Пусто (пустое значение) Версия SDK не оценивается, поскольку было пропущено необходимое требование. В этом случае поле sdkVersion не установлено; таким образом, поле deviceAttributes пусто. Это может произойти потому, что:
  • Устройство не заслуживает доверия.
  • Версия вашего приложения, установленного на устройстве, неизвестна Google Play.
  • На устройстве возникли технические проблемы.

Дополнительные сведения о среде

Приложения могут подписаться на получение дополнительных оценок об окружающей среде. Риск доступа к приложениям позволяет узнать, запущены ли другие приложения, которые могут захватывать экран, отображать наложения или управлять устройством. Вердикт 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 пусто. Это может произойти по нескольким причинам, включая следующие:
  • Устройство не заслуживает доверия.
  • Форм-фактор устройства не является телефоном, планшетом или складным устройством.
  • Устройство не работает под управлением Android 6 (уровень API 23) или выше.
  • Версия вашего приложения, установленного на устройстве, неизвестна Google Play.
  • Версия Google Play Store на устройстве устарела.
  • Только игры : у учетной записи пользователя нет лицензии Play для игры.
  • Использовался стандартный запрос с параметром verdictOptOut .
  • Стандартный запрос использовался с версией библиотеки Play Integrity API, которая еще не поддерживает риск доступа к приложениям для стандартных запросов.
Вердикт 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 по умолчанию управляют шифрованием ответов, которое ваше приложение использует при взаимодействии с Play Integrity API. Хотя мы рекомендуем вам использовать этот вариант по умолчанию, вы также можете управлять ключами шифрования ответов и загружать их, следуя инструкциям ниже.

Разрешите Google управлять шифрованием вашего ответа (по умолчанию и рекомендуется)

Чтобы защитить безопасность вашего приложения, рекомендуется разрешить Google генерировать ключи шифрования ваших ответов и управлять ими. Ваш внутренний сервер обратится к серверу Google Play для расшифровки ответов.

Управлять и загружать ключи шифрования моих ответов

Если вы хотите расшифровать вердикт целостности локально в своей защищенной серверной среде, вы можете управлять ключами шифрования ответов и загружать их. Чтобы управлять ключами шифрования ответов и загружать их, вы должны использовать Play Console, а ваше приложение должно быть доступно в Google Play в дополнение к любым другим каналам распространения. Следуйте инструкциям ниже, чтобы переключиться с ключей шифрования ответов, управляемых Google, на ключи шифрования ответов, управляемые самостоятельно.

Не забывайте не расшифровывать и не проверять полученный токен из клиентского приложения и никогда не предоставлять клиентскому приложению ключи дешифрования.

Прежде чем изменить стратегию управления шифрованием ответов в Play Console, убедитесь, что ваш сервер правильно настроен для расшифровки и проверки токенов целостности на серверах Google Play, чтобы избежать сбоев.

Переключение между ключами шифрования ответов, управляемыми Google, и ключами шифрования ответов, управляемыми самостоятельно.

Если в настоящее время Google управляет шифрованием ваших ответов, и вы хотите самостоятельно управлять ключами шифрования ответов и загружать их, выполните следующие действия:

  1. Войдите в консоль Play .
  2. Выберите приложение, которое использует Play Integrity API.
  3. В разделе «Выпуск» левого меню перейдите к «Целостность приложения» .
  4. Рядом с Play Integrity API нажмите «Настройки» .
  5. В разделе Классические запросы на странице рядом с пунктом Шифрование ответа нажмите Изменить .
  6. В появившемся окне нажмите «Управление» и загрузите ключи шифрования моего ответа .
  7. Следуйте инструкциям, чтобы загрузить открытый ключ.
  8. После того, как в окне появится сообщение об успешной загрузке, нажмите «Сохранить» , и зашифрованные ключи загрузятся автоматически.
  9. Измените логику вашего сервера так, чтобы вы могли расшифровывать и проверять токены целостности локально, в своей собственной защищенной серверной среде, используя ключи шифрования ответов.
  10. (Необязательно) Если вы самостоятельно управляете ключами шифрования ответов, ваше приложение по-прежнему может обращаться к серверу Google Play для расшифровки и проверки ответа.

Если вы самостоятельно управляете ключами шифрования ответов и хотите, чтобы Google управлял шифрованием ответов, выполните следующие действия:

  1. Измените логику своего сервера, чтобы расшифровка и проверка выполнялись исключительно на серверах Google.
  2. Войдите в консоль Play .
  3. Выберите приложение, которое использует Play Integrity API.
  4. В разделе «Выпуск» левого меню перейдите к «Целостность приложения» .
  5. Рядом с Play Integrity API нажмите «Настройки» .
  6. В разделе Классические запросы на странице рядом с пунктом Шифрование ответа нажмите Изменить .
  7. В появившемся окне нажмите «Разрешить Google управлять шифрованием моего ответа (рекомендуется)» .
  8. Нажмите Сохранить изменения .