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

Na tej stronie dowiesz się, jak włączyć App Check w aplikacji na urządzenia Apple przy użyciu wbudowanego dostawcy App Attest. Gdy włączysz App Check, będziesz mieć pewność, że tylko Twoja aplikacja będzie mieć dostęp do zasobów Firebase w projekcie. Zobacz omówienie tej funkcji.

App Check korzysta z App Attest, aby sprawdzać, czy żądania do usług Firebase pochodzą z Twojej autentycznej aplikacji. App Check obecnie nie używa App Attest do analizowania ryzyka oszustwa.

Jeśli chcesz używać App Check z własnym dostawcą niestandardowym, zapoznaj się z artykułem Implementowanie niestandardowego dostawcy App Check.

1. Konfigurowanie projektu w Firebase

  1. Aby korzystać z App Attest, musisz mieć Xcode w wersji 12.5 lub nowszej.

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

  3. W konsoli Firebase otwórz Zabezpieczenia > Sprawdzanie aplikacji.

  4. Na karcie Aplikacje zarejestruj aplikacje, które mają korzystać z usługi App Check u dostawcy App Attest.

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

  5. Opcjonalnie: w ustawieniach rejestracji aplikacji ustaw niestandardowy czas życia danych (TTL) dla tokenów App Check wydawanych przez dostawcę. Możesz ustawić czas życia na dowolną wartość z zakresu od 30 minut do 7 dni. Zmieniając tę wartość, pamiętaj o tych kompromisach:

    • Bezpieczeństwo: krótsze wartości TTL zapewniają większe bezpieczeństwo, ponieważ skracają okres, w którym wyciekły lub przechwycony token może zostać wykorzystany przez atakującego.
    • Wydajność: krótsze wartości TTL oznaczają, że aplikacja będzie częściej przeprowadzać atestowanie. Ponieważ proces atestowania aplikacji za każdym razem, gdy jest przeprowadzany, zwiększa opóźnienie w przypadku żądań sieciowych, krótki czas TTL może wpływać na wydajność aplikacji.
    • Limit i koszt: krótsze wartości TTL i częste ponowne potwierdzanie wyczerpują limit szybciej, a w przypadku usług płatnych mogą generować wyższe koszty. Zobacz Limity przydziału i limity systemu.

    Domyślna wartość TTL wynosząca 1 godzinę jest odpowiednia w przypadku większości aplikacji. Pamiętaj, że App Check biblioteka odświeża tokeny mniej więcej w połowie czasu TTL.

2. Dodawanie biblioteki App Check do aplikacji

  1. Do instalacji zależności Firebase i do zarządzania nimi możesz używać menedżera pakietów Swift.

    Po otwarciu projektu aplikacji wybierz w Xcode opcję File > Add Packages (Plik > Dodaj pakiety), dodaj repozytorium pakietu SDK Firebase na platformy Apple (https://github.com/firebase/firebase-ios-sdk) i wybierz bibliotekę FirebaseAppCheck.

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

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

3. Inicjowanie App Check

Zanim zaczniesz korzystać z innych pakietów SDK Firebase, musisz zainicjować App Check.

Najpierw napisz implementację AppCheckProviderFactory. Szczegóły implementacji zależą od konkretnego 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: ten produkt Firebase nie jest dostępny na urządzeniach z watchOS.

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

Objective-C

Uwaga: ten produkt Firebase nie jest dostępny na urządzeniach z 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 systemie iOS 14 i nowszym, a w starszych wersjach używać DeviceCheckProvider:

Swift

Uwaga: ten produkt Firebase nie jest dostępny na urządzeniach z 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: ten produkt Firebase nie jest dostępny na urządzeniach z 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 App Check tak, aby z niej korzystać:

Swift

Uwaga: ten produkt Firebase nie jest dostępny na urządzeniach z watchOS.

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

FirebaseApp.configure()

Objective-C

Uwaga: ten produkt Firebase nie jest dostępny na urządzeniach z watchOS.

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

[FIRApp configure];

Dalsze kroki

Po zainstalowaniu biblioteki App Check w aplikacji zacznij rozpowszechniać zaktualizowaną aplikację wśród użytkowników.

Zaktualizowana aplikacja kliencka zacznie wysyłać tokeny App Check wraz z każdym żądaniem wysyłanym do Firebase, ale usługi Firebase nie będą wymagać, aby tokeny były ważne, dopóki nie włączysz egzekwowania w sekcji App Check konsoli Firebase.

Monitorowanie danych i włączanie egzekwowania

Zanim jednak włączysz egzekwowanie, upewnij się, że nie zakłóci to działania obecnych, legalnych użytkowników. Z drugiej strony, jeśli zauważysz podejrzane wykorzystanie zasobów aplikacji, możesz wcześniej włączyć egzekwowanie.

Aby podjąć decyzję, możesz sprawdzić dane App Check dotyczące usług, z których korzystasz:

Włączanie egzekwowania App Check

Gdy zrozumiesz, jak App Check wpłynie na użytkowników, i będziesz gotowy(-a) do kontynuowania, możesz włączyć egzekwowanie App Check:

Używanie App Check w środowiskach debugowania

Jeśli po zarejestrowaniu aplikacji w App Check chcesz uruchomić ją w środowisku, które App Check zwykle nie klasyfikuje jako prawidłowe, np. w symulatorze podczas programowania lub w środowisku ciągłej integracji (CI), możesz utworzyć wersję debugowania aplikacji, która używa dostawcy debugowania App Check zamiast prawdziwego dostawcy atestów.

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