Pierwsze kroki z używaniem Sprawdzania aplikacji z reCAPTCHA Enterprise w aplikacjach na Flattera

Wybierz platformę: iOS Android Web Flutter


Na tej stronie dowiesz się, jak skonfigurować App Check w aplikacji Flutter przy użyciu dostawcy reCAPTCHA Enterprise. App Check pomaga zapewnić, że tylko Twoja aplikacja będzie mieć dostęp do zasobów backendu projektu. Więcej informacji znajdziesz w omówieniu App Check.

App Check wymaga użycia kluczy opartych na wyniku reCAPTCHA, które są niewidoczne dla użytkowników. Oznacza to, że reCAPTCHA Enterprisedostawca nie będzie wymagać od użytkowników rozwiązania zadania w żadnym momencie.

Jeśli Twój przypadek użycia wymaga reCAPTCHA Enterprise funkcji, które nie są zaimplementowane w App Check, lub 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. Jeśli jeszcze tego nie zrobiono, zainstaluj i zainicjuj Firebase w projekcie Flutter.

  2. W konsoli Google Cloud otwórz stronę Ochrona przed oszustwami i wykonaj te czynności w przypadku dostawcy reCAPTCHA Enterprise:

    1. Sprawdź, czy jesteś w odpowiednim projekcie (użyj selektora projektów u góry ekranu).

    2. W razie potrzeby włącz interfejs API reCAPTCHA Enterprise.

    3. Utwórz klucz na podstawie platformy docelowej:

      iOS+

      Utwórz klucz typu iOS i określ identyfikator pakietu aplikacji (np. com.example.my_app).

      • Upewnij się, że wpisujesz ten sam identyfikator pakietu, który został podany podczas tworzenia aplikacji Apple w Firebase w projekcie Firebase. W wartości identyfikatora pakietu rozróżniana jest wielkość liter.

      • W przypadku App Check każdy identyfikator pakietu może odpowiadać tylko jednemu kluczowi reCAPTCHA.

      Android

      Utwórz klucz typu Android i określ nazwę pakietu aplikacji (np. com.example.my_app).

      • Upewnij się, że wpisujesz tę samą nazwę pakietu, którą podano podczas tworzenia aplikacji Firebase na Androida w projekcie Firebase. W wartości nazwy pakietu rozróżniana jest wielkość liter.

      • W przypadku App Check każda nazwa pakietu może odpowiadać tylko jednemu reCAPTCHA kluczowi.

      Sieć

      Utwórz klucz typu Web i określ wszystkie domeny aplikacji internetowych.

      • App Check nie obsługuje aplikacji internetowych, które działają w więcej niż 250 domenach.

      • Nigdy nie dodawaj domeny localhost do klucza reCAPTCHA, który jest wdrażany w wersji produkcyjnej (lub ma być w niej wdrożony).

      • Pozostaw opcję „Użyj wyzwania z polem wyboru” odznaczoną.

      Szczegółowe instrukcje znajdziesz w artykule Tworzenie kluczy reCAPTCHA opartych na wyniku.

    4. Zapisz każdą notatkę. Musisz dodać je do procesu rejestracji w Firebase konsoli.

  3. W konsoli Firebase otwórz Bezpieczeństwo > Sprawdzanie aplikacji.

  4. Na karcie Aplikacje zarejestruj każdą aplikację platformy docelowej, aby używać usługi App Check z dostawcą reCAPTCHA Enterprise. Musisz podać klucz uzyskany w Google Cloud konsoli.

  5. Opcjonalnie: ustaw czas życia tokena (TTL).

    W ustawieniach rejestracji aplikacji ustaw niestandardowy czas życia danych (TTL) dla tokenów App Checkwydawanych 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ż zmniejszają okno, w którym wyciekły lub przechwycony token może zostać wykorzystany przez atakującego.
    • Wydajność: krótsze czasy TTL oznaczają, że aplikacja będzie częściej przeprowadzać atestowanie. Proces potwierdzania aplikacji za każdym razem, gdy jest wykonywany, zwiększa opóźnienie żądań sieciowych, więc krótki czas życia 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.

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

  6. Opcjonalnie: skonfiguruj ustawienia zaawansowane.

  7. Kliknij Zapisz.

(Opcjonalnie) Skonfiguruj ustawienia zaawansowane.

Gdy użytkownik otworzy Twoją aplikację, reCAPTCHA Enterprise oceni poziom ryzyka, jakie stwarza interakcja użytkownika w ramach klucza, i zwróci wynik w zakresie od 0,0 do 1,0 z przyrostem równym 0,1.

  • Wynik 0,0 oznacza, że interakcja wiąże się z wysokim ryzykiem i może być nieuczciwa.
  • Wynik 1,0 oznacza, że interakcja wiąże się z niewielkim ryzykiem i jest bardzo prawdopodobnie uzasadniona.

App Check umożliwia skonfigurowanie progu ryzyka związanego z aplikacją, dzięki czemu możesz dostosować swoją tolerancję tego ryzyka.

W większości przypadków zalecana jest domyślna wartość progu 0, 5. Jeśli Twój przypadek użycia wymaga dostosowania, możesz skonfigurować tę wartość dla każdej aplikacji w Firebase konsoli (kliknij Bezpieczeństwo > Sprawdzanie aplikacji). Rozwiń i przejrzyj poniżej ważne kwestie dotyczące konfigurowania progu ryzyka aplikacji.

2. Dodawanie wtyczki App Check do aplikacji

Aby używać dostawcy reCAPTCHA Enterprise, musisz dodać odpowiednią wtyczkę App Check.

  1. W katalogu głównym projektu Flutter uruchom to polecenie, aby zainstalować wtyczkę:

    flutter pub add firebase_app_check
    
  2. Po zakończeniu ponownie skompiluj projekt Flutter:

    flutter run
    

3. Inicjowanie App Check

W aplikacji musisz zainicjować App Check, zanim zaczniesz korzystać z innych usług Firebase.

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_app_check/firebase_app_check.dart';
import 'firebase_options.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
  await FirebaseAppCheck.instance.activate(
    providerWeb: ReCaptchaEnterpriseProvider(WEB_SITE_KEY),
    providerAndroid: const AndroidReCaptchaProvider(ANDROID_SITE_KEY),
    providerApple: const AppleReCaptchaProvider(IOS_SITE_KEY),
  );
  runApp(App());
}

4. Monitorowanie danych i włączanie egzekwowania

Po skonfigurowaniu 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. App Check nie będzie jednak blokować żądań z nieprawidłowymi tokenami, dopóki App Check nie zostanie wdrożony.

Monitorowanie danych

Zanim włączysz egzekwowanie, upewnij się, że nie spowoduje to zakłóceń w działaniu istniejących, legalnych użytkowników. Jeśli jednak zauważysz podejrzane wykorzystanie zasobów aplikacji, możesz włączyć egzekwowanie wcześniej.

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

Włącz egzekwowanie App Check

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

Używanie App Check w środowiskach debugowania

App Check klasyfikuje niektóre środowiska jako nieprawidłowe, np. żądania z emulatora lub symulatora albo z localhosta podczas programowania lub ze środowiska trybu ciągłej integracji (CI).

Aby uruchomić aplikację w tych typach środowisk po wprowadzeniu App Check, musisz utworzyć wersję debugowania aplikacji, która zamiast dostawcy atestów produkcyjnych używa App Check dostawcy debugowania.

Więcej informacji znajdziesz w artykule Używanie App Check z dostawcą debugowania w aplikacjach na Fluttera.

Ceny

App Check tworzy w Twoim imieniu ocenę, aby za każdym razem, gdy aplikacja odświeża token App Check, weryfikować token odpowiedzi użytkownika. Za każdą ocenę utworzoną powyżej bezpłatnego limitu zostanie naliczona opłata w projekcie w Firebase. Więcej informacji znajdziesz w  reCAPTCHA cenniku.

Domyślnie aplikacja będzie odświeżać ten token 2 razy na godzinę. Aby kontrolować, jak często aplikacja odświeża App Check tokeny (a tym samym, jak często tworzone są nowe oceny), możesz skonfigurować czas życia tokena.