На этой странице показано, как включить App Check в приложении Apple с помощью встроенного поставщика App Attest. Когда вы включаете App Check , вы помогаете гарантировать, что только ваше приложение может получить доступ к ресурсам Firebase вашего проекта. См. Обзор этой функции.
App Check использует App Attest для проверки того, что запросы к службам Firebase исходят от вашего подлинного приложения. App Check в настоящее время не использует App Attest для анализа риска мошенничества .
Если вы хотите использовать App Check с собственным поставщиком, см. раздел Внедрение собственного поставщика App Check .
1. Настройте свой проект Firebase
Для использования App Attest вам понадобится Xcode 12.5+.
Добавьте Firebase в свой проект Apple, если вы еще этого не сделали.
Зарегистрируйте свои приложения для использования App Check у поставщика App Attest в разделе App Check консоли Firebase .
Обычно вам необходимо зарегистрировать все приложения вашего проекта, поскольку после включения принудительного применения для продукта Firebase только зарегистрированные приложения смогут получить доступ к внутренним ресурсам продукта.
Необязательно : в настройках регистрации приложения установите пользовательское время жизни (TTL) для токенов App Check выпущенных поставщиком. Вы можете установить TTL на любое значение от 30 минут до 7 дней. При изменении этого значения помните о следующих компромиссах:
- Безопасность: Более короткие значения TTL обеспечивают более высокую безопасность, поскольку сокращают период времени, в течение которого злоумышленник может злоупотребить утечкой или перехватом токена.
- Производительность: Более короткие TTL означают, что ваше приложение будет выполнять аттестацию чаще. Поскольку процесс аттестации приложения добавляет задержку к сетевым запросам каждый раз, когда он выполняется, короткий TTL может повлиять на производительность вашего приложения.
- Квота и стоимость: Более короткие TTL и частая повторная аттестация быстрее исчерпывают вашу квоту, а для платных услуг, возможно, стоят дороже. См. Квоты и ограничения .
Значение TTL по умолчанию в 1 час является разумным для большинства приложений. Обратите внимание, что библиотека App Check обновляет токены примерно через половину продолжительности TTL.
2. Добавьте библиотеку App Check в свое приложение.
Добавьте зависимость для App Check в
Podfile
вашего проекта:pod 'FirebaseAppCheck'
Или, в качестве альтернативы, вы можете использовать Swift Package Manager .
Убедитесь, что вы также используете последнюю версию всех других SDK Firebase, от которых вы зависите.
Запустите
pod install
и откройте созданный файл.xcworkspace
.В Xcode добавьте возможность App Attest в свое приложение.
В файле
.entitlements
вашего проекта установите среду App Attest наproduction
.
3. Инициализация App Check
Перед использованием любых других Firebase SDK вам необходимо инициализировать App Check .
Сначала напишите реализацию AppCheckProviderFactory
. Конкретные особенности вашей реализации будут зависеть от вашего варианта использования.
Например, если у вас есть только пользователи iOS 14 и более поздних версий, вы всегда можете просто создать объекты AppAttestProvider
:
Быстрый
Примечание: этот продукт Firebase недоступен на платформах watchOS.
class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { return AppAttestProvider(app: app) } }
Objective-C
Примечание: этот продукт Firebase недоступен на платформах watchOS.
@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourSimpleAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app { return [[FIRAppAttestProvider alloc] initWithApp:app]; } @end
Или вы можете создать объекты AppAttestProvider
в iOS 14 и более поздних версиях и вернуться к DeviceCheckProvider
в более ранних версиях:
Быстрый
Примечание: этот продукт Firebase недоступен на платформах watchOS.
class YourAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { if #available(iOS 14.0, *) { return AppAttestProvider(app: app) } else { return DeviceCheckProvider(app: app) } } }
Objective-C
Примечание: этот продукт Firebase недоступен на платформах watchOS.
@interface YourAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app { if (@available(iOS 14.0, *)) { return [[FIRAppAttestProvider alloc] initWithApp:app]; } else { return [[FIRDeviceCheckProvider alloc] initWithApp:app]; } } @end
После реализации класса AppCheckProviderFactory
настройте App Check для его использования:
Быстрый
Примечание: этот продукт Firebase недоступен на платформах watchOS.
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Objective-C
Примечание: этот продукт Firebase недоступен на платформах watchOS.
YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; [FIRApp configure];
Следующие шаги
После установки библиотеки App Check в ваше приложение начните распространять обновленное приложение среди пользователей.
Обновленное клиентское приложение начнет отправлять токены App Check вместе с каждым запросом, который оно делает в Firebase, но продукты Firebase не будут требовать, чтобы токены были действительными, пока вы не включите принудительное применение в разделе App Check в консоли Firebase.
Мониторинг показателей и обеспечение соблюдения
Однако перед включением принудительного применения следует убедиться, что это не помешает вашим существующим законным пользователям. С другой стороны, если вы видите подозрительное использование ресурсов вашего приложения, вы можете включить принудительное применение раньше.
Чтобы принять решение, вы можете изучить показатели App Check для используемых вами сервисов:
- Отслеживайте метрики запросов App Check для Data Connect , Firebase AI Logic , Realtime Database , Cloud Firestore , Cloud Storage , Authentication , Google Identity для iOS, Maps JavaScript API и Places API (новое).
- Отслеживайте метрики запросов App Check для Cloud Functions .
Включить принудительное выполнение App Check
Когда вы поймете, как App Check повлияет на ваших пользователей, и будете готовы продолжить, вы можете включить принудительное выполнение App Check :
- Включите принудительное выполнение App Check для Data Connect , Firebase AI Logic , Realtime Database , Cloud Firestore , Cloud Storage , Authentication , Google Identity для iOS, Maps JavaScript API и Places API (новое).
- Включите принудительное выполнение App Check для Cloud Functions .
Используйте App Check в отладочных средах
Если после регистрации приложения для App Check вы хотите запустить его в среде, которую App Check обычно не классифицирует как допустимую, например, в симуляторе во время разработки или в среде непрерывной интеграции (CI), вы можете создать отладочную сборку своего приложения, которая использует поставщик отладки App Check вместо настоящего поставщика подтверждения подлинности.
См. раздел Использование App Check с поставщиком отладки на платформах Apple .