Как начать использовать Проверку приложений с Play Integrity на Android

На этой странице рассказывается, как включить App Check в приложении для Android с помощью встроенного поставщика Play Integrity. Включив App Check, вы обеспечите доступ к внутренним ресурсам проекта только для своего приложения. Ознакомьтесь с общими сведениями об этой функции.

Поставщик Play Integrity поддерживает приложения Android, опубликованные в Google Play, за пределами Google Play или и там, и там. Если вам нужны функции Play Integrity, не реализованные в App Check, или вы хотите использовать App Check с собственным поставщиком, прочитайте статью Как реализовать собственный поставщик App Check.

1. Как настроить проект Firebase

  1. Если вы ещё этого не сделали, добавьте Firebase в проект для Android.

  2. Включите Play Integrity API:

    1. В Google Play Console выберите приложение или добавьте его, если вы ещё этого не сделали.

    2. В разделе Выпуск нажмите Целостность приложения.

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

  3. В консоли Firebase выберите Security (Безопасность) > App Check (Проверка приложений).

  4. На вкладке Приложения зарегистрируйте приложения, чтобы использовать App Check с поставщиком Play Integrity. Вам нужно будет предоставить цифровой отпечаток SHA-256 сертификата подписи приложения.

    Обычно требуется зарегистрировать все приложения проекта, поскольку после включения принудительного применения для продукта Firebase доступ к его внутренним ресурсам смогут получить только зарегистрированные приложения.

  5. Необязательно. Установите время жизни токена (TTL).

    В настройках регистрации приложения задайте пользовательское время жизни (TTL) для токенов App Check, выпущенных поставщиком. Вы можете задать любое значение TTL в диапазоне от 30 минут до 7 дней. При изменении этого значения учитывайте следующее:

    • Безопасность. Более короткие TTL обеспечивают более надежную защиту, поскольку они сокращают окно, в котором злоумышленник может использовать утекший или перехваченный токен.
    • Производительность. Чем меньше TTL, тем чаще приложение будет выполнять проверку. Поскольку процесс проверки приложения добавляет задержку к сетевым запросам при каждом выполнении, короткий TTL может повлиять на производительность вашего приложения.
    • Квота и стоимость. Короткие TTL и частая повторная аттестация быстрее расходуют квоту и могут повысить стоимость платных сервисов. Подробнее о квотах и лимитах…

    Значение TTL по умолчанию (1 час) подходит для большинства приложений. Обратите внимание, что библиотека App Check обновляет токены примерно через половину времени TTL.

Как задать расширенные настройки (необязательно)

App Check предлагает ряд настроек для расширенных сценариев использования, включая распространение приложения за пределами Google Play. Для каждого зарегистрированного приложения Android эти настройки можно задать на вкладке App Check > Приложения в консоли Firebase. Рекомендуем задать эти настройки в соответствии с таблицей ниже при регистрации приложения.

Канал распространения приложения PLAY_RECOGNIZED LICENSED Минимальный допустимый уровень целостности устройства
Только в Google Play Обязательно Обязательно Не проверять уровень целостности устройства
Только за пределами Google Play Необязательно Необязательно Целостность устройства
В Google Play и за его пределами Обязательно Необязательно Не проверять уровень целостности устройства

Сведения

Каждая расширенная настройка соответствует пометке в оценке Play Integrity. Дополнительную информацию можно найти в документации Play Integrity API.

  • По умолчанию для App Check требуется ярлык распознавания приложений PLAY_RECOGNIZED. Приложения, не опубликованные в Google Play, не могут получить этот ярлык.
  • По умолчанию для App Check не требуется ярлык лицензирования приложений LICENSED. Этот ярлык могут получить только пользователи, которые установили или обновили ваше приложение напрямую из Google Play.
  • По умолчанию App Check не проверяет оценку целостности данных на устройстве. App Check поддерживает явную проверку следующих трех уровней целостности устройства, перечисленных в порядке возрастания целостности устройства.

    • Базовая целостность. App Check требует ярлык распознавания устройства MEETS_BASIC_INTEGRITY. Чтобы получить этот необязательный ярлык, сначала нужно включить его в Google Play Console.

    • Целостность устройства. App Check требует ярлык распознавания устройства MEETS_DEVICE_INTEGRITY. Все приложения автоматически получают право на этот ярлык.

    • Надежная защита целостности. App Check требует ярлык распознавания устройства MEETS_STRONG_INTEGRITY. Чтобы получить этот необязательный ярлык, сначала нужно включить его в Google Play Console.

2. Добавьте библиотеку App Check в приложение

В файле Gradle на уровне модуля (приложения) (обычно это <project>/<app-module>/build.gradle.kts или <project>/<app-module>/build.gradle) добавьте зависимость для библиотеки App Check для Android. Для управления версиями библиотек рекомендуем использовать Firebase Android BoM.

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:35.0.2"))

    // Add the dependencies for the App Check libraries
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck-playintegrity")
}

Благодаря Firebase Android BoM в вашем приложении всегда будут использоваться совместимые версии библиотек Firebase Android.

(Альтернативный вариант) Добавьте зависимости библиотеки Firebase без использования BoM.

Если вы не хотите использовать Firebase BoM, то должны указать версию каждой библиотеки Firebase в строке зависимости.

Если вы используете в приложении несколько библиотек Firebase, настоятельно рекомендуем управлять их версиями с помощью BoM. Это обеспечит совместимость всех версий.

dependencies {
    // Add the dependencies for the App Check libraries
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation("com.google.firebase:firebase-appcheck-playintegrity:20.0.0")
}

3. Инициализация App Check

Добавьте в приложение следующий код инициализации, чтобы он выполнялся до использования других Firebase SDK:

Kotlin

Firebase.initialize(context = this)
Firebase.appCheck.installAppCheckProviderFactory(
    PlayIntegrityAppCheckProviderFactory.getInstance(),
)

Java

FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
        PlayIntegrityAppCheckProviderFactory.getInstance());

Дальнейшие действия

После установки библиотеки App Check в приложение начните распространять его обновленную версию среди пользователей.

Обновленное клиентское приложение начнет отправлять токены App Check с каждым запросом к Firebase, но продукты Firebase не будут требовать действительных токенов, пока вы не включите принудительное применение в разделе App Check консоли Firebase.

Отслеживайте показатели и включите принудительное применение

Однако прежде чем включить принудительное применение, убедитесь, что это не помешает вашим существующим добросовестным пользователям. С другой стороны, если вы видите подозрительное использование ресурсов приложения, то можете включить принудительное применение раньше.

Чтобы принять решение, вы можете посмотреть показатели App Check для используемых вами сервисов:

Включить меры App Check

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

Используйте App Check в средах отладки

Если после регистрации приложения в App Check вы хотите запустить его в среде, которую App Check обычно не классифицирует как действительную, например в эмуляторе во время разработки или в среде непрерывной интеграции, вы можете создать отладочную сборку приложения, которая использует отладочный поставщик App Check вместо реального поставщика аттестации.

Подробнее о том, как использовать App Check с отладочным поставщиком на Android…