Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Начните использовать App Check с Play Integrity на Android

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

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

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

1. Настройте свой проект Firebase

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

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

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

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

    3. На странице Integrity API нажмите Связать проект , затем выберите свой проект Firebase из списка проектов Google Cloud.

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

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

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

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

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

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

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

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

Java

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

    // Add the dependency for the App Check library
    // 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 dependency for the App Check library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity:16.0.2'
}

Kotlin+KTX

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

    // Add the dependency for the App Check library
    // 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 dependency for the App Check library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity:16.0.2'
}

3. Инициализировать проверку приложений

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

Java

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

Kotlin+KTX

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

Следующие шаги

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

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

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

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

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

Включить принудительную проверку приложений

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

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

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

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