Na tej stronie znajdziesz instrukcje włączania Sprawdzania aplikacji w aplikacji Flutter przy użyciu domyślnych dostawców: Play Integrity na Androidzie, Device Check na platformach Apple i reCAPTCHA v3 w internecie. Włączając Sprawdzanie aplikacji, zapewniasz, że tylko Twoja aplikacja będzie mieć dostęp do zasobów Firebase Twojego projektu. Zapoznaj się z omówieniem tej funkcji.
1. Konfigurowanie projektu Firebase
Zainstaluj i inicjuj FlutterFire, jeśli nie zostało to jeszcze zrobione.
Zarejestruj aplikacje, aby używać Sprawdzania aplikacji z usługami Play Integrity, Device Check i reCAPTCHA w sekcji Ustawienia projektu > Sprawdzanie aplikacji w konsoli Firebase.
Zwykle trzeba zarejestrować wszystkie aplikacje w projekcie, ponieważ po włączeniu egzekwowania zasad dotyczących usługi Firebase tylko zarejestrowane aplikacje będą mogły uzyskiwać dostęp do zasobów backendu tej usługi.
Opcjonalnie: w ustawieniach rejestracji aplikacji ustaw niestandardowy czas życia danych (TTL) dla tokenów App Check wydanych przez dostawcę. Wartość TTL możesz ustawić na dowolną wartość od 30 minut do 7 dni. Podczas zmiany tej wartości należy wziąć pod uwagę te kompromisy:
- Bezpieczeństwo: krótsze czasy TTL zapewniają większą ochronę, ponieważ zmniejszają czas, w którym atakujący może wykorzystać wyciek lub przechwycenie tokena.
- Wydajność: krótsze czasy TTL oznaczają, że aplikacja będzie częściej przeprowadzać weryfikację. Proces weryfikacji aplikacji wydłuża czas oczekiwania na żądania sieci za każdym razem, gdy jest wykonywany, dlatego krótki czas trwania TTL może mieć wpływ na działanie aplikacji.
- Kwota i koszt: krótsze okresy ważności i częste ponowne uwierzytelnianie powodują szybsze wyczerpywanie się kwoty, a w przypadku płatnych usług mogą też zwiększać koszty. Zobacz Limity przydziału i limity systemu.
Domyślna wartość TTL jest odpowiednia w przypadku większości aplikacji. Pamiętaj, że biblioteka App Check odświeża tokeny co około połowę czasu trwania.
2. Dodawanie biblioteki App Check do aplikacji
Aby zainstalować w korzeniach projektu Flutter ten wtyczkę, uruchom to polecenie:
flutter pub add firebase_app_check
Po zakończeniu ponownie skompiluj aplikację Flutter:
flutter run
3. Inicjalizacja Sprawdzania aplikacji
Dodaj do aplikacji poniższy kod inicjalizacji, aby był wykonywany przed użyciem dowolnych usług Firebase, takich jak Storage, ale po wywołaniu funkcji Firebase.initializeApp()
;
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
// Import the firebase_app_check plugin
import 'package:firebase_app_check/firebase_app_check.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
await FirebaseAppCheck.instance.activate(
// You can also use a `ReCaptchaEnterpriseProvider` provider instance as an
// argument for `webProvider`
webProvider: ReCaptchaV3Provider('recaptcha-v3-site-key'),
// Default provider for Android is the Play Integrity provider. You can use the "AndroidProvider" enum to choose
// your preferred provider. Choose from:
// 1. Debug provider
// 2. Safety Net provider
// 3. Play Integrity provider
androidProvider: AndroidProvider.debug,
// Default provider for iOS/macOS is the Device Check provider. You can use the "AppleProvider" enum to choose
// your preferred provider. Choose from:
// 1. Debug provider
// 2. Device Check provider
// 3. App Attest provider
// 4. App Attest provider with fallback to Device Check provider (App Attest provider is only available on iOS 14.0+, macOS 14.0+)
appleProvider: AppleProvider.appAttest,
);
runApp(App());
}
Dalsze kroki
Po zainstalowaniu w aplikacji biblioteki App Check zacznij rozpowszechniać zaktualizowaną aplikację wśród użytkowników.
Zaktualizowana aplikacja klienta zacznie wysyłać tokeny Sprawdzania aplikacji wraz z każdą prośbą wysyłaną do Firebase, ale usługi Firebase nie będą wymagać, aby tokeny były prawidłowe, dopóki nie włączysz wymuszania w sekcji Sprawdzanie aplikacji w konsoli Firebase.
Monitorowanie danych i włączanie egzekwowania
Zanim jednak włączysz egzekwowanie zasad, upewnij się, że nie zakłóci to działania dotychczasowych legalnych użytkowników. Jeśli jednak zauważysz podejrzane korzystanie z zasobów aplikacji, możesz wcześniej włączyć egzekwowanie.
Aby ułatwić sobie podjęcie decyzji, możesz sprawdzić dane usługi App Check dotyczące używanych usług:
- Monitoruj wskaźniki żądań App Check w przypadku Realtime Database, Cloud Firestore, Cloud Storage i Authentication.
- Monitorowanie danych żądań Sprawdzania aplikacji w Cloud Functions
Włączanie sprawdzania aplikacji
Gdy zrozumiesz, jak funkcja sprawdzania aplikacji wpłynie na użytkowników i będziesz gotowy do dalszych działań, możesz włączyć egzekwowanie sprawdzania aplikacji:
- Włącz egzekwowanie kontroli aplikacji w przypadku Bazy danych czasu rzeczywistego, Cloud Firestore, Cloud Storage i Uwierzytelniania.
- Włącz wymuszanie Sprawdzania aplikacji w przypadku Cloud Functions.
Korzystanie z aplikacji App Check w środowiskach debugowania
Jeśli po zarejestrowaniu aplikacji w Sprawdzaniu aplikacji chcesz uruchomić ją w środowisku, które nie jest zwykle uznawane przez Sprawdzanie aplikacji za prawidłowe, np. w emulatorze podczas tworzenia lub w środowisku ciągłej integracji (CI), możesz utworzyć wersję debugowania aplikacji, która używa dostawcy debugowania Sprawdzania aplikacji zamiast prawdziwego dostawcy uwierzytelniania.
Zobacz Używanie narzędzia App Check z usługą debugowania w aplikacjach Flutter.