Na tej stronie dowiesz się, jak włączyć Sprawdzanie 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. Gdy włączysz Sprawdzanie aplikacji, będziesz mieć pewność, że tylko Twoja aplikacja ma dostęp do zasobów Firebase w projekcie. Zobacz omówienie tej funkcji.
1. Konfigurowanie projektu w Firebase
Zainstaluj i zainicjuj FlutterFire, jeśli jeszcze tego nie zrobiono.
W konsoli Firebase otwórz Zabezpieczenia > Sprawdzanie aplikacji.
Na karcie Aplikacje zarejestruj aplikacje, aby używać App Check z dostawcami Play Integrity, DeviceCheck i reCAPTCHA.
Zwykle musisz zarejestrować wszystkie aplikacje w projekcie, ponieważ po włączeniu egzekwowania zasad w przypadku 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 wydawanych przez dostawcę. Możesz ustawić TTL 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ż skracają okres, 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 w przypadku żądań sieciowych, dlatego krótki czas TTL może mieć wpływ na wydajność aplikacji.
- Limit i koszt: krótsze czasy 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 systemu.
Domyślna wartość TTL jest odpowiednia w przypadku większości aplikacji. Pamiętaj, że biblioteka Sprawdzania aplikacji odświeża tokeny mniej więcej w połowie czasu TTL.
2. Dodawanie biblioteki Sprawdzania aplikacji do aplikacji
W katalogu głównym projektu Flutter uruchom to polecenie, aby zainstalować wtyczkę:
flutter pub add firebase_app_checkPo zakończeniu ponownie skompiluj aplikację Flutter:
flutter run
3. Inicjowanie Sprawdzania aplikacji
Dodaj do aplikacji poniższy kod inicjowania, aby był on wykonywany przed użyciem jakichkolwiek usług Firebase, takich jak Storage, ale po wywołaniu 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 Sprawdzania 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 usługi Firebase nie będą wymagać, aby tokeny były ważne, dopóki nie włączysz egzekwowania w sekcji Sprawdzanie aplikacji w konsoli Firebase.
Monitorowanie danych i włączanie egzekwowania
Zanim jednak włączysz egzekwowanie, upewnij się, że nie zakłóci to działania obecnych, legalnych użytkowników. Z drugiej strony, jeśli zauważysz podejrzane wykorzystanie zasobów aplikacji, możesz wcześniej włączyć egzekwowanie.
Aby ułatwić sobie podjęcie tej decyzji, możesz sprawdzić dane usługi Sprawdzanie aplikacji dotyczące używanych usług:
- Monitoruj wskaźniki żądań Sprawdzania aplikacji w przypadku Bazy danych czasu rzeczywistego, Cloud Firestore, Cloud Storage i uwierzytelniania.
- Monitorowanie danych żądań Sprawdzania aplikacji w Cloud Functions
Włączanie wymuszania Sprawdzania aplikacji
Gdy zrozumiesz, jak App Check wpłynie na użytkowników, i będziesz gotowy(-a) do kontynuowania, możesz włączyć wymuszanie App Check:
- Włącz egzekwowanie Sprawdzania aplikacji w przypadku bazy danych czasu rzeczywistego, Cloud Firestore, Cloud Storage i uwierzytelniania.
- Włącz wymuszanie Sprawdzania aplikacji w przypadku Cloud Functions.
Używanie usługi Sprawdzanie aplikacji w środowiskach debugowania
Jeśli po zarejestrowaniu aplikacji w Sprawdzaniu aplikacji chcesz uruchomić ją w środowisku, które Sprawdzanie aplikacji zwykle nie klasyfikuje jako prawidłowe, np. w emulatorze podczas programowania lub w środowisku ciągłej integracji (CI), możesz utworzyć kompilację debugowania aplikacji, która zamiast prawdziwego dostawcy atestów korzysta z dostawcy debugowania Sprawdzania aplikacji.
Zobacz Używanie Sprawdzania aplikacji z dostawcą debugowania w aplikacjach na Fluttera.