Начните использовать проверку приложений с помощью Play Integrity на Android

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

В настоящее время встроенный поставщик Play Integrity поддерживает только приложения Android, распространяемые через Google Play. Чтобы использовать функции Play Integrity вне Google Play или использовать 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.

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.0.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 .