Na tej stronie pokazano, jak włączyć Sprawdzanie aplikacji w aplikacji Apple przy użyciu niestandardowego dostawcy sprawdzania 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.
Jeśli chcesz używać funkcji App Check z wbudowanymi dostawcami, zapoznaj się z dokumentacją dotyczącą App Check z App Attest i App Check z DeviceCheck .
Zanim zaczniesz
Dodaj Firebase do swojego projektu Apple, jeśli jeszcze tego nie zrobiłeś.
Zaimplementuj niestandardową logikę po stronie serwera dostawcy App Check .
1. 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ę także, że używasz najnowszej wersji dowolnych bibliotek klienta usługi Firebase, na których polegasz.
Uruchom
pod install
i otwórz utworzony plik.xcworkspace
.
2. Wdrażaj protokoły sprawdzania aplikacji
Najpierw musisz utworzyć klasy implementujące protokoły AppCheckProvider
i AppCheckProviderFactory
.
Twoja klasa AppCheckProvider
musi mieć metodę getToken(completion:)
, która zbiera wszelkie informacje wymagane przez niestandardowego dostawcę kontroli aplikacji jako dowód autentyczności i wysyła je do usługi pozyskiwania tokenów w zamian za token sprawdzania aplikacji. Zestaw SDK App Check obsługuje buforowanie tokenów, więc zawsze uzyskaj nowy token w implementacji getToken(completion:)
.
Szybki
class YourCustomAppCheckProvider: NSObject, AppCheckProvider { var app: FirebaseApp init(withFirebaseApp app: FirebaseApp) { self.app = app super.init() } func getToken(completion handler: @escaping (AppCheckToken?, Error?) -> Void) { DispatchQueue.main.async { // Logic to exchange proof of authenticity for an App Check token. // ... // Create AppCheckToken object. let exp = Date(timeIntervalSince1970: expirationFromServer) let token = AppCheckToken( token: tokenFromServer, expirationDate: exp ) // Pass the token or error to the completion handler. handler(token, nil) } } }
Cel C
@interface YourCustomAppCheckProvider : NSObject <FIRAppCheckProvider> @property FIRApp *app; - (id)initWithApp:(FIRApp *)app; @end @implementation YourCustomAppCheckProvider - (id)initWithApp:app { self = [super init]; if (self) { self.app = app; } return self; } - (void)getTokenWithCompletion:(nonnull void (^)(FIRAppCheckToken * _Nullable, NSError * _Nullable))handler { dispatch_async(dispatch_get_main_queue(), ^{ // Logic to exchange proof of authenticity for an App Check token. // ... // Create FIRAppCheckToken object. NSTimeInterval exp = expirationFromServer; FIRAppCheckToken *token = [[FIRAppCheckToken alloc] initWithToken:tokenFromServer expirationDate:[NSDate dateWithTimeIntervalSince1970:exp]]; // Pass the token or error to the completion handler. handler(token, nil); }); } @end
Zaimplementuj także klasę AppCheckProviderFactory
, która tworzy instancje implementacji AppCheckProvider
:
Szybki
class YourCustomAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { return YourCustomAppCheckProvider(withFirebaseApp: app) } }
Cel C
@interface YourCustomAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourCustomAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(FIRApp *)app { return [[YourCustomAppCheckProvider alloc] initWithApp:app]; } @end
3. Zainicjuj sprawdzanie aplikacji
Dodaj następujący kod inicjujący do delegata aplikacji lub inicjatora aplikacji:
Szybki
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Cel C
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 .