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

Uygulama Kontrolü'nde birkaç sağlayıcı için yerleşik destek bulunur: DeviceCheck ve App Attest Android'de Play Integrity ve SafetyNet'te ve web uygulamalarında reCAPTCHA Enterprise (genel bakış). Bunlar çoğu kullanıcının ihtiyaçlarını karşılaması gereken, birlikte çalışır. Ancak, kendi özel Uygulama Kontrolünüzü de uygulayabilirsiniz sağlayıcılar. Aşağıdaki durumlarda özel sağlayıcı kullanmanız gerekir:

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

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

  • Cihazları Apple, Android ve diğer platformları kullanarak doğrulamak istiyorsanız yardımcı olur. Örneğin, masaüstü işletim sistemleri veya Nesnelerin İnterneti cihazları.

  • Herhangi bir platformda kendi doğrulama tekniklerinizi uygulamak istiyorsanız.

Genel Bakış

Özel bir Uygulama Kontrolü sağlayıcısı uygulamak için güvenli bir arka uca ihtiyacınız var Node.js Firebase Yönetici SDK'sını çalıştırabilen bir ortam yaratmak. Bu, Cloud Functions gibi bir container platformu olan Cloud Functions, Cloud Run veya kendi sunucunuz.

Bu ortamdan kullanabileceğiniz, ağ tarafından erişilebilen bir hizmet uygulama istemcilerinden orijinallik kanıtı alırsa ve özgünlük, özgünlük değerlendirmenizi geçer ve bir Uygulama Kontrolü döndürür. jeton. Özgünlük kanıtı olarak kullanacağınız belirli göstergeler ya da kullandığınız üçüncü taraf sağlayıcı veya kendi göstergeleriniz özel mantık uyguluyorsanız en iyi sonucu verir.

Genellikle bu hizmeti REST veya gRPC uç noktası olarak sunarsınız, ancak bu ayrıntı size kalmış.

Jeton edinme uç noktası oluşturma

  1. Yönetici SDK'sını yükleyip başlatın.

  2. Özgünlük doğrulama verilerini alabilen, ağ tarafından erişilebilen bir uç nokta oluşturun nasıl sağlayabileceğini de öğreneceksiniz. Örneğin, Cloud Functions kullanılırken:

    // 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, temel mantığını ele alacağız. Bunu kontrol etmeniz gerekir. kendinizi yazın.

  4. İstemcinin gerçek olduğunu belirlerseniz, Uygulama Kontrolü jetonu ile birlikte bu jetonu ve geçerlilik bitiş zamanını 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 özgünlüğünü doğrulayamıyorsanız bir hata döndürün (örneğin, HTTP 403 hatası döndürür).

  5. İsteğe bağlı: Şu kuruluş tarafından verilen Uygulama Kontrolü jetonları için geçerlilik süresini (TTL) ayarlayın: özel sağlayıcınıza,AppCheckTokenOptions createToken(). TTL'yi 30 dakika ile 7 arasında herhangi bir değere ayarlayabilirsiniz. gün. Bu değeri ayarlarken aşağıdaki dengelere dikkat edin:

    • Güvenlik: Daha kısa TTL'ler daha güçlü güvenlik sağlar, çünkü bir jetonun sızdırıldığı veya ele geçirildiği bir pencerenin ele alacağız.
    • Performans: Daha kısa TTL'ler, uygulamanızın onay sürecini daha fazla yapacağı anlamına gelir. alabilir. Uygulama onay işlemi, ağa gecikmeyi eklediğinden her gerçekleştirildiğinde kısa bir TTL, performansı etkileyebilir. en iyi yoludur.

    Varsayılan 1 saatlik TTL, ç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'dan kullanmak için Android ve web istemcileri.