Check out what’s new from Firebase at Google I/O 2022. Learn more

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

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

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

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

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

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

अवलोकन

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

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

आमतौर पर, आप इस सेवा को REST या gRPC समापन बिंदु के रूप में दिखाते हैं, लेकिन यह विवरण आप पर निर्भर है।

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

  1. व्यवस्थापक SDK स्थापित करें और प्रारंभ करें

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

    // Create endpoint at https://example-app.cloudfunctions.net/fetchAppCheckToken
    exports.fetchAppCheckToken = functions.https.onCall((authenticityData, context) => {
      // ...
    });
    
  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. वैकल्पिक : अपने कस्टम प्रदाता द्वारा जारी किए गए ऐप चेक टोकन के लिए टाइम-टू-लाइव (टीटीएल) सेट करें, AppCheckTokenOptions ऑब्जेक्ट को createToken() पर पास करके। आप टीटीएल को 30 मिनट और 7 दिनों के बीच किसी भी मान पर सेट कर सकते हैं। यह मान सेट करते समय, निम्न ट्रेडऑफ़ से अवगत रहें:

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

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

अगले कदम

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