Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

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

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

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

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

अवलोकन

एक कस्टम अनुप्रयोग चेक प्रदाता को लागू करने के लिए, आप एक सुरक्षित बैकएंड वातावरण है कि Node.js चला सकते हैं की जरूरत है Firebase नियंत्रक 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 घंटे का डिफ़ॉल्ट टीटीएल उचित है।

अगला कदम

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