Na tej stronie pokazano, jak włączyć Sprawdzanie aplikacji w aplikacji Apple przy użyciu wbudowanego dostawcy Atestów aplikacji. Włączając Sprawdzanie aplikacji, pomagasz upewnić się, że tylko Twoja aplikacja ma dostęp do zasobów Firebase Twojego projektu. Zobacz Omówienie tej funkcji.
Funkcja App Check korzysta z App Attest , aby zweryfikować, czy żądania do usług Firebase pochodzą z Twojej autentycznej aplikacji. Sprawdzanie aplikacji obecnie nie używa zaświadczenia o aplikacji do analizowania ryzyka oszustwa .
Jeśli chcesz używać sprawdzania aplikacji z własnym dostawcą niestandardowym, zobacz Implementowanie niestandardowego dostawcy sprawdzania aplikacji .
1. Skonfiguruj swój projekt Firebase
Będziesz potrzebować Xcode 12.5+, aby korzystać z App Attest.
Dodaj Firebase do swojego projektu Apple, jeśli jeszcze tego nie zrobiłeś.
Zarejestruj swoje aplikacje do sprawdzania aplikacji u dostawcy zaświadczeń aplikacji w sekcji Sprawdzanie aplikacji w konsoli Firebase.
Zwykle musisz zarejestrować wszystkie aplikacje swojego projektu, ponieważ po włączeniu wymuszania w produkcie Firebase tylko zarejestrowane aplikacje będą miały dostęp do zasobów zaplecza produktu.
Opcjonalnie : w ustawieniach rejestracji aplikacji ustaw niestandardowy czas wygaśnięcia (TTL) dla tokenów sprawdzania aplikacji wydanych przez dostawcę. TTL można ustawić na dowolną wartość z zakresu od 30 minut do 7 dni. Zmieniając tę wartość, należy pamiętać o następujących kompromisach:
- Bezpieczeństwo: krótsze TTL zapewniają większe bezpieczeństwo, ponieważ skracają okno, w którym wyciekający 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 zaświadczania aplikacji dodaje opóźnienia do żądań sieciowych za każdym razem, gdy jest wykonywany, krótki TTL może mieć wpływ na wydajność Twojej aplikacji.
- Limit i koszt: krótsze TTL i częsta ponowna atestacja powodują szybsze wyczerpanie limitu, a w przypadku usług płatnych potencjalnie kosztują więcej. Zobacz Przydziały i limity .
Domyślny czas TTL wynoszący 1 godzinę jest rozsądny w przypadku większości aplikacji. Należy pamiętać, że biblioteka sprawdzania aplikacji odświeża tokeny po mniej więcej połowie czasu TTL.
2. Dodaj bibliotekę App Check do swojej aplikacji
Dodaj zależność dla sprawdzania aplikacji do
Podfile
swojego projektu:pod 'FirebaseAppCheck'
Lub, alternatywnie, możesz zamiast tego użyć Swift Package Manager .
Upewnij się, że używasz też najnowszej wersji innych pakietów SDK Firebase, od których zależysz.
Uruchom
pod install
i otwórz utworzony plik.xcworkspace
.W Xcode dodaj funkcję App Attest do swojej aplikacji.
W pliku
.entitlements
projektu ustaw środowisko App Attest naproduction
.
3. Zainicjuj sprawdzanie aplikacji
Zanim użyjesz innych pakietów SDK Firebase, musisz zainicjować Sprawdzanie aplikacji.
Najpierw napisz implementację AppCheckProviderFactory
. Specyfika implementacji będzie zależała od przypadku użycia.
Na przykład, jeśli masz tylko użytkowników z systemem iOS 14 lub nowszym, zawsze możesz po prostu utworzyć obiekty AppAttestProvider
:
Szybki
Uwaga: ten produkt Firebase nie jest dostępny na urządzeniach docelowych systemu watchOS.
class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { return AppAttestProvider(app: app) } }
Cel C
Uwaga: ten produkt Firebase nie jest dostępny na urządzeniach docelowych systemu watchOS.
@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourSimpleAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app { return [[FIRAppAttestProvider alloc] initWithApp:app]; } @end
Możesz też utworzyć obiekty AppAttestProvider
w systemie iOS 14 i nowszych wersjach i wrócić do DeviceCheckProvider
we wcześniejszych wersjach:
Szybki
Uwaga: ten produkt Firebase nie jest dostępny na urządzeniach docelowych systemu 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) } } }
Cel C
Uwaga: ten produkt Firebase nie jest dostępny na urządzeniach docelowych systemu 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 Sprawdzanie aplikacji, aby z niej korzystała:
Szybki
Uwaga: ten produkt Firebase nie jest dostępny na urządzeniach docelowych systemu watchOS.
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Cel C
Uwaga: ten produkt Firebase nie jest dostępny na urządzeniach docelowych systemu watchOS.
YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; [FIRApp configure];
Następne kroki
Gdy biblioteka sprawdzania aplikacji zostanie zainstalowana w Twojej aplikacji, rozpocznij dystrybucję zaktualizowanej aplikacji do użytkowników.
Zaktualizowana aplikacja kliencka zacznie wysyłać tokeny sprawdzania aplikacji wraz z każdym żądaniem wysyłanym do Firebase, ale produkty Firebase nie będą wymagać, aby tokeny były ważne, dopóki nie włączysz wymuszania w sekcji Sprawdzanie aplikacji w konsoli Firebase.
Monitoruj metryki i włączaj egzekwowanie
Zanim jednak włączysz wymuszanie, upewnij się, że nie zakłóci to działania Twoich obecnych legalnych użytkowników. Z drugiej strony, jeśli zauważysz podejrzane użycie zasobów aplikacji, warto wcześniej włączyć wymuszanie.
Aby pomóc w podjęciu tej decyzji, możesz przejrzeć dane Sprawdzania aplikacji dotyczące usług, z których korzystasz:
- Monitoruj metryki żądań sprawdzania aplikacji dla bazy danych czasu rzeczywistego, Cloud Firestore, Cloud Storage i uwierzytelniania (beta).
- Monitoruj metryki żądań sprawdzania aplikacji dla Cloud Functions .
Włącz wymuszanie sprawdzania aplikacji
Gdy zrozumiesz, w jaki sposób Sprawdzanie aplikacji wpłynie na Twoich użytkowników i będziesz gotowy do kontynuowania, możesz włączyć wymuszanie Sprawdzania aplikacji:
- Włącz wymuszanie sprawdzania aplikacji dla bazy danych czasu rzeczywistego, Cloud Firestore, Cloud Storage i uwierzytelniania (beta).
- Włącz wymuszanie sprawdzania aplikacji dla Cloud Functions .
Użyj sprawdzania aplikacji w środowiskach debugowania
Jeśli po zarejestrowaniu aplikacji do kontroli aplikacji chcesz uruchomić ją w środowisku, którego kontrola aplikacji normalnie nie sklasyfikowałaby jako ważne, na przykład na symulatorze podczas opracowywania lub w środowisku ciągłej integracji (CI), możesz utwórz kompilację debugowania swojej aplikacji, która korzysta z dostawcy debugowania sprawdzania aplikacji zamiast prawdziwego dostawcy zaświadczeń.
Zobacz Używanie sprawdzania aplikacji z dostawcą debugowania na platformach Apple .