Na tej stronie dowiesz się, jak włączyć App Check w aplikacji Apple przy użyciu wbudowanego dostawcy App Attest. Gdy włączysz App Check, będziesz mieć pewność , że tylko Twoja aplikacja może uzyskiwać dostęp do zasobów Firebase w Twoim projekcie. Zobacz omówienie tej funkcji.
App Check korzysta z App Attest aby sprawdzić, czy żądania do usług Firebase pochodzą z Twojej autentycznej aplikacji. App Check nie używa obecnie App Attest do analizowania ryzyka oszustwa.
Jeśli chcesz używać App Check z własnym dostawcą niestandardowym, przeczytaj artykuł Implementowanie niestandardowego dostawcy App Check.
1. Konfigurowanie projektu w Firebase
Aby korzystać z App Attest, musisz mieć Xcode w wersji 12.5 lub nowszej.
Jeśli jeszcze tego nie zrobisz, dodaj Firebase do projektu Apple.
W konsoli Firebase otwórz Zabezpieczenia > Sprawdzanie aplikacji.
Na karcie Aplikacje zarejestruj aplikacje, aby korzystać z App Check z dostawcą App Attest.
Zwykle musisz zarejestrować wszystkie aplikacje w projekcie, ponieważ po włączeniu egzekwowania 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) tokenów wydawanych przez dostawcę.App Check Możesz ustawić TTL na dowolną wartość od 30 minut do 7 dni. Podczas zmiany tej wartości pamiętaj o tych kompromisach:
- Bezpieczeństwo: krótsze 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 TTL oznaczają, że Twoja aplikacja będzie częściej przeprowadzać atestację. Ponieważ proces atestacji aplikacji dodaje opóźnienie do żądań sieciowych za każdym razem, gdy jest wykonywany, krótki TTL może wpłynąć na wydajność aplikacji.
- Limit i koszt: krótsze TTL i częste ponowne atestacje szybciej wyczerpują limit, a w przypadku usług płatnych mogą kosztować więcej. Zobacz Limity.
Domyślny TTL wynoszący 1 godzinę jest odpowiedni dla większości aplikacji. Pamiętaj, że biblioteka App Check odświeża tokeny mniej więcej w połowie czasu TTL.
2. Dodawanie biblioteki App Check do aplikacji
Do instalacji zależności Firebase i do zarządzania nimi możesz używać menedżera pakietów Swift.
Po otwarciu projektu aplikacji wybierz w Xcode opcję File > Add Packages (Plik > Dodaj pakiety), dodaj repozytorium pakietu SDK Firebase Apple platforms (
https://github.com/firebase/firebase-ios-sdk) i wybierz bibliotekę FirebaseAppCheck.W Xcode dodaj do aplikacji funkcję App Attest.
W pliku
.entitlementsprojektu ustaw środowisko App Attest naproduction.
3. Inicjowanie App Check
Zanim zaczniesz używać innych pakietów SDK Firebase , musisz zainicjować App Check.
Najpierw napisz implementację AppCheckProviderFactory. Szczegóły implementacji zależą od konkretnego przypadku użycia.
Jeśli na przykład masz tylko użytkowników korzystających z iOS 14 lub nowszego, możesz po prostu zawsze tworzyć obiekty AppAttestProvider:
Swift
Uwaga: ten produkt Firebase nie jest dostępny w przypadku celów watchOS.
class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { return AppAttestProvider(app: app) } }
Objective-C
Uwaga: ten produkt Firebase nie jest dostępny w przypadku celów watchOS.
@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourSimpleAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app { return [[FIRAppAttestProvider alloc] initWithApp:app]; } @end
Możesz też tworzyć obiekty AppAttestProvider w iOS 14 i nowszych wersjach oraz wracać do DeviceCheckProvider w starszych wersjach:
Swift
Uwaga: ten produkt Firebase nie jest dostępny w przypadku celów watchOS.
class YourAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { if #available(iOS 14.0, *) { return AppAttestProvider(app: app) } else { return DeviceCheckProvider(app: app) } } }
Objective-C
Uwaga: ten produkt Firebase nie jest dostępny w przypadku celów watchOS.
@interface YourAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app { if (@available(iOS 14.0, *)) { return [[FIRAppAttestProvider alloc] initWithApp:app]; } else { return [[FIRDeviceCheckProvider alloc] initWithApp:app]; } } @end
Po zaimplementowaniu klasy AppCheckProviderFactory skonfiguruj
App Check tak, aby z niej korzystało:
Swift
Uwaga: ten produkt Firebase nie jest dostępny w przypadku celów watchOS.
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Objective-C
Uwaga: ten produkt Firebase nie jest dostępny w przypadku celów watchOS.
YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; [FIRApp configure];
Dalsze kroki
Gdy biblioteka App Check zostanie zainstalowana w Twojej aplikacji, zacznij rozpowszechniać zaktualizowaną aplikację wśród użytkowników.
Zaktualizowana aplikacja kliencka zacznie wysyłać App Check tokeny wraz z każdym żądaniem wysyłanym do Firebase, ale usługi Firebase nie będą wymagać, aby tokeny były prawidłowe, dopóki nie włączysz egzekwowania w sekcji App Check w konsoli Firebase.
Monitorowanie danych i włączanie egzekwowania
Zanim włączysz egzekwowanie, upewnij się, że nie zakłóci to działania dotychczasowych użytkowników. Z drugiej strony, jeśli zauważysz podejrzane korzystanie z zasobów aplikacji, możesz włączyć egzekwowanie wcześniej.
Aby ułatwić podjęcie decyzji, możesz sprawdzić dane App Check dotyczące używanych usług:
- Monitoruj dane żądań w przypadku Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity for iOS, Maps JavaScript API i Places API (nowa wersja).App Check
- Monitoruj dane żądań App Check w przypadku Cloud Functions.
Włączanie egzekwowania App Check
Gdy zrozumiesz, jak App Check wpłynie na Twoich użytkowników, i będziesz gotowy(-a) do kontynuowania, możesz włączyć egzekwowanie App Check:
- Włącz egzekwowanie w przypadku Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity for iOS, Maps JavaScript API i Places API (nowa wersja).App Check
- Włącz egzekwowanie w przypadku Cloud Functions.App Check
Używanie App Check w środowiskach debugowania
Jeśli po zarejestrowaniu aplikacji w App Check chcesz uruchomić swoją aplikację w środowisku, które App Check zwykle nie klasyfikuje jako prawidłowe, np. w symulatorze podczas programowania lub w trybie ciągłej integracji (CI), możesz utworzyć kompilację do debugowania aplikacji, która zamiast prawdziwego dostawcy atestacji używa dostawcy debugowania App Check.
Zobacz Używanie App Check z dostawcą debugowania na platformach Apple.