Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Ö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, çeşitli sağlayıcılar 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şılmış 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 olanlar dışında 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'sını ç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şilebilir bir hizmet sağlarsı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 sunarsınız, ancak bu ayrıntı size bağlıdır.

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

  1. Yönetici SDK'sını kurun ve başlatın .

  2. İstemcilerinizden özgünlük verileri alabilen, ağdan 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ü belirtecini basmak için Yönetici SDK'sını kullanın ve onu ve sona erme süresini istemciye iade edin:

    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 orijinalliğini doğrulayamazsanız, bir hata döndürün (örneğin, bir HTTP 403 hatası döndürün).

  5. İsteğe bağlı : Bir AppCheckTokenOptions nesnesini createToken() öğesine ileterek özel sağlayıcınız tarafından verilen Uygulama Kontrolü belirteçleri için yaşam 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şimlerin farkında olun:

    • Güvenlik: Daha kısa TTL'ler daha güçlü güvenlik sağlar çünkü sızdırılmış veya ele geçirilmiş bir belirtecin bir saldırgan tarafından kötüye kullanılabileceği pencereyi azaltır.
    • Performans: Daha kısa TTL'ler, uygulamanızın daha sık doğrulama 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, bunu Apple , Android ve web istemcilerinizden nasıl kullanacağınızı öğrenin.