Uygulama Kontrolü'nü Apple platformlarında özel sağlayıcıyla kullanmaya başlayın

Bu sayfada, özel Uygulama Kontrolü sağlayıcısı. Uygulama Kontrolü'nü etkinleştirdiğinizde projenizin Firebase kaynaklarına yalnızca uygulamanızın erişmesini sağlayabilirsiniz.

Yerleşik sağlayıcılarla Uygulama Kontrolü'nü kullanmak istiyorsanız App Attest ile Uygulama Kontrolü ve DeviceCheck ile Uygulama Kontrolü.

Başlamadan önce

1. Uygulama Kontrolü kitaplığını uygulamanıza ekleme

  1. Uygulama Kontrolü için bağımlılığı projenizin Podfile öğesine ekleyin:

    pod 'FirebaseAppCheck'

    Alternatif olarak Swift Package'ı kullanabilirsiniz. Yöneticisi'ni seçin.

    Ayrıca, herhangi bir Firebase hizmetinin en son sürümünü kullandığınızdan emin olun istemci kitaplıklarınız olması gerekir.

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

2. Uygulama Kontrolü protokollerini uygulama

Öncelikle, AppCheckProvider ve AppCheckProviderFactory protokol.

AppCheckProvider sınıfınızın getToken(completion:) yöntemi olmalıdır. özel Uygulama Kontrolü sağlayıcınızın zorunlu kıldığı bilgileri doğrulama belgesini gönderir ve bunu aşağıdaki süre içinde jeton edinme hizmetinize gönderir: bir uygulama kontrolü jetonu alabilirsiniz. Uygulama Kontrolü SDK'sı jetonu işler önbelleğe alma; bu nedenle, getToken(completion:)

Swift

class YourCustomAppCheckProvider: NSObject, AppCheckProvider {
  var app: FirebaseApp

  init(withFirebaseApp app: FirebaseApp) {
    self.app = app
    super.init()
  }

  func getToken() async throws -> AppCheckToken {
    let getTokenTask = Task { () -> AppCheckToken in
      // ...

      // Create AppCheckToken object.
      let exp = Date(timeIntervalSince1970: expirationFromServer)
      let token = AppCheckToken(
        token: tokenFromServer,
        expirationDate: exp
      )

      if Date() > exp {
        throw NSError(domain: "ExampleError", code: 1, userInfo: nil)
      }

      return token
    }

    return try await getTokenTask.value
  }

}

Objective-C

@interface YourCustomAppCheckProvider : NSObject <FIRAppCheckProvider>

@property FIRApp *app;

- (id)initWithApp:(FIRApp *)app;

@end

@implementation YourCustomAppCheckProvider

- (id)initWithApp:app {
    self = [super init];
    if (self) {
        self.app = app;
    }
    return self;
}

- (void)getTokenWithCompletion:(nonnull void (^)(FIRAppCheckToken * _Nullable,
                                                 NSError * _Nullable))handler {
    dispatch_async(dispatch_get_main_queue(), ^{
        // Logic to exchange proof of authenticity for an App Check token.
        // ...

        // Create FIRAppCheckToken object.
        NSTimeInterval exp = expirationFromServer;
        FIRAppCheckToken *token
            = [[FIRAppCheckToken alloc] initWithToken:tokenFromServer
                                       expirationDate:[NSDate dateWithTimeIntervalSince1970:exp]];

        // Pass the token or error to the completion handler.
        handler(token, nil);
    });
}

@end

Ayrıca, AppCheckProviderFactory AppCheckProvider uygulaması:

Swift

class YourCustomAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    return YourCustomAppCheckProvider(withFirebaseApp: app)
  }
}

Objective-C

@interface YourCustomAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourCustomAppCheckProviderFactory

- (nullable id<FIRAppCheckProvider>)createProviderWithApp:(FIRApp *)app {
    return [[YourCustomAppCheckProvider alloc] initWithApp:app];
}

@end

3. Uygulama Kontrolü'nü Başlat

Uygulama temsilcinize veya uygulama başlatıcınıza aşağıdaki başlatma kodunu ekleyin:

Swift

let providerFactory = YourAppCheckProviderFactory()
AppCheck.setAppCheckProviderFactory(providerFactory)

FirebaseApp.configure()

Objective-C

YourAppCheckProviderFactory *providerFactory =
        [[YourAppCheckProviderFactory alloc] init];
[FIRAppCheck setAppCheckProviderFactory:providerFactory];

[FIRApp configure];

Sonraki adımlar

Uygulama Kontrolü kitaplığı uygulamanıza yüklendikten sonra, uygulamayı kullanıcılarınıza güncelleyin.

Güncellenen istemci uygulaması, Firebase'e istek gönderir, ancak Firebase ürünleri için jeton gerekmez Firebase konsolu.

Metrikleri izleyin ve yaptırımı etkinleştirin

Ancak, zorunlu kılmayı etkinleştirmeden önce, bu işlemin Mevcut güvenli kullanıcılarınızı kesintiye uğratabilir. Öte yandan, benzer bir Uygulama kaynaklarınızın şüpheli kullanımı durumunda, zorunlu kılma ayarını etkinleştirerek gerekir.

Bu kararı vermenize yardımcı olmak için hizmetler:

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 Devam ederseniz 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 Uygulama Kontrolü'nün normalde geçerli olarak sınıflandıramadığı bir ortamda bulunması Örneğin, geliştirme sırasında kullanılan bir simülatör veya sürekli entegrasyon (CI) aracılığıyla uygulamanızın hata ayıklama derlemesini oluşturmak için Gerçek bir onay sağlayıcısı yerine Uygulama Kontrolü hata ayıklama sağlayıcısı

Apple platformlarında hata ayıklama sağlayıcısıyla Uygulama Kontrolü'nü kullanma başlıklı makaleye göz atın.