Na tej stronie pokazano, jak włączyć Sprawdzanie aplikacji w aplikacji Apple przy użyciu wbudowanego dostawcy Atest aplikacji. Włączając Sprawdzanie aplikacji, możesz mieć pewność, że tylko Twoja aplikacja będzie miała dostęp do zasobów Firebase Twojego projektu. Zobacz przegląd tej funkcji.
Funkcja App Check korzysta z aplikacji App Attest , aby sprawdzić, czy żądania do usług Firebase pochodzą z Twojej autentycznej aplikacji. Funkcja App Check obecnie nie korzysta z aplikacji App Attest do analizy ryzyka oszustwa .
Jeśli chcesz używać Sprawdzania aplikacji z własnym dostawcą niestandardowym, zobacz Implementowanie niestandardowego dostawcy sprawdzania aplikacji .
1. Skonfiguruj projekt Firebase
Aby korzystać z aplikacji App Attest, będziesz potrzebować Xcode 12.5 lub nowszego.
Dodaj Firebase do swojego projektu Apple, jeśli jeszcze tego nie zrobiłeś.
Zarejestruj swoje aplikacje, aby móc korzystać z Sprawdzania aplikacji, u dostawcy App Attest w sekcji Sprawdzanie aplikacji w konsoli Firebase.
Zwykle musisz zarejestrować wszystkie aplikacje w swoim projekcie, ponieważ po włączeniu wymuszania dla produktu Firebase tylko zarejestrowane aplikacje będą mogły uzyskać dostęp do zasobów zaplecza produktu.
Opcjonalnie : w ustawieniach rejestracji aplikacji ustaw niestandardowy czas wygaśnięcia (TTL) dla tokenów Sprawdzania aplikacji wydawanych przez dostawcę. Można ustawić TTL 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 czasy TTL zapewniają większe bezpieczeństwo, ponieważ zmniejszają okno, w którym atakujący może wykorzystać wyciekający lub przechwycony token.
- Wydajność: krótsze czasy TTL oznaczają, że aplikacja będzie częściej przeprowadzać atestację. Ponieważ proces zaświadczania aplikacji za każdym razem zwiększa opóźnienie żądań sieciowych, krótki czas TTL może mieć wpływ na wydajność aplikacji.
- Limit i koszt: Krótsze TTL i częste ponowne atesty szybciej wyczerpują Twój limit, a w przypadku usług płatnych potencjalnie kosztują więcej. Zobacz Przydziały i limity .
Domyślny 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 w przybliżeniu o połowę czasu trwania TTL.
2. Dodaj bibliotekę App Check do swojej aplikacji
Dodaj zależność App Check do
Podfile
swojego projektu:pod 'FirebaseAppCheck'
Alternatywnie możesz zamiast tego użyć Menedżera pakietów Swift .
Upewnij się, że używasz najnowszej wersji innych pakietów SDK Firebase, na których polegasz.
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
Przed użyciem jakichkolwiek innych pakietów SDK Firebase konieczne będzie zainicjowanie sprawdzania aplikacji.
Najpierw napisz implementację AppCheckProviderFactory
. Specyfika Twojej implementacji będzie zależeć od Twojego przypadku użycia.
Na przykład, jeśli masz użytkowników tylko w systemie iOS 14 i nowszych, zawsze możesz po prostu utworzyć obiekty AppAttestProvider
:
Szybki
Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych 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 w systemach docelowych 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 w systemach docelowych 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 w systemach docelowych 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ć:
Szybki
Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych watchOS.
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Cel C
Uwaga: ten produkt Firebase nie jest dostępny w systemach docelowych watchOS.
YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; [FIRApp configure];
Następne kroki
Po zainstalowaniu biblioteki App Check w aplikacji rozpocznij dystrybucję zaktualizowanej aplikacji 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 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 istniejących legalnych użytkowników. Z drugiej strony, jeśli zauważysz podejrzane wykorzystanie zasobów aplikacji, możesz wcześniej włączyć egzekwowanie zasad.
Aby pomóc w podjęciu tej decyzji, możesz sprawdzić dane App Check dotyczące usług, z których korzystasz:
- Monitoruj metryki żądań aplikacji dla bazy danych czasu rzeczywistego, Cloud Firestore, przechowywania w chmurze i uwierzytelniania (beta).
- Monitoruj metryki żądań aplikacji dla Cloud Functions .
Włącz wymuszanie sprawdzania aplikacji
Kiedy już zrozumiesz, jak Kontrola aplikacji wpłynie na Twoich użytkowników i będziesz gotowy, aby kontynuować, możesz włączyć wymuszanie sprawdzania aplikacji:
- Włącz wymuszanie sprawdzania aplikacji dla bazy danych czasu rzeczywistego, Cloud Firestore, przechowywania w chmurze i uwierzytelniania (beta).
- Włącz wymuszanie sprawdzania aplikacji dla funkcji Cloud .
Użyj sprawdzania aplikacji w środowiskach debugowania
Jeśli po zarejestrowaniu aplikacji w Kontroli aplikacji chcesz ją uruchomić w środowisku, którego weryfikacja aplikacji normalnie nie sklasyfikowałaby jako prawidłowe, na przykład w symulatorze podczas programowania lub w środowisku ciągłej integracji (CI), możesz utwórz kompilację debugowania swojej aplikacji, która korzysta z dostawcy debugowania App Check zamiast prawdziwego dostawcy zaświadczenia.
Zobacz Korzystanie z funkcji sprawdzania aplikacji u dostawcy debugowania na platformach Apple .