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

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

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

Jeśli chcesz używać App Check z własnym dostawcą niestandardowym, przeczytaj artykuł 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. Jeśli jeszcze tego nie zrobisz, dodaj Firebase do projektu Apple.

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

  4. Na karcie Aplikacje zarejestruj aplikacje, aby korzystać z App Check z dostawcą App Attest.

    Zwykle musisz zarejestrować wszystkie aplikacje w projekcie, ponieważ po włączeniu egzekwowania 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) tokenów wydawanych przez dostawcę.App Check Możesz ustawić TTL na dowolną wartość od 30 minut do 7 dni. Podczas zmiany tej wartości pamiętaj o tych kompromisach:

    • Bezpieczeństwo: krótsze TTL zapewniają większe bezpieczeństwo, ponieważ zmniejszają okno, w którym wyciekły lub przechwycony token może zostać wykorzystany przez atakującego.
    • Wydajność: krótsze TTL oznaczają, że Twoja aplikacja będzie częściej przeprowadzać atestację. Ponieważ proces atestacji aplikacji dodaje opóźnienie do żądań sieciowych za każdym razem, gdy jest wykonywany, krótki TTL może wpłynąć na wydajność aplikacji.
    • Limit i koszt: krótsze TTL i częste ponowne atestacje szybciej wyczerpują limit, a w przypadku usług płatnych mogą kosztować więcej. Zobacz Limity.

    Domyślny TTL wynoszący 1 godzinę jest odpowiedni dla większości aplikacji. Pamiętaj, że biblioteka App Check 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 Apple platforms (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 używać 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 po prostu zawsze tworzyć obiekty AppAttestProvider:

Swift

Uwaga: ten produkt Firebase nie jest dostępny w przypadku celów 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 w przypadku celów 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 oraz wracać do DeviceCheckProvider w starszych wersjach:

Swift

Uwaga: ten produkt Firebase nie jest dostępny w przypadku celów 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 w przypadku celów 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ło:

Swift

Uwaga: ten produkt Firebase nie jest dostępny w przypadku celów watchOS.

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

FirebaseApp.configure()

Objective-C

Uwaga: ten produkt Firebase nie jest dostępny w przypadku celów watchOS.

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

[FIRApp configure];

Dalsze kroki

Gdy biblioteka App Check zostanie zainstalowana w Twojej aplikacji, zacznij rozpowszechniać zaktualizowaną aplikację wśród użytkowników.

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

Monitorowanie danych i włączanie egzekwowania

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

Aby ułatwić podjęcie decyzji, możesz sprawdzić dane App Check dotyczące używanych usług:

Włączanie egzekwowania App Check

Gdy zrozumiesz, jak App Check wpłynie na Twoich 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ć swoją aplikację w środowisku, które App Check zwykle nie klasyfikuje jako prawidłowe, np. w symulatorze podczas programowania lub w trybie ciągłej integracji (CI), możesz utworzyć kompilację do debugowania aplikacji, która zamiast prawdziwego dostawcy atestacji używa dostawcy debugowania App Check.

Zobacz Używanie App Check z dostawcą debugowania na platformach Apple.