Начните использовать проверку приложений с помощью 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. Включите API Play Integrity:

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

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

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

  3. Зарегистрируйте свои приложения для использования App Check у поставщика Play Integrity в разделе App Check консоли Firebase . Вам потребуется предоставить отпечаток SHA-256 сертификата подписи вашего приложения.

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

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

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

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

Настройте дополнительные параметры (необязательно)

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

Канал распространения вашего приложения PLAY_RECOGNIZED ЛИЦЕНЗИРОВАНО Минимально приемлемый уровень целостности устройства
Эксклюзивно в Google Play Необходимый Необходимый Не проверяйте явно уровень целостности устройства
Эксклюзивно за пределами Google Play Не требуется Не требуется Целостность устройства
В Google Play и за его пределами Необходимый Не требуется Не проверяйте явно уровень целостности устройства

Подробности

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

  • По умолчанию для 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:34.2.0"))

    // 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:19.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 обычно не классифицирует как допустимую, например, в эмуляторе во время разработки или в среде непрерывной интеграции (CI), вы можете создать отладочную сборку своего приложения, которая использует поставщик отладки App Check вместо настоящего поставщика аттестации.

См. раздел Использование App Check с поставщиком отладки на Android .