Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Zacznij korzystać z App Check z App Attest na platformach Apple

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Na tej stronie pokazano, jak włączyć sprawdzanie aplikacji w aplikacji Apple przy użyciu wbudowanego dostawcy certyfikatu aplikacji. Po włączeniu Kontroli aplikacji zapewniasz, że tylko Twoja aplikacja ma dostęp do zasobów Firebase projektu. Zobacz przegląd tej funkcji.

Kontrola aplikacji korzysta z Atestu aplikacji , aby sprawdzić, czy żądania do usług Firebase pochodzą z Twojej autentycznej aplikacji. Kontrola aplikacji obecnie nie używa narzędzia App Attest do analizy ryzyka oszustwa .

Jeśli chcesz korzystać z funkcji App Check z własnym niestandardowym dostawcą, zobacz Implementowanie niestandardowego dostawcy App Check .

1. Skonfiguruj projekt Firebase

  1. Do korzystania z App Attest potrzebny jest Xcode 12.5+.

  2. Dodaj Firebase do swojego projektu Apple, jeśli jeszcze tego nie zrobiłeś.

  3. Zarejestruj swoje aplikacje, aby korzystać z Sprawdzania aplikacji, u dostawcy Atestu aplikacji w sekcji Sprawdzanie aplikacji w konsoli Firebase.

    Zwykle musisz zarejestrować wszystkie aplikacje swojego projektu, ponieważ po włączeniu wymuszania dla produktu Firebase tylko zarejestrowane aplikacje będą miały dostęp do zasobów zaplecza produktu.

  4. Opcjonalnie : w ustawieniach rejestracji aplikacji ustaw niestandardowy czas wygaśnięcia (TTL) dla tokenów sprawdzania aplikacji wydanych przez dostawcę. Możesz ustawić TTL na dowolną wartość z zakresu od 30 minut do 7 dni. Zmieniając tę ​​wartość, pamiętaj o następujących kompromisach:

    • Bezpieczeństwo: Krótsze TTL zapewniają większe bezpieczeństwo, ponieważ zmniejszają okno, w którym przeciek lub przechwycony token może zostać nadużyty przez atakującego.
    • Wydajność: krótsze czasy TTL oznaczają, że Twoja aplikacja będzie częściej przeprowadzać atestację. Ponieważ proces zaświadczania aplikacji zwiększa opóźnienie żądań sieciowych za każdym razem, gdy jest wykonywany, krótki czas TTL może wpłynąć na wydajność aplikacji.
    • Limit i koszt: krótsze czasy oczekiwania i częste ponowna atestacja szybciej zmniejszają Twój limit, a w przypadku usług płatnych potencjalnie kosztują więcej. Zobacz Kontyngenty i limity .

    Domyślny czas TTL wynoszący 1 godzinę jest rozsądny dla większości aplikacji. Zwróć uwagę, że biblioteka App Check odświeża tokeny po około połowie czasu TTL.

2. Dodaj bibliotekę App Check do swojej aplikacji

  1. Dodaj zależność sprawdzania aplikacji do Podfile projektu:

    pod 'FirebaseAppCheck'

    Ewentualnie możesz zamiast tego użyć Swift Package Manager .

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

  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 użyjesz innych pakietów SDK Firebase, musisz zainicjować Sprawdzanie aplikacji.

Najpierw napisz implementację AppCheckProviderFactory . Specyfika Twojej implementacji będzie zależeć od Twojego przypadku użycia.

Na przykład, jeśli masz użytkowników tylko w systemie iOS 14 lub nowszym, możesz po prostu zawsze utworzyć obiekty AppAttestProvider :

Szybki

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych watchOS.

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

Cel C

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych 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 i nowszych oraz wrócić do DeviceCheckProvider we wcześniejszych wersjach:

Szybki

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych 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)
    }
  }
}

Cel C

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych 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 funkcję App Check, aby jej używać:

Szybki

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych watchOS.

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

FirebaseApp.configure()

Cel C

Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych watchOS.

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

[FIRApp configure];

Następne kroki

Po zainstalowaniu biblioteki Sprawdzanie aplikacji w Twojej 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 wysyłanym do Firebase, ale produkty Firebase nie będą wymagać ważności tokenów, dopóki nie włączysz wymuszania w sekcji Sprawdzanie aplikacji w konsoli Firebase.

Monitoruj metryki i włącz egzekwowanie

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

Aby pomóc w podjęciu tej decyzji, możesz przyjrzeć się wskaźnikom Kontroli aplikacji dla usług, z których korzystasz:

Włącz wymuszanie sprawdzania aplikacji

Gdy zrozumiesz, w jaki sposób Kontrola aplikacji wpłynie na użytkowników i będziesz gotowy do kontynuowania, możesz włączyć wymuszanie kontroli aplikacji:

Użyj sprawdzania aplikacji w środowiskach debugowania

Jeśli po zarejestrowaniu aplikacji do sprawdzania aplikacji chcesz uruchomić aplikację w środowisku, którego Sprawdzanie aplikacji normalnie nie klasyfikuje jako prawidłowe, takim jak symulator podczas tworzenia lub ze środowiska ciągłej integracji (CI), możesz utwórz kompilację debugowania swojej aplikacji, która używa dostawcy debugowania sprawdzania aplikacji zamiast rzeczywistego dostawcy poświadczania.

Zobacz Używanie sprawdzania aplikacji z dostawcą debugowania na platformach Apple .