Bu sayfada, özel Uygulama Kontrolü sağlayıcısı. Uygulama Kontrolü'nü etkinleştirdiğinizde projenizin Firebase kaynaklarına yalnızca uygulamanızın erişmesini sağlayabilirsiniz.
Yerleşik sağlayıcılarla Uygulama Kontrolü'nü kullanmak istiyorsanız App Attest ile Uygulama Kontrolü ve DeviceCheck ile Uygulama Kontrolü.
Başlamadan önce
Henüz eklemediyseniz Firebase'i Apple projenize ekleyin olabilir.
Özel Uygulama Kontrolü sağlayıcınızın sunucu tarafı mantığını uygulayın.
1. Uygulama Kontrolü kitaplığını uygulamanıza ekleme
Uygulama Kontrolü için bağımlılığı projenizin
Podfile
öğesine ekleyin:pod 'FirebaseAppCheck'
Alternatif olarak Swift Package'ı kullanabilirsiniz. Yöneticisi'ni seçin.
Ayrıca, herhangi bir Firebase hizmetinin en son sürümünü kullandığınızdan emin olun istemci kitaplıklarınız olması gerekir.
pod install
komutunu çalıştırın ve oluşturulan.xcworkspace
dosyasını açın.
2. Uygulama Kontrolü protokollerini uygulama
Öncelikle, AppCheckProvider
ve
AppCheckProviderFactory
protokol.
AppCheckProvider
sınıfınızın getToken(completion:)
yöntemi olmalıdır.
özel Uygulama Kontrolü sağlayıcınızın zorunlu kıldığı bilgileri
doğrulama belgesini gönderir ve bunu aşağıdaki süre içinde jeton edinme hizmetinize gönderir:
bir uygulama kontrolü jetonu alabilirsiniz. Uygulama Kontrolü SDK'sı jetonu işler
önbelleğe alma; bu nedenle,
getToken(completion:)
Swift
class YourCustomAppCheckProvider: NSObject, AppCheckProvider { var app: FirebaseApp init(withFirebaseApp app: FirebaseApp) { self.app = app super.init() } func getToken() async throws -> AppCheckToken { let getTokenTask = Task { () -> AppCheckToken in // ... // Create AppCheckToken object. let exp = Date(timeIntervalSince1970: expirationFromServer) let token = AppCheckToken( token: tokenFromServer, expirationDate: exp ) if Date() > exp { throw NSError(domain: "ExampleError", code: 1, userInfo: nil) } return token } return try await getTokenTask.value } }
Objective-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
Ayrıca, AppCheckProviderFactory
AppCheckProvider
uygulaması:
Swift
class YourCustomAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { return YourCustomAppCheckProvider(withFirebaseApp: app) } }
Objective-C
@interface YourCustomAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourCustomAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(FIRApp *)app { return [[YourCustomAppCheckProvider alloc] initWithApp:app]; } @end
3. Uygulama Kontrolü'nü Başlat
Uygulama temsilcinize veya uygulama başlatıcınıza aşağıdaki başlatma kodunu ekleyin:
Swift
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Objective-C
YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; [FIRApp configure];
Sonraki adımlar
Uygulama Kontrolü kitaplığı uygulamanıza yüklendikten sonra, uygulamayı kullanıcılarınıza güncelleyin.
Güncellenen istemci uygulaması, Firebase'e istek gönderir, ancak Firebase ürünleri için jeton gerekmez Firebase konsolu.
Metrikleri izleyin ve yaptırımı etkinleştirin
Ancak, zorunlu kılmayı etkinleştirmeden önce, bu işlemin Mevcut güvenli kullanıcılarınızı kesintiye uğratabilir. Öte yandan, benzer bir Uygulama kaynaklarınızın şüpheli kullanımı durumunda, zorunlu kılma ayarını etkinleştirerek gerekir.
Bu kararı vermenize yardımcı olmak için hizmetler:
- Aşağıdakiler için Uygulama Kontrolü istek metriklerini izleme Realtime Database, Cloud Firestore, Cloud Storage ve Authentication (beta).
- Cloud Functions için Uygulama Kontrolü istek metriklerini izleyin.
Uygulama Kontrolü'nün zorunlu kılınmasını etkinleştir
Uygulama Kontrolü'nün kullanıcılarınızı nasıl etkileyeceğini anladığınızda Devam ederseniz Uygulama Kontrolü'nün zorunlu kılınmasını etkinleştirebilirsiniz:
- Şunlar için Uygulama Kontrolü'nün zorunlu kılınmasını etkinleştir Realtime Database, Cloud Firestore, Cloud Storage ve Authentication (beta).
- Cloud Functions için Uygulama Kontrolü'nün zorunlu kılınmasını etkinleştirin.
Hata ayıklama ortamlarında Uygulama Kontrolü'nü kullanma
Uygulamanızı Uygulama Kontrolü'ne kaydettikten sonra Uygulama Kontrolü'nün normalde geçerli olarak sınıflandıramadığı bir ortamda bulunması Örneğin, geliştirme sırasında kullanılan bir simülatör veya sürekli entegrasyon (CI) aracılığıyla uygulamanızın hata ayıklama derlemesini oluşturmak için Gerçek bir onay sağlayıcısı yerine Uygulama Kontrolü hata ayıklama sağlayıcısı
Apple platformlarında hata ayıklama sağlayıcısıyla Uygulama Kontrolü'nü kullanma başlıklı makaleye göz atın.