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

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

  1. App Attest'i kullanmak için Xcode 12.5 veya üzeri bir sürümün yüklü olması gerekir.

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

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

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

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

  2. pod install komutunu çalıştırın ve oluşturulan .xcworkspace dosyasını açın.

  3. Xcode'da, App Attest (Uygulama Onayı) özelliğini uygulamanıza ekleyin.

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

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:

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.