पसंद के मुताबिक ऐप्लिकेशन जांच की सेवा देने वाली कंपनी लागू करें

App Check में कई प्रोवाइडर के लिए पहले से मौजूद सहायता शामिल है: Apple प्लैटफ़ॉर्म पर DeviceCheck और App Attest, Android पर Play Integrity, और वेब ऐप्लिकेशन में reCAPTCHA Enterprise (खास जानकारी). ये ऐसे जाने-माने प्रोवाइडर हैं जो ज़्यादातर डेवलपर की ज़रूरतों को पूरा करते हैं. हालांकि, आपके पास अपनी पसंद के मुताबिक App Check प्रोवाइडर को लागू करने का विकल्प भी होता है. कस्टम प्रोवाइडर का इस्तेमाल करना तब ज़रूरी होता है, जब:

  • आपको साथ में आए टूल के अलावा, किसी और टूल का इस्तेमाल करना है.

  • आपको बिल्ट-इन प्रोवाइडर का इस्तेमाल ऐसे तरीकों से करना है जिनके लिए सहायता उपलब्ध नहीं है.

  • आपको Apple, Android, और वेब के अलावा अन्य प्लैटफ़ॉर्म का इस्तेमाल करने वाले डिवाइसों की पुष्टि करनी हो. उदाहरण के लिए, डेस्कटॉप ओएस या इंटरनेट ऑफ़ थिंग्स (आईओटी) डिवाइसों के लिए App Check प्रोवाइडर बनाए जा सकते हैं.

  • आपको किसी भी प्लैटफ़ॉर्म पर, पुष्टि करने के अपने तरीके लागू करने हों.

खास जानकारी

कस्टम App Check प्रोवाइडर को लागू करने के लिए, आपको एक सुरक्षित बैकएंड एनवायरमेंट की ज़रूरत होगी. यह Node.js Firebase Admin SDK को चला सकता है. यह Cloud Functions, Cloud Run जैसे कंटेनर प्लैटफ़ॉर्म या आपका अपना सर्वर हो सकता है.

इस एनवायरमेंट से, आपको नेटवर्क पर ऐक्सेस की जा सकने वाली एक ऐसी सेवा देनी होगी जो आपके ऐप्लिकेशन क्लाइंट से, पुष्टि करने का सबूत हासिल करती है. साथ ही, अगर पुष्टि करने का सबूत, पुष्टि करने के आपके आकलन को पूरा करता है, तो वह App Check टोकन वापस भेजती है. पुष्टि करने के लिए इस्तेमाल किए जाने वाले इंडिकेटर, इस बात पर निर्भर करेंगे कि आपने सेवा देने वाले किस तीसरे पक्ष का इस्तेमाल किया है. अगर आपने कस्टम लॉजिक लागू किया है, तो इंडिकेटर आपके बनाए हुए होंगे.

आम तौर पर, इस सेवा को REST या gRPC एंडपॉइंट के तौर पर दिखाया जाता है. हालांकि, यह जानकारी आपके हिसाब से तय होती है.

टोकन हासिल करने का एंडपॉइंट बनाना

  1. Admin SDK को इंस्टॉल और शुरू करें.

  2. नेटवर्क से ऐक्सेस किया जा सकने वाला ऐसा एंडपॉइंट बनाएं जो आपके क्लाइंट से पुष्टि करने का डेटा पा सके. उदाहरण के लिए, Cloud Functions का इस्तेमाल करके:

    // Create endpoint at https://example-app.cloudfunctions.net/fetchAppCheckToken
    exports.fetchAppCheckToken = functions.https.onRequest((request, response) => {
      // ...
    });
    
  3. एंडपॉइंट लॉजिक में, पुष्टि करने के लिए ज़रूरी डेटा का आकलन करने की सुविधा जोड़ें. यह आपके कस्टम App Check प्रोवाइडर का मुख्य लॉजिक है. इसे आपको खुद लिखना होगा.

  4. अगर आपको लगता है कि क्लाइंट असली है, तो Admin SDK का इस्तेमाल करके, App Check टोकन बनाएं. इसके बाद, इसे और इसके खत्म होने का समय क्लाइंट को वापस भेजें:

    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);
       });
    

    अगर क्लाइंट की पुष्टि नहीं की जा सकती, तो गड़बड़ी का मैसेज दिखाएं. उदाहरण के लिए, एचटीटीपी 403 गड़बड़ी का मैसेज दिखाएं.

  5. ज़रूरी नहीं: अपने कस्टम प्रोवाइडर की ओर से जारी किए गए App Check टोकन के लिए, टाइम-टू-लाइव (टीटीएल) सेट करें. इसके लिए, createToken() को AppCheckTokenOptions ऑब्जेक्ट पास करें. टीटीएल को 30 मिनट से लेकर सात दिनों के बीच की किसी भी वैल्यू पर सेट किया जा सकता है. इस वैल्यू को सेट करते समय, इन बातों का ध्यान रखें:

    • सुरक्षा: टीटीएल कम होने पर, सुरक्षा बेहतर होती है. ऐसा इसलिए, क्योंकि इससे उस समयावधि में कमी आती है जिसमें हमलावर, लीक हुए या इंटरसेप्ट किए गए टोकन का गलत इस्तेमाल कर सकता है.
    • परफ़ॉर्मेंस: टीटीएल कम होने का मतलब है कि आपका ऐप्लिकेशन, पुष्टि करने की प्रोसेस को ज़्यादा बार करेगा. ऐप्लिकेशन की पुष्टि करने की प्रोसेस से, नेटवर्क अनुरोधों में हर बार कुछ समय लगता है. इसलिए, टीटीएल कम होने से आपके ऐप्लिकेशन की परफ़ॉर्मेंस पर असर पड़ सकता है.

    डिफ़ॉल्ट टीटीएल एक घंटे का होता है, जो ज़्यादातर ऐप्लिकेशन के लिए सही है.

अगले चरण

आपने कस्टम प्रोवाइडर के सर्वर-साइड लॉजिक को लागू कर दिया है. अब Apple, Android, और वेब क्लाइंट से इसका इस्तेमाल करने का तरीका जानें.