Pierwsze kroki ze Sprawdzaniem aplikacji za pomocą App Attest na platformach Apple

Na tej stronie znajdziesz informacje o tym, jak włączyć App Check w aplikacji Apple, korzystając z wbudowanego dostawcy App Attest. Włączenie usługi App Check daje pewność, że tylko Twoja aplikacja będzie miała dostęp do zasobów Firebase projektu. Zapoznaj się z omówieniem tej funkcji.

App Check używa App Attest, aby sprawdzić, czy żądania wysyłane do usług Firebase pochodzą z autentycznej aplikacji. App Check obecnie nie używa App Attest do analizy ryzyka oszustwa.

Jeśli chcesz używać App Check z własnym dostawcą niestandardowym, przeczytaj sekcję Implementowanie niestandardowego dostawcy App Check.

1. Konfigurowanie projektu Firebase

  1. Aby korzystać z App Attest, musisz mieć Xcode 12.5 lub nowszy.

  2. Dodaj Firebase do projektu Apple, jeśli jeszcze tego nie zrobiono.

  3. Zarejestruj aplikacje do używania App Check z dostawcą App Attest w sekcji App Check w konsoli Firebase.

    Zwykle trzeba zarejestrować wszystkie aplikacje w projekcie, ponieważ po włączeniu egzekwowania zasad dotyczących usługi Firebase tylko zarejestrowane aplikacje będą mogły uzyskiwać dostęp do zasobów backendu tej usługi.

  4. Opcjonalnie: w ustawieniach rejestracji aplikacji ustaw niestandardowy czas życia danych (TTL) dla tokenów App Check wydanych przez dostawcę. TTL możesz ustawić na dowolną wartość z zakresu od 30 minut do 7 dni. Podczas zmiany tej wartości należy wziąć pod uwagę te kompromisy:

    • Bezpieczeństwo: krótsze czasy TTL zapewniają większą ochronę, ponieważ zmniejszają czas, w którym atakujący może wykorzystać wyciek lub przechwycenie tokena.
    • Wydajność: krótsze czasy TTL oznaczają, że aplikacja będzie częściej przeprowadzać weryfikację. Ponieważ proces uwierzytelniania aplikacji zwiększa opóźnienie żądań sieciowych przy każdym jego wykonaniu, krótki czas trwania TTL może mieć wpływ na działanie aplikacji.
    • Limit i koszt: krótsze okresy ważności i częste ponowne uwierzytelnianie powodują szybsze wyczerpywanie limitu, a w przypadku płatnych usług mogą też zwiększać koszty. Zobacz Limity i kwoty.

    Domyślna wartość TTL, czyli 1 godzina, jest odpowiednia w przypadku większości aplikacji. Pamiętaj, że biblioteka App Check odświeża tokeny co około połowę czasu trwania wartości TTL.

2. Dodawanie biblioteki App Check do aplikacji

  1. Dodaj zależność App Check do Podfile projektu:

    pod 'FirebaseAppCheck'

    Możesz też użyć Swift Package Manager.

    Upewnij się też, że używasz najnowszej wersji innych pakietów SDK Firebase, których używasz.

  2. Uruchom pod install i otwórz utworzony plik .xcworkspace.

  3. W Xcode dodaj do aplikacji funkcję App Attest.

  4. W pliku .entitlements projektu ustaw środowisko App Attest na production.

3. Inicjowanie App Check

Zanim zaczniesz używać innych pakietów SDK Firebase, musisz zainicjować pakiet App Check.

Najpierw zaimplementuj funkcję AppCheckProviderFactory. Szczegóły implementacji zależą od przypadku użycia.

Jeśli na przykład masz tylko użytkowników korzystających z iOS 14 lub nowszego, możesz zawsze tworzyć obiekty AppAttestProvider:

Swift

Uwaga: ta usługa Firebase nie jest dostępna na platformie watchOS.

class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    return AppAttestProvider(app: app)
  }
}

Objective-C

Uwaga: ta usługa Firebase nie jest dostępna na platformie watchOS.

@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourSimpleAppCheckProviderFactory

- (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app {
  return [[FIRAppAttestProvider alloc] initWithApp:app];
}

@end

Możesz też tworzyć obiekty AppAttestProvider w iOS 14 i nowszych wersjach, a w starszych wersjach DeviceCheckProvider:

Swift

Uwaga: ta usługa Firebase nie jest dostępna na platformie 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

Uwaga: ta usługa Firebase nie jest dostępna na celach w zegarku 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

Po zaimplementowaniu klasy AppCheckProviderFactory skonfiguruj klasę App Check, aby z niej korzystać:

Swift

Uwaga: ta usługa Firebase nie jest dostępna na platformie watchOS.

let providerFactory = YourAppCheckProviderFactory()
AppCheck.setAppCheckProviderFactory(providerFactory)

FirebaseApp.configure()

Objective-C

Uwaga: ta usługa Firebase nie jest dostępna na platformie watchOS.

YourAppCheckProviderFactory *providerFactory =
        [[YourAppCheckProviderFactory alloc] init];
[FIRAppCheck setAppCheckProviderFactory:providerFactory];

[FIRApp configure];

Dalsze kroki

Po zainstalowaniu biblioteki App Check w aplikacji rozpocznij dystrybucję zaktualizowanej aplikacji do użytkowników.

Zaktualizowana aplikacja kliencka zacznie wysyłać tokeny App Check wraz z każdą prośbą wysyłaną do Firebase, ale usługi Firebase nie będą wymagać, aby tokeny były prawidłowe, dopóki nie włączysz wymuszania w sekcji App Check w konsoli Firebase.

Monitorowanie wskaźników i włączanie wymuszania

Zanim jednak włączysz egzekwowanie zasad, upewnij się, że nie zakłóci to działania dotychczasowych prawidłowych użytkowników. Jeśli jednak zauważysz podejrzane korzystanie z zasobów aplikacji, możesz wcześniej włączyć egzekwowanie.

Aby ułatwić sobie podjęcie decyzji, możesz przejrzeć wskaźniki App Check dotyczące używanych przez Ciebie usług:

Włącz egzekwowanie zasady App Check

Gdy zrozumiesz, jak App Check wpłynie na Twoich użytkowników, i będziesz gotowy do dalszych działań, możesz włączyć egzekwowanie App Check:

Używaj narzędzia App Check w środowiskach debugowania

Jeśli po zarejestrowaniu aplikacji w usłudze App Check chcesz uruchomić ją w środowisku, które App Check normalnie nie uzna za prawidłowe, np. w symulatorze podczas tworzenia lub w środowisku ciągłej integracji (CI), możesz utworzyć wersję debugową aplikacji, która używa dostawcy debugowania App Check zamiast prawdziwego dostawcy uwierzytelniania.

Zobacz Korzystanie z App Check z dostawcą usług debugowania na platformach Apple.