एक कस्टम ऐप चेक प्रदाता लागू करें

ऐप चेक में कई प्रदाताओं के लिए अंतर्निहित समर्थन है: ऐप्पल प्लेटफ़ॉर्म पर डिवाइसचेक और ऐप अटेस्ट, एंड्रॉइड पर प्ले इंटीग्रिटी और सेफ्टीनेट, और वेब ऐप्स में रीकैप्चा एंटरप्राइज ( अवलोकन )। ये अच्छी तरह से समझे जाने वाले प्रदाता हैं जिन्हें अधिकांश डेवलपर्स की जरूरतों को पूरा करना चाहिए। हालाँकि, आप अपने स्वयं के कस्टम ऐप चेक प्रदाता भी लागू कर सकते हैं। कस्टम प्रदाता का उपयोग करना आवश्यक है जब:

  • आप बिल्ट-इन प्रदाताओं के अलावा किसी अन्य प्रदाता का उपयोग करना चाहते हैं।

  • आप अंतर्निहित प्रदाताओं का उपयोग असमर्थित तरीकों से करना चाहते हैं।

  • आप Apple, Android और वेब के अलावा अन्य प्लेटफ़ॉर्म का उपयोग करने वाले उपकरणों को सत्यापित करना चाहते हैं। उदाहरण के लिए, आप डेस्कटॉप ओएस या इंटरनेट-ऑफ़-थिंग्स डिवाइस के लिए ऐप चेक प्रदाता बना सकते हैं।

  • आप किसी भी प्लेटफ़ॉर्म पर अपनी स्वयं की सत्यापन तकनीक लागू करना चाहते हैं।

अवलोकन

एक कस्टम ऐप चेक प्रदाता को लागू करने के लिए, आपको एक सुरक्षित बैकएंड वातावरण की आवश्यकता है जो Node.js फायरबेस एडमिन SDK चला सके। यह क्लाउड फ़ंक्शंस, क्लाउड रन जैसा कंटेनर प्लेटफ़ॉर्म या आपका अपना सर्वर हो सकता है।

इस वातावरण से, आप एक नेटवर्क-सुलभ सेवा प्रदान करेंगे जो आपके ऐप क्लाइंट से प्रामाणिकता का प्रमाण प्राप्त करती है, और - यदि प्रामाणिकता का प्रमाण आपके प्रामाणिकता मूल्यांकन को पास कर लेता है - तो एक ऐप चेक टोकन लौटाता है। यदि आप कस्टम तर्क लागू कर रहे हैं, तो प्रामाणिकता के प्रमाण के रूप में आपके द्वारा उपयोग किए जाने वाले विशिष्ट संकेतक या तो आपके द्वारा उपयोग किए जा रहे तीसरे पक्ष प्रदाता या आपके स्वयं के आविष्कार के संकेतकों पर निर्भर होंगे।

आमतौर पर, आप इस सेवा को REST या gRPC एंडपॉइंट के रूप में प्रदर्शित करते हैं, लेकिन यह विवरण आपके ऊपर निर्भर है।

टोकन प्राप्ति समापन बिंदु बनाएं

  1. एडमिन एसडीके को इंस्टॉल और इनिशियलाइज़ करें

  2. एक नेटवर्क-सुलभ समापन बिंदु बनाएं जो आपके ग्राहकों से प्रामाणिकता डेटा प्राप्त कर सके। उदाहरण के लिए, क्लाउड फ़ंक्शंस का उपयोग करना:

    // Create endpoint at https://example-app.cloudfunctions.net/fetchAppCheckToken
    exports.fetchAppCheckToken = functions.https.onRequest((request, response) => {
      // ...
    });
    
  3. अंतिम बिंदु तर्क में जोड़ें जो प्रामाणिकता डेटा का आकलन करता है। यह आपके कस्टम ऐप चेक प्रदाता का मूल तर्क है, जिसे आपको स्वयं लिखना होगा।

  4. यदि आप यह निर्धारित करते हैं कि क्लाइंट प्रामाणिक है, तो ऐप चेक टोकन बनाने के लिए एडमिन एसडीके का उपयोग करें और इसे और इसकी समाप्ति समय को क्लाइंट को वापस कर दें:

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

    यदि आप क्लाइंट की प्रामाणिकता को सत्यापित नहीं कर सकते हैं, तो एक त्रुटि लौटाएँ (उदाहरण के लिए, HTTP 403 त्रुटि लौटाएँ)।

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

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

    अधिकांश ऐप्स के लिए 1 घंटे का डिफ़ॉल्ट टीटीएल उचित है।

अगले कदम

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

,

ऐप चेक में कई प्रदाताओं के लिए अंतर्निहित समर्थन है: ऐप्पल प्लेटफ़ॉर्म पर डिवाइसचेक और ऐप अटेस्ट, एंड्रॉइड पर प्ले इंटीग्रिटी और सेफ्टीनेट, और वेब ऐप्स में रीकैप्चा एंटरप्राइज ( अवलोकन )। ये अच्छी तरह से समझे जाने वाले प्रदाता हैं जिन्हें अधिकांश डेवलपर्स की जरूरतों को पूरा करना चाहिए। हालाँकि, आप अपने स्वयं के कस्टम ऐप चेक प्रदाता भी लागू कर सकते हैं। कस्टम प्रदाता का उपयोग करना आवश्यक है जब:

  • आप बिल्ट-इन प्रदाताओं के अलावा किसी अन्य प्रदाता का उपयोग करना चाहते हैं।

  • आप अंतर्निहित प्रदाताओं का उपयोग असमर्थित तरीकों से करना चाहते हैं।

  • आप Apple, Android और वेब के अलावा अन्य प्लेटफ़ॉर्म का उपयोग करने वाले उपकरणों को सत्यापित करना चाहते हैं। उदाहरण के लिए, आप डेस्कटॉप ओएस या इंटरनेट-ऑफ़-थिंग्स डिवाइस के लिए ऐप चेक प्रदाता बना सकते हैं।

  • आप किसी भी प्लेटफ़ॉर्म पर अपनी स्वयं की सत्यापन तकनीक लागू करना चाहते हैं।

अवलोकन

एक कस्टम ऐप चेक प्रदाता को लागू करने के लिए, आपको एक सुरक्षित बैकएंड वातावरण की आवश्यकता है जो Node.js फायरबेस एडमिन SDK चला सके। यह क्लाउड फ़ंक्शंस, क्लाउड रन जैसा कंटेनर प्लेटफ़ॉर्म या आपका अपना सर्वर हो सकता है।

इस वातावरण से, आप एक नेटवर्क-सुलभ सेवा प्रदान करेंगे जो आपके ऐप क्लाइंट से प्रामाणिकता का प्रमाण प्राप्त करती है, और - यदि प्रामाणिकता का प्रमाण आपके प्रामाणिकता मूल्यांकन को पास कर लेता है - तो एक ऐप चेक टोकन लौटाता है। यदि आप कस्टम तर्क लागू कर रहे हैं, तो प्रामाणिकता के प्रमाण के रूप में आपके द्वारा उपयोग किए जाने वाले विशिष्ट संकेतक या तो आपके द्वारा उपयोग किए जा रहे तीसरे पक्ष प्रदाता या आपके स्वयं के आविष्कार के संकेतकों पर निर्भर होंगे।

आमतौर पर, आप इस सेवा को REST या gRPC एंडपॉइंट के रूप में प्रदर्शित करते हैं, लेकिन यह विवरण आपके ऊपर निर्भर है।

टोकन प्राप्ति समापन बिंदु बनाएं

  1. एडमिन एसडीके को इंस्टॉल और इनिशियलाइज़ करें

  2. एक नेटवर्क-सुलभ समापन बिंदु बनाएं जो आपके ग्राहकों से प्रामाणिकता डेटा प्राप्त कर सके। उदाहरण के लिए, क्लाउड फ़ंक्शंस का उपयोग करना:

    // Create endpoint at https://example-app.cloudfunctions.net/fetchAppCheckToken
    exports.fetchAppCheckToken = functions.https.onRequest((request, response) => {
      // ...
    });
    
  3. अंतिम बिंदु तर्क में जोड़ें जो प्रामाणिकता डेटा का आकलन करता है। यह आपके कस्टम ऐप चेक प्रदाता का मूल तर्क है, जिसे आपको स्वयं लिखना होगा।

  4. यदि आप यह निर्धारित करते हैं कि क्लाइंट प्रामाणिक है, तो ऐप चेक टोकन बनाने के लिए एडमिन एसडीके का उपयोग करें और इसे और इसकी समाप्ति समय को क्लाइंट को वापस कर दें:

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

    यदि आप क्लाइंट की प्रामाणिकता को सत्यापित नहीं कर सकते हैं, तो एक त्रुटि लौटाएँ (उदाहरण के लिए, HTTP 403 त्रुटि लौटाएँ)।

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

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

    अधिकांश ऐप्स के लिए 1 घंटे का डिफ़ॉल्ट टीटीएल उचित है।

अगले कदम

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