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

App Check, çeşitli sağlayıcılar için yerleşik destek sunar: Apple platformlarında DeviceCheck ve AppAttest, Android'de Play Integrity ve web uygulamalarında reCAPTCHA Enterprise (genel bakış). Bunlar, çoğu geliştiricinin ihtiyaçlarını karşılaması gereken, iyi bilinen sağlayıcılardır. Ancak kendi özel App Check sağlayıcılarınızı da uygulayabilirsiniz. Özel sağlayıcı kullanmanın gerekli olduğu durumlar:

  • Yerleşik sağlayıcılar dışında bir sağlayıcı kullanmak istiyorsanız.

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

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

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

Genel Bakış

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

Bu ortamda, uygulama istemcilerinizden kimlik doğrulama kanıtı alan ve kimlik doğrulama kanıtı kimlik doğrulama değerlendirmenizi geçerse bir App Check jetonu döndüren, ağa erişilebilen bir hizmet sağlarsınız. Gerçeklik 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 geliştirdiğiniz göstergelere bağlıdır.

Bu hizmeti genellikle REST veya gRPC uç noktası olarak açığa çıkarırsınız ancak bu ayrıntı size bağlıdır.

Jeton edinme uç noktasını oluşturma

  1. Admin SDK'ı yükleyip başlatın.

  2. İstemcilerinizden kimlik doğrulama verileri alabilen, ağa erişilebilen bir uç nokta oluşturun. Örneğin, Cloud Functions kullanarak:

    // Create endpoint at https://example-app.cloudfunctions.net/fetchAppCheckToken
    exports.fetchAppCheckToken = functions.https.onRequest((request, response) => {
      // ...
    });
    
  3. Orijinallik verilerini değerlendiren uç nokta mantığına ekleyin. Bu, özel App Check sağlayıcınızın temel mantığıdır ve kendiniz yazmanız gerekir.

  4. İstemcinin kimliğini doğrularsanız Admin SDK kullanarak bir App Check jetonu oluşturun ve jetonu ile geçerlilik bitiş zamanını istemciye döndürü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 kimliğini doğrulayamazsanız bir hata döndürün (ör. HTTP 403 hatası döndürün).

  5. İsteğe bağlı: createToken() nesnesine bir AppCheckTokenOptions nesnesi ileterek özel sağlayıcınız tarafından yayınlanan App Check jetonlarının 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 dengeleri göz önünde bulundurun:

    • Güvenlik: Daha kısa TTL'ler, sızdırılan veya müdahale edilen jetonun bir saldırgan tarafından kötüye kullanılabileceği süreyi kısalttığı için daha güçlü güvenlik sağlar.
    • Performans: Daha kısa TTL'ler, uygulamanızın doğrulamayı daha sık gerçekleştireceği anlamına gelir. Uygulama doğrulama işlemi her gerçekleştirildiğinde ağ isteklerine gecikme süresi eklediğinden, kısa bir TTL uygulamanızın performansını etkileyebilir.

    Varsayılan TTL değeri olan 1 saat çoğu uygulama için uygundur.

Sonraki adımlar

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