Bu sayfada, yerleşik App Attest sağlayıcısını kullanarak bir Apple uygulamasında App Check özelliğini nasıl etkinleştireceğiniz gösterilmektedir. App Check özelliğini etkinleştirdiğinizde projenizin Firebase kaynaklarına yalnızca uygulamanızın erişebilmesini sağlarsınız. Bu özelliğe genel bakış
App Check, Firebase hizmetlerine gönderilen isteklerin orijinal uygulamanızdan geldiğini doğrulamak için App Attest'i kullanır. App Check şu anda sahtekarlık riskini analiz etmek için App Attest'i kullanmıyor.
App Check hizmetini kendi özel sağlayıcınızla kullanmak istiyorsanız Özel bir App Check sağlayıcısı uygulama başlıklı makaleyi inceleyin.
1. Firebase projenizi oluşturma
App Attest'i kullanmak için Xcode 12.5 veya sonraki bir sürüme ihtiyacınız vardır.
Henüz yapmadıysanız Firebase'i Apple projenize ekleyin.
Firebase konsolunda Security (Güvenlik) > App Check (Uygulama Kontrolü) bölümüne gidin.
Uygulamalar sekmesinde, App Attest sağlayıcısıyla App Check kullanmak için uygulamalarınızı 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şebileceğinden genellikle projenizin tüm uygulamalarını kaydetmeniz gerekir.
İsteğe bağlı: Jetonun geçerlilik süresini (TTL) ayarlayın.
Uygulama kayıt ayarlarında, sağlayıcı tarafından verilen App Check 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 avantaj ve dezavantajları göz önünde bulundurun:
- Güvenlik: Daha kısa TTL'ler daha güçlü güvenlik sağlar. Çünkü sızdırılan veya ele geçirilen bir jetonun saldırgan tarafından kötüye kullanılabileceği süreyi kısaltır.
- Performans: Daha kısa TTL'ler, uygulamanızın daha sık onay işlemi 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 onaylama, kotanızı daha hızlı tüketir ve ücretli hizmetler için daha fazla maliyete neden olabilir. Kotalar ve sınırlar bölümüne bakın.
1 saatlik varsayılan TTL, çoğu uygulama için uygundur. App Check kitaplığının, jetonları TTL süresinin yaklaşık yarısında yenilediğini unutmayın.
2. App Check kitaplığını uygulamanıza ekleme
Firebase bağımlılıklarını yüklemek ve yönetmek için Swift Package Manager'ı kullanın.
Xcode'da uygulama projeniz açıkken File > Add Packages (Dosya > Paket Ekle) bölümüne gidin, Firebase Apple platformları SDK deposunu (
https://github.com/firebase/firebase-ios-sdk) ekleyin ve FirebaseAppCheck kitaplığını seçin.Xcode'da uygulamanıza App Attest özelliğini ekleyin.
Projenizin
.entitlementsdosyasında App Attest ortamınıproductionolarak ayarlayın.
3. App Check başlatılıyor
Diğer Firebase SDK'larını kullanmadan önce App Check başlatmanız gerekir.
Öncelikle AppCheckProviderFactory için bir uygulama 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 kullanan kullanıcılarınız varsa her 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
Alternatif olarak, iOS 14 ve sonraki sürümlerde AppAttestProvider nesneleri oluşturabilir ve önceki sürümlerde DeviceCheckProvider nesnelerine geri dönebilirsiniz:
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
Bir AppCheckProviderFactory sınıfı uyguladıktan sonra, bu sınıfı kullanmak için App Check öğesini 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
App Check kitaplığı uygulamanıza yüklendikten sonra güncellenmiş uygulamayı kullanıcılarınıza dağıtmaya başlayın.
Güncellenen istemci uygulaması, Firebase'e gönderdiği her istekle birlikte App Check jetonları göndermeye başlar ancak Firebase konsolunun App Check bölümünde yaptırımı etkinleştirene kadar Firebase ürünleri, jetonların geçerli olmasını zorunlu kılmaz.
Metrikleri izleme ve yaptırımı etkinleştirme
Ancak yaptırımı etkinleştirmeden önce, bu işlemin mevcut meşru kullanıcılarınızı rahatsız etmeyeceğinden emin olmanız gerekir. Öte 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 App Check metriklerine bakabilirsiniz:
- Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, iOS için Google Identity, Maps JavaScript API ve Places API (New) için App Check istek metriklerini izleyin.
- Cloud Functions için App Check istek metriklerini izleyin.
App Check yaptırımını etkinleştirme
App Check özelliğinin kullanıcılarınızı nasıl etkileyeceğini anladığınızda ve devam etmeye hazır olduğunuzda App Check yaptırımını etkinleştirebilirsiniz:
- Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, iOS için Google Identity, Maps JavaScript API ve Places API (Yeni) için App Check yaptırımını etkinleştirin.
- Cloud Functions için App Check yaptırımını etkinleştirin.
Hata ayıklama ortamlarında App Check kullanma
Uygulamanızı App Check için kaydettikten sonra, uygulamanızı App Check tarafından normalde geçerli olarak sınıflandırılmayacak bir ortamda (ör. geliştirme sırasında bir simülatörde veya sürekli entegrasyon (CI) ortamında) çalıştırmak isterseniz uygulamanızın gerçek bir onaylama sağlayıcısı yerine App Check hata ayıklama sağlayıcısını kullanan bir hata ayıklama derlemesini oluşturabilirsiniz.
Apple platformlarında hata ayıklama sağlayıcısı ile App Check kullanma başlıklı makaleyi inceleyin.