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

Na tej stronie dowiesz się, jak włączyć Sprawdzanie aplikacji w aplikacji Apple przy użyciu wbudowanego dostawcy App Attest. Włączenie Sprawdzania aplikacji daje pewność, że tylko Twoja aplikacja ma dostęp do zasobów Firebase projektu. Zapoznaj się z omówieniem tej funkcji.

Sprawdzanie aplikacji korzysta z narzędzia App Attest, aby potwierdzić, że żądania wysyłane do usług Firebase pochodzą z autentycznej aplikacji. Sprawdzanie aplikacji nie używa obecnie App Attest do analizy ryzyka oszustwa.

Jeśli chcesz używać Sprawdzania aplikacji z własnym dostawcą niestandardowym, przeczytaj artykuł Implementowanie niestandardowego dostawcy Sprawdzania aplikacji.

1. Skonfiguruj projekt Firebase

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

  2. Dodaj Firebase do swojego projektu Apple, jeśli jeszcze go nie masz.

  3. Zarejestruj aplikacje na potrzeby Sprawdzania aplikacji u dostawcy App Attest w sekcji Sprawdzanie aplikacji w konsoli Firebase.

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

  4. Opcjonalnie: w ustawieniach rejestracji aplikacji ustaw niestandardowy czas życia (TTL) dla tokenów Sprawdzania aplikacji wystawionych przez dostawcę. TTL możesz ustawić 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 to większe bezpieczeństwo, ponieważ zmniejszają okno, w którym ujawniony lub przechwycony token może zostać wykorzystany przez atakującego.
    • Wydajność: krótsze wartości TTL oznaczają, że aplikacja będzie wykonywać atest częściej. Proces poświadczania aplikacji zwiększa opóźnienie żądań sieciowych za każdym razem, dlatego krótki czas TTL może wpływać na wydajność aplikacji.
    • Limit i koszt: krótsze wartości TTL i częste ponowne atesty szybciej wyczerpują limit, a w przypadku usług płatnych mogą kosztować więcej. Zobacz Limity.

    Domyślny czas TTL wynoszący 1 godzinę jest rozsądny w przypadku większości aplikacji. Pamiętaj, że biblioteka Sprawdzania aplikacji odświeża tokeny z około połowę czasu TTL.

2. Dodawanie biblioteki Sprawdzania aplikacji do aplikacji

  1. Dodaj zależność Sprawdzania aplikacji do zasobu 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 swojej aplikacji funkcję App Attest.

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

3. Zainicjuj Sprawdzanie aplikacji

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

Najpierw napisz implementację algorytmu AppCheckProviderFactory. Konkretne warunki implementacji będą zależeć od konkretnego przypadku użycia.

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

Swift

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

@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourSimpleAppCheckProviderFactory

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

@end

Możesz też utworzyć obiekty AppAttestProvider w systemie iOS 14 lub nowszym i zastępować go obiektem DeviceCheckProvider we wcześniejszych wersjach:

Swift

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

Gdy zaimplementujesz klasę AppCheckProviderFactory, skonfiguruj Sprawdzanie aplikacji do korzystania z niej:

Swift

Uwaga: ta usługa Firebase nie jest dostępna na celach w zegarku watchOS.

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

FirebaseApp.configure()

Objective-C

Uwaga: ta usługa Firebase nie jest dostępna na celach w zegarku watchOS.

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

[FIRApp configure];

Dalsze kroki

Gdy zainstalujesz w aplikacji bibliotekę Sprawdzanie aplikacji, zacznij rozpowszechniać zaktualizowaną aplikację wśród użytkowników.

Zaktualizowana aplikacja kliencka zacznie wysyłać tokeny Sprawdzania aplikacji wraz z każdym żądaniem do Firebase, ale usługi Firebase nie będą wymagały ważności tokenów, dopóki nie włączysz wymuszania w sekcji Sprawdzanie aplikacji w konsoli Firebase.

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

Zanim jednak włączysz egzekwowanie, upewnij się, że nie zakłóci to działania istniejących prawidłowych użytkowników. Jeśli natomiast zauważysz podejrzane wykorzystanie zasobów aplikacji, możesz szybciej włączyć egzekwowanie.

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

Włącz wymuszanie Sprawdzania aplikacji

Gdy zrozumiesz, jak Sprawdzanie aplikacji wpłynie na Twoich użytkowników, możesz włączyć wymuszanie Sprawdzania aplikacji:

Używanie Sprawdzania aplikacji w środowiskach debugowania

Jeśli po zarejestrowaniu aplikacji na potrzeby Sprawdzania aplikacji chcesz uruchamiać ją w środowisku, które zwykle nie zostałoby sklasyfikowane jako prawidłowe, np. w symulatorze podczas programowania, lub w środowisku ciągłej integracji (CI), możesz utworzyć kompilację do debugowania aplikacji, która korzysta z dostawcy debugowania Sprawdzania aplikacji zamiast prawdziwego dostawcy atestów.

Zapoznaj się z artykułem na temat używania Sprawdzania aplikacji z dostawcą debugowania na platformach Apple.