Apple platformlarında App Attest ile Uygulama Kontrolü'nü kullanmaya başlayın

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

  1. App Attest'i kullanmak için Xcode 12.5 veya sonraki bir sürüm gerekir.

  2. Henüz yapmadıysanız Firebase'i Apple projenize ekleyin.

  3. Firebase konsolunda Güvenlik > App Check'e gidin.

  4. 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.

  5. İ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

  1. 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.

  2. Xcode'da uygulamanıza App Attest özelliğini ekleyin.

  3. Projenizin .entitlements dosyasında App Attest ortamını production olarak 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:

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:

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.