了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

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

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

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

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

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

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

अवलोकन

एक कस्टम ऐप चेक प्रदाता को लागू करने के लिए, आपको एक सुरक्षित बैकएंड वातावरण की आवश्यकता होती है जो 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. वैकल्पिक : अपने कस्टम प्रदाता द्वारा जारी किए गए ऐप चेक टोकन के लिए टाइम-टू-लाइव (TTL) सेट करें, AppCheckTokenOptions ऑब्जेक्ट को createToken() पर पास करके। आप TTL को 30 मिनट और 7 दिनों के बीच किसी भी मान पर सेट कर सकते हैं। इस मान को सेट करते समय, निम्नलिखित ट्रेडऑफ़ से अवगत रहें:

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

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

अगले कदम

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