Bu sayfada, yerleşik App Attest sağlayıcısını kullanarak bir Apple uygulamasında App Check'nın nasıl etkinleştirileceği gösterilmektedir. App Check seçeneğ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 yapılan 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 kullanmamaktadır.
App Check'yı 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 ayarlama
App Attest'i kullanmak için Xcode 12.5 veya sonraki bir sürüm gerekir.
Henüz yapmadıysanız Firebase'i Apple projenize ekleyin.
Firebase konsolunda Güvenlik > App Check'e gidin.
Uygulamalar sekmesinde, uygulamalarınızı App Attest sağlayıcısıyla App Check kullanmak üzere kaydedin.
Genellikle projenizin tüm uygulamalarını kaydetmeniz gerekir. Çünkü bir Firebase ürünü için zorunlu kılmayı etkinleştirdiğinizde yalnızca kayıtlı uygulamalar ürünün arka uç kaynaklarına erişebilir.
İsteğe bağlı: Jetonun geçerlilik süresini (TTL) ayarlayın.
Uygulama kaydı 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 denge unsurlarına dikkat edin:
- Güvenlik: Sızdırılmış veya ele geçirilmiş bir jetonun saldırgan tarafından kötüye kullanılabileceği süreyi kısalttığı için daha kısa TTL'ler daha güçlü güvenlik sağlar.
- Performans: Daha kısa TTL'ler, uygulamanızın doğrulama işlemini daha sık yapacağı 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 hizmetlerde daha fazla maliyete neden olabilir. Kotalar ve sınırlar başlıklı makaleyi inceleyin.
Varsayılan TTL değeri olan 1 saat çoğu uygulama için uygundur. App Check kitaplığının, TTL süresinin yaklaşık yarısında jetonları 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'a (Dosya > Paket Ekle) 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şlevinin bir uygulamasını 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ümlerde 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, önceki sürümlerde ise DeviceCheckProvider nesnelerini 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
Bir AppCheckProviderFactory sınıfı uyguladıktan sonra, bunu kullanmak için App Check 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 yaptığı her istekle birlikte App Check jetonları göndermeye başlar ancak Firebase ürünleri, Firebase konsolunun App Check bölümünde zorunlu kılmayı etkinleştirene kadar jetonların geçerli olmasını gerektirmez.
Metrikleri izleme ve yaptırımı etkinleştirme
Ancak zorlamayı etkinleştirmeden önce, bu işlemin mevcut meşru kullanıcılarınızın deneyimini kesintiye uğratmayacağından 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 Checkmetriklerine bakabilirsiniz:
- İstek metriklerini App Check izleyin: Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, iOS için Google Identity, Maps JavaScript API ve Places API (Yeni).
- Cloud Functions için App Check istek metriklerini izleyin.
App Check yaptırım özelliğini 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 zorunluluğunu etkinleştirebilirsiniz:
- App Check yaptırım özelliğini 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 etkinleştirin.
- Cloud Functions için App Check zorunlu kılma özelliğini etkinleştirin.
Hata ayıklama ortamlarında App Check kullanma
Uygulamanızı App Check için kaydettikten sonra, uygulamanızı App Check'nın normalde geçerli olarak sınıflandırmayacağı bir ortamda (ör. geliştirme sırasında simülasyon aracında veya sürekli entegrasyon (CI) ortamında) çalıştırmak istiyorsanız uygulamanızın gerçek bir onay sağlayıcı 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ıyla App Check kullanma başlıklı makaleyi inceleyin.