Włącz sprawdzanie aplikacji za pomocą DeviceCheck na iOS

Ta strona pokazuje, jak włączyć App Check w aplikacji na iOS, korzystając z wbudowanego dostawcy DeviceCheck. Po włączeniu Kontroli aplikacji zapewniasz, że tylko Twoja aplikacja ma dostęp do zasobów Firebase projektu. Zobaczyć przegląd tej funkcji.

Jeśli chcesz korzystać z aplikacji Check własnego niestandardowego dostawcy, zobacz Wdrażanie niestandardowych aplikacji Check dostawcę .

1. Skonfiguruj projekt Firebase

  1. Dodaj Firebase do projektu iOS , jeśli nie zostało to zrobione.

  2. Na stronie dewelopera Apple utworzyć klucz prywatny DeviceCheck .

  3. Zarejestrować swoje aplikacje do korzystania App sprawdzić u dostawcy DeviceCheck w Ustawienia projektu> App Sprawdź części konsoli Firebase. Musisz podać klucz prywatny, który utworzyłeś w poprzednim kroku.

    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 rejestracyjnych aplikacji, ustawić niestandardowy czas do zamieszkania (TTL) dla App Sprawdź żetony wydane 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: krótsze czasy oczekiwania i częste ponowna atestacja szybciej zmniejszają Twój limit. Zobacz przydziały i limity .

    Domyślną wartością TTL od 1 godziny jest rozsądna dla większości aplikacji.

2. Dodaj bibliotekę App Check do swojej aplikacji

  1. Dodaj zależność dla App Odjazd do Twojego projektu Podfile :

    pod 'Firebase/AppCheck'

    Lub, alternatywnie, można użyć Swift Package Manager zamiast.

    Upewnij się, że używasz również najnowszej wersji dowolnych bibliotek klienta usługi Firebase, na których polegasz.

  2. Run pod install i otworzyć utworzony .xcworkspace pliku.

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. Szczegółowe informacje znajdziesz w dwóch następnych sekcjach.

3. Monitoruj metryki żądań

Teraz, gdy zaktualizowana aplikacja jest w rękach użytkowników, możesz włączyć wymuszanie sprawdzania aplikacji dla używanych produktów Firebase. Jednak zanim to zrobisz, upewnij się, że nie zakłóci to istniejących legalnych użytkowników.

Baza danych czasu rzeczywistego i przechowywanie w chmurze

Ważnym narzędziem, którego możesz użyć do podjęcia tej decyzji w przypadku Bazy danych czasu rzeczywistego i Magazynu w chmurze, jest ekran metryk żądania sprawdzania aplikacji.

Aby wyświetlić aplikację Sprawdź żądania metryki dla produktu, otwórz Ustawienia projektu> App Sprawdź sekcję konsoli Firebase. Na przykład:

Zrzut ekranu strony z danymi Sprawdzanie aplikacji

Wskaźniki żądań dla każdego produktu są podzielone na cztery kategorie:

  • Zweryfikowane wnioski są te, które mają ważne App sprawdź tokena. Po włączeniu wymuszania sprawdzania aplikacji kończą się tylko żądania z tej kategorii.

  • Nieaktualne żądania klientów są takie, że brakuje aplikacji Check token. Te żądania mogą pochodzić ze starszej wersji pakietu SDK Firebase, zanim funkcja App Check została uwzględniona w aplikacji.

  • Nieznany wnioski pochodzenia są te, które są brakujące App sprawdź tokena, a nie wyglądać jak one pochodzić z Firebase SDK. Mogą to być żądania wysłane przy użyciu skradzionych kluczy interfejsu API lub sfałszowane żądania wysłane bez pakietu SDK Firebase.

  • Nieprawidłowe wnioski są takie, które mają nieprawidłowy App Sprawdź żeton, który może być z niewłaściwego klienta próbuje podszyć się pod aplikację lub z emulowanych środowiskach.

Dystrybucja tych kategorii dla Twojej aplikacji powinna informować, kiedy zdecydujesz się włączyć wymuszanie. Oto kilka wskazówek:

  • Jeśli prawie wszystkie ostatnie żądania pochodzą od zweryfikowanych klientów, rozważ włączenie wymuszania, aby zacząć chronić zasoby zaplecza.

  • Jeśli znaczna część ostatnich żądań pochodzi od prawdopodobnie nieaktualnych klientów, aby uniknąć zakłócania pracy użytkowników, rozważ poczekanie, aż więcej użytkowników zaktualizuje aplikację, zanim włączysz wymuszanie. Wymuszanie sprawdzania aplikacji w wydanej aplikacji spowoduje uszkodzenie wcześniejszych wersji aplikacji, które nie są zintegrowane z pakietem SDK sprawdzania aplikacji.

  • Jeśli Twoja aplikacja nie została jeszcze uruchomiona, natychmiast włącz wymuszanie sprawdzania aplikacji, ponieważ nie ma w użyciu żadnych nieaktualnych klientów.

Funkcje chmury

W przypadku Cloud Functions możesz uzyskać metryki sprawdzania aplikacji, sprawdzając dzienniki funkcji. Każde wywołanie funkcji wywoływalnej emituje wpis w dzienniku strukturalnym, jak w poniższym przykładzie:

{
  "severity": "INFO",    // INFO, WARNING, or ERROR
  "logging.googleapis.com/labels": {"firebase-log-type": "callable-request-verification"},
  "jsonPayload": {
    "message": "Callable header verifications passed.",
    "verifications": {
      // ...
      "app": "MISSING",  // VALID, INVALID, or MISSING
    }
  }
}

Można analizować te dane w konsoli Google Cloud przez tworząc dzienniki oparte licznik metryczny z następującym filtrem danych:

resource.type="cloud_function"
resource.labels.function_name="YOUR_CLOUD_FUNCTION"
resource.labels.region="us-central1"
labels.firebase-log-type="callable-request-verification"

Etykieta metrykę przy użyciu pola jsonPayload.verifications.appCheck .

4. Włącz wymuszanie

Aby włączyć wymuszanie, postępuj zgodnie z instrukcjami dla każdego produktu poniżej. Po włączeniu wymuszania dla produktu wszystkie niezweryfikowane żądania dotyczące tego produktu zostaną odrzucone.

Baza danych czasu rzeczywistego i przechowywanie w chmurze

Aby włączyć wymuszanie dla Bazy danych czasu rzeczywistego i Cloud Storage:

  1. Otwórz Ustawienia projektu> App Sprawdź sekcję konsoli Firebase.

  2. Rozwiń widok danych produktu, dla którego chcesz włączyć egzekwowanie.

  3. Kliknij Egzekwowanie i potwierdzić swój wybór.

Pamiętaj, że włączenie wymuszania może potrwać do 10 minut.

Funkcje chmury

Zobacz Włącz App Sprawdź egzekwowania dla funkcji chmurze .

Następne kroki

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 aplikacji, która używa dostawcy debugowania sprawdzania aplikacji zamiast rzeczywistego dostawcy poświadczania.

Patrz Korzystanie z App Sprawdź u dostawcy debugowania na iOS .