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 ö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

  1. App Attest'i kullanmak için Xcode 12.5 veya sonraki bir sürüme ihtiyacınız vardır.

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

  3. Firebase konsolunda Security (Güvenlik) > App Check (Uygulama Kontrolü) bölümüne gidin.

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

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

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

  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ç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:

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:

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.