Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Özel bir Uygulama Kontrolü sağlayıcısı uygulayın

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

App Check, birkaç sağlayıcı için yerleşik desteğe sahiptir: Apple platformlarında DeviceCheck ve App Attest, Android'de Play Integrity ve SafetyNet ve web uygulamalarında reCAPTCHA v3 ve reCAPTCHA Enterprise ( genel bakış ). Bunlar, çoğu geliştiricinin ihtiyaçlarını karşılaması gereken, iyi anlaşılan sağlayıcılardır. Bununla birlikte, kendi özel Uygulama Kontrolü sağlayıcılarınızı da uygulayabilirsiniz. Özel bir sağlayıcı kullanmak şu durumlarda gereklidir:

  • Yerleşik olanlardan başka bir sağlayıcı kullanmak istiyorsunuz.

  • Yerleşik sağlayıcıları desteklenmeyen şekillerde kullanmak istiyorsunuz.

  • Apple, Android ve web dışındaki platformları kullanan cihazları doğrulamak istiyorsunuz. Örneğin, masaüstü işletim sistemleri veya Nesnelerin İnterneti cihazları için Uygulama Kontrolü sağlayıcıları oluşturabilirsiniz.

  • Herhangi bir platformda kendi doğrulama tekniklerinizi uygulamak istiyorsunuz.

genel bakış

Özel bir Uygulama Kontrolü sağlayıcısı uygulamak için Node.js Firebase Admin SDK'yı çalıştırabilen güvenli bir arka uç ortamına ihtiyacınız vardır. Bu, Cloud Functions, Cloud Run gibi bir konteyner platformu veya kendi sunucunuz olabilir.

Bu ortamdan, uygulama istemcilerinizden orijinallik kanıtı alan ve - orijinallik kanıtı, orijinallik değerlendirmenizi geçerse - bir Uygulama Kontrolü belirteci döndüren, ağ üzerinden erişilebilen bir hizmet sunacaksınız. Orijinallik kanıtı olarak kullandığınız belirli göstergeler, kullandığınız üçüncü taraf sağlayıcıya veya özel mantık uyguluyorsanız kendi buluşunuzun göstergelerine bağlı olacaktır.

Genellikle bu hizmeti bir REST veya gRPC uç noktası olarak kullanıma sunarsınız, ancak bu ayrıntı size bağlıdır.

Belirteç edinme uç noktasını oluşturun

  1. Admin SDK'yı kurun ve başlatın .

  2. İstemcilerinizden özgünlük verilerini alabilen, ağ üzerinden erişilebilen bir uç nokta oluşturun. Örneğin, Bulut İşlevlerini kullanarak:

    // Create endpoint at https://example-app.cloudfunctions.net/fetchAppCheckToken
    exports.fetchAppCheckToken = functions.https.onCall((authenticityData, context) => {
      // ...
    });
    
  3. Orijinallik verilerini değerlendiren uç nokta mantığına ekleyin. Bu, kendi yazmanız gereken özel Uygulama Kontrolü sağlayıcınızın temel mantığıdır.

  4. İstemcinin orijinal olduğunu belirlerseniz, bir Uygulama Kontrolü belirteci basmak ve bunu ve sona erme süresini istemciye iade etmek için Yönetici SDK'sını kullanın:

    const admin = require('firebase-admin');
    admin.initializeApp();
    
    // ...
    
    admin.appCheck().createToken(appId)
        .then(function (appCheckToken) {
          // Token expires in an hour.
          const expiresAt = Math.floor(Date.now() / 1000) + 60 * 60;
    
          // Return appCheckToken and expiresAt to the client.
        })
       .catch(function (err) {
         console.error('Unable to create App Check token.');
         console.error(err);
       });
    

    İstemcinin gerçekliğini doğrulayamıyorsanız, bir hata döndürün (örneğin, bir HTTP 403 hatası döndürün).

  5. İsteğe bağlı : CreateToken createToken() öğesine bir AppCheckTokenOptions nesnesi ileterek, özel sağlayıcınız tarafından verilen Uygulama Kontrolü belirteçleri için geçerlilik süresini (TTL) ayarlayın. TTL'yi 30 dakika ile 7 gün arasında herhangi bir değere ayarlayabilirsiniz. Bu değeri ayarlarken, aşağıdaki ödünleşimlere dikkat edin:

    • Güvenlik: Daha kısa TTL'ler, sızan veya ele geçirilen bir jetonun bir saldırgan tarafından suistimal edilebileceği pencereyi azalttığı için daha güçlü güvenlik sağlar.
    • Performans: Daha kısa TTL'ler, uygulamanızın tasdik işlemini daha sık gerçekleştireceği anlamına gelir. Uygulama doğrulama işlemi, her gerçekleştirildiğinde ağ isteklerine gecikme eklediğinden, kısa bir TTL uygulamanızın performansını etkileyebilir.

    1 saatlik varsayılan TTL, çoğu uygulama için uygundur.

Sonraki adımlar

Artık özel sağlayıcınızın sunucu tarafı mantığını uyguladığınıza göre, onu Apple , Android ve web istemcilerinizden nasıl kullanacağınızı öğrenin.