Начните использовать App Check с App Attest на платформах Apple.

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

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

Если вы хотите использовать App Check с собственным поставщиком, см. раздел Реализация собственного поставщика App Check .

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

  1. Для использования App Attest вам понадобится Xcode 12.5+.

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

  3. Зарегистрируйте свои приложения для использования App Check у поставщика App Attest в разделе App Check консоли Firebase .

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

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

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

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

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

  1. Добавьте зависимость для App Check в Podfile вашего проекта:

    pod 'FirebaseAppCheck'

    Или, в качестве альтернативы, вы можете использовать Swift Package Manager .

    Убедитесь, что вы также используете последнюю версию всех остальных Firebase SDK, от которых вы зависите.

  2. Запустите pod install и откройте созданный файл .xcworkspace .

  3. В Xcode добавьте возможность App Attest в свое приложение.

  4. В файле .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

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

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

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

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