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 za pomocą dostawcy reCAPTCHA Enterprise. App Check pomaga zapewnić, że tylko Twoja aplikacja będzie miała dostęp do zasobów backendu projektu. Więcej informacji znajdziesz w omówieniu App Check.

App Check wymaga użycia kluczy reCAPTCHA opartych na wynikach, dzięki czemu jest niewidoczna dla użytkowników. Oznacza to, że dostawca reCAPTCHA Enterprise nie będzie wymagać od użytkowników wykonania zadania.

Jeśli Twój przypadek użycia wymaga funkcji reCAPTCHA Enterprise, które nie są zaimplementowane przez 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 nie korzystasz z Firebase, zainstaluj i zainicjuj tę usługę w projekcie Flutter.

  2. W konsoli Google Cloud otwórz stronę Fraud Defense i wykonaj te czynności dla dostawcy reCAPTCHA Enterprise:

    1. Upewnij się, że jesteś w odpowiednim projekcie (patrz selektor projektów u góry ekranu).

    2. Jeśli pojawi się taka prośba, włącz interfejs reCAPTCHA Enterprise API.

    3. Utwórz klucz na podstawie platformy docelowej:

      iOS+

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

      • Pamiętaj, aby wpisać ten sam identyfikator pakietu, który został podany podczas tworzenia aplikacji Firebase na urządzenia Apple w projekcie Firebase. W wartości identyfikatora pakietu wielkość liter ma znaczenie.

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

      Android

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

      • Pamiętaj, aby wpisać tę samą nazwę pakietu, która została podana podczas tworzenia aplikacji Firebase na Androida w projekcie Firebase. W wartości nazwy pakietu wielkość liter ma znaczenie.

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

      Sieć

      Utwórz klucz typu Sieć i określ każdą z domen aplikacji internetowych.

      • App Check nie obsługuje aplikacji internetowych, które wyświetlają reklamy w ponad 250 domenach.

      • Nigdy nie dodawaj domeny localhost do klucza reCAPTCHA, który jest wdrożony (lub ma zostać wdrożony) w środowisku produkcyjnym.

      • Pozostaw opcję „Użyj testu z polem wyboru” niezaznaczoną.

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

    4. Zwróć uwagę na każdy klucz. Musisz dodać je do procesu rejestracji w konsoli Firebase.

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

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

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

    W ustawieniach rejestracji aplikacji ustaw niestandardowy czas życia (TTL) tokenów App Check wydawanych przez dostawcę. Możesz ustawić TTL na dowolną wartość 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ż skracają czas, w którym haker może wykorzystać przejęty lub przechwycony token.
    • Wydajność: krótsze wartości TTL oznaczają, że aplikacja będzie częściej przeprowadzać atestację. Proces atestacji aplikacji zwiększa czas oczekiwania na żądania sieciowe przy każdym wykonaniu, więc krótki czas TTL może wpływać na wydajność aplikacji.
    • Limit i koszt: krótsze wartości TTL i częste ponowne atestowanie szybciej wyczerpują limit, a w przypadku usług płatnych mogą potencjalnie kosztować więcej. Zobacz Limity i ograniczenia.

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

  6. Opcjonalnie: skonfiguruj ustawienia zaawansowane.

  7. Kliknij Zapisz.

(Opcjonalnie) Konfigurowanie ustawień zaawansowanych

Gdy użytkownik otwiera aplikację, reCAPTCHA Enterprise ocenia poziom ryzyka, jaki stwarza interakcja użytkownika z kluczem, i zwraca wynik z zakresu od 0,0 do 1,0 z przyrostem co 0,1.

  • Wynik 0,0 oznacza, że interakcja wiąże się z wysokim ryzykiem i może być oszustwem.
  • 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ę na to ryzyko.

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

2. Dodawanie wtyczki App Check do aplikacji

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

  1. Aby zainstalować wtyczkę, uruchom to polecenie z katalogu głównego projektu Flutter:

    flutter pub add firebase_app_check
    
  2. Gdy to zrobisz, ponownie skompiluj projekt Flutter:

    flutter run
    

3. Zainicjuj App Check

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

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 wskaźników i włączanie egzekwowania zasad

Po skonfigurowaniu App Check w aplikacji zacznij rozpowszechniać jej zaktualizowaną wersję wśród użytkowników.

Zaktualizowana aplikacja kliencka zacznie wysyłać tokeny App Check wraz z każdym żądaniem wysyłanym do Firebase. Jednak App Check nie będzie blokować żądań z nieprawidłowymi tokenami, dopóki nie zostanie wymuszona App Check.

Monitorowanie danych

Zanim włączysz egzekwowanie, upewnij się, że nie zakłóci to działania aplikacji u obecnych, uprawnionych użytkowników. Jeśli jednak zauważysz podejrzane wykorzystanie zasobów aplikacji, możesz włączyć egzekwowanie wcześniej.

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

Włącz egzekwowanie zasad App Check

Gdy zrozumiesz, jak App Check wpłynie na 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 / symulatora lub hosta lokalnego podczas programowania lub ze środowiska trybu ciągłej integracji (CI).

Aby po wprowadzeniu App Check uruchamiać aplikację w tego typu środowiskach, musisz utworzyć kompilację do debugowania, która zamiast produkcyjnego dostawcy atestu będzie używać dostawcy debugowania App Check.

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

Ceny

App Check tworzy ocenę w Twoim imieniu, aby zweryfikować token odpowiedzi użytkownika za każdym razem, gdy aplikacja odświeża token App Check. Za każdą ocenę utworzoną powyżej bezpłatnego limitu zostanie obciążony Twój projekt w Firebase. Więcej informacji znajdziesz w artykule o cenach reCAPTCHA.

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