Bu sayfada, yerleşik App Attest sağlayıcısı kullanılarak bir Apple uygulamasında Uygulama Kontrolü'nün nasıl etkinleştirileceği gösterilmektedir. Uygulama Kontrolü'nü etkinleştirdiğinizde projenizin Firebase kaynaklarına yalnızca uygulamanızın erişebilmesini sağlarsınız. Bu özelliğe genel bakış bölümüne bakın.
Uygulama Kontrolü, Firebase hizmetlerine gönderilen isteklerin gerçek uygulamanızdan geldiğini doğrulamak için Uygulama Onayı'nı kullanır. Uygulama Kontrolü, şu anda sahtekarlık riskini analiz etmek için App Attest'i kullanmaz.
Uygulama Kontrolü'nü kendi özel sağlayıcınızla kullanmak istiyorsanız Özel bir Uygulama Kontrolü sağlayıcısı uygulama bölümüne bakın.
1. Firebase projenizi oluşturun
App Attest'i kullanmak için Xcode 12.5 veya üzeri bir sürümün yüklü olması gerekir.
Henüz yapmadıysanız Firebase'i Apple projenize ekleyin.
Uygulama Kontrolü'nü kullanmak için uygulamalarınızı Firebase konsolunun Uygulama Kontrolü bölümünde App Attest sağlayıcısıyla kaydedin.
Bir Firebase ürünü için yaptırımı etkinleştirdiğinizde yalnızca kayıtlı uygulamalar ürünün arka uç kaynaklarına erişebilir. Bu nedenle, genellikle projenizdeki tüm uygulamaları kaydetmeniz gerekir.
İsteğe bağlı: Uygulama kayıt ayarlarında, sağlayıcı tarafından verilen Uygulama Kontrolü jetonları için özel bir geçerlilik süresi (TTL) ayarlayın. TTL'yi 30 dakika ile 7 gün arasında herhangi bir değere ayarlayabilirsiniz. Bu değeri değiştirirken aşağıdaki dengelere dikkat edin:
- Güvenlik: Daha kısa TTL'ler, sızdırılan veya ele geçirilen bir jetonun saldırgan tarafından kötüye kullanılabileceği pencereyi azalttığı için daha güçlü güvenlik sağlar.
- Performans: Daha kısa TTL'ler, uygulamanızın onay işlemini daha sık gerçekleştireceği anlamına gelir. Uygulama onay işlemi, her gerçekleştirildiğinde ağ isteklerine gecikme eklediğinden, kısa bir TTL, uygulamanızın performansını etkileyebilir.
- Kota ve maliyet: Daha kısa TTL'ler ve sık yeniden onay, kotanızı daha hızlı tüketir. Ücretli hizmetler için ise daha yüksek bir maliyete sahip olabilir. Bkz. Kotalar ve sınırlar.
Varsayılan 1 saatlik TTL, çoğu uygulama için makul bir süredir. Uygulama Kontrolü kitaplığının, jetonları TTL süresinin yaklaşık yarısında yenilendiğini unutmayın.
2. Uygulama Kontrolü kitaplığını uygulamanıza ekleme
Uygulama Kontrolü için bağımlılığı projenizin
Podfile
öğesine ekleyin:pod 'FirebaseAppCheck'
Bunun yerine Swift Package Manager'ı da kullanabilirsiniz.
Ayrıca, kullandığınız diğer tüm Firebase SDK'larının en son sürümlerini kullandığınızdan emin olun.
pod install
komutunu çalıştırın ve oluşturulan.xcworkspace
dosyasını açın.Xcode'da, App Attest (Uygulama Onayı) özelliğini uygulamanıza ekleyin.
Projenizin
.entitlements
dosyasında App Attest ortamınıproduction
olarak ayarlayın.
3. Uygulama Kontrolü'nü Başlat
Diğer Firebase SDK'larını kullanmadan önce Uygulama Kontrolü'nü başlatmanız gerekir.
İlk olarak bir AppCheckProviderFactory
uygulaması yazın. Uygulamanızın ayrıntıları, kullanım alanınıza bağlıdır.
Örneğin, yalnızca iOS 14 ve sonraki sürümleri çalıştıran kullanıcılarınız varsa istediğiniz zaman AppAttestProvider
nesneleri oluşturabilirsiniz:
Swift
Not: Bu Firebase ürünü, watchOS hedeflerinde kullanılamaz.
class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { return AppAttestProvider(app: app) } }
Objective-C
Not: Bu Firebase ürünü, watchOS hedeflerinde kullanılamaz.
@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourSimpleAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app { return [[FIRAppAttestProvider alloc] initWithApp:app]; } @end
iOS 14 ve sonraki sürümlerde AppAttestProvider
nesneleri oluşturabilir ve önceki sürümlerde DeviceCheckProvider
politikasını kullanabilirsiniz:
Swift
Not: Bu Firebase ürünü, watchOS hedeflerinde kullanılamaz.
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
Not: Bu Firebase ürünü, watchOS hedeflerinde kullanılamaz.
@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
AppCheckProviderFactory
sınıfı uyguladıktan sonra, bu sınıfı kullanmak için Uygulama Kontrolü'nü yapılandırın:
Swift
Not: Bu Firebase ürünü, watchOS hedeflerinde kullanılamaz.
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Objective-C
Not: Bu Firebase ürünü, watchOS hedeflerinde kullanılamaz.
YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; [FIRApp configure];
Sonraki adımlar
Uygulama Kontrolü kitaplığı uygulamanıza yüklendikten sonra, güncellenen uygulamayı kullanıcılarınıza dağıtmaya başlayın.
Güncellenen istemci uygulaması, Firebase'e yaptığı her istekle birlikte Uygulama Kontrolü jetonları göndermeye başlar. Ancak Firebase ürünleri, Firebase konsolunun Uygulama Kontrolü bölümünde yaptırımı etkinleştirmediğiniz sürece jetonların geçerli olmasını gerektirmez.
Metrikleri izleyin ve yaptırımı etkinleştirin
Ancak, zorunlu kılmayı etkinleştirmeden önce, bu işlemin mevcut meşru kullanıcılarınızın çalışmasını engellemediğinden emin olmanız gerekir. Diğer yandan, uygulama kaynaklarınızın şüpheli bir şekilde kullanıldığını görüyorsanız yaptırımı daha erken etkinleştirmek isteyebilirsiniz.
Bu kararı vermenize yardımcı olması için, kullandığınız hizmetlerin Uygulama Kontrolü metriklerine bakabilirsiniz:
- Realtime Database, Cloud Firestore, Cloud Storage ve Authentication (beta) için Uygulama Kontrolü istek metriklerini izleyin.
- 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 ve devam etmeye hazır olduğunuzda Uygulama Kontrolü'nün zorunlu kılınmasını etkinleştirebilirsiniz:
- Realtime Database, Cloud Firestore, Cloud Storage ve Authentication (beta) için Uygulama Kontrolü'nün zorunlu kılınmasını etkinleştirin.
- 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, uygulamanızı normalde Uygulama Kontrolü'nün geçerli olarak sınıflandırılmayacağı bir ortamda (ör. geliştirme sırasındaki simülatör veya sürekli entegrasyon (CI) ortamından) çalıştırmak isterseniz uygulamanızın, gerçek bir onay sağlayıcısı yerine Uygulama Kontrolü hata ayıklama sağlayıcısını kullanan bir hata ayıklama derlemesi oluşturabilirsiniz.
Apple platformlarında hata ayıklama sağlayıcısıyla Uygulama Kontrolü'nü kullanma başlıklı makaleye göz atın.