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

वेब ऐप्स में रीकैप्चा v3 के साथ ऐप चेक सक्षम करें

यह पेज आपको दिखाता है कि बिल्ट-इन reCAPTCHA v3 प्रदाता का उपयोग करके वेब ऐप में ऐप चेक को कैसे सक्षम किया जाए। जब आप ऐप चेक सक्षम करते हैं, तो आप यह सुनिश्चित करने में सहायता करते हैं कि केवल आपका ऐप ही आपके प्रोजेक्ट के फायरबेस संसाधनों तक पहुंच सकता है। इस सुविधा का अवलोकन देखें।

reCAPTCHA v3 एक ऐसी सेवा है जिसकी कोई कीमत नहीं है। ऐप चेक रीकैप्चा एंटरप्राइज का भी समर्थन करता है, जो बिना किसी लागत के कोटा वाली सशुल्क सेवा है। reCAPTCHA v3 और reCAPTCHA Enterprise के बीच अंतर जानने के लिए, सुविधाओं की तुलना देखें।

ध्यान दें कि रीकैप्चा v3 उपयोगकर्ताओं के लिए अदृश्य है। रीकैप्चा v3 प्रदाता को किसी भी समय किसी चुनौती को हल करने के लिए उपयोगकर्ताओं की आवश्यकता नहीं होगी। रीकैप्चा v3 दस्तावेज़ देखें।

यदि आप अपने स्वयं के कस्टम प्रदाता के साथ ऐप चेक का उपयोग करना चाहते हैं, तो कस्टम ऐप चेक प्रदाता लागू करें देखें

1. अपना फायरबेस प्रोजेक्ट सेट करें

  1. अगर आपने पहले से ऐसा नहीं किया है, तो अपने JavaScript प्रोजेक्ट में Firebase जोड़ें .

  2. अपनी साइट को reCAPTCHA v3 के लिए पंजीकृत करें और अपनी reCAPTCHA v3 साइट कुंजी और गुप्त कुंजी प्राप्त करें।

  3. ऐप चेक का उपयोग करने के लिए अपने ऐप को फ़ायरबेस कंसोल के ऐप चेक सेक्शन में रीकैप्चा प्रदाता के साथ पंजीकृत करें। आपको पिछले चरण में मिली गुप्त कुंजी प्रदान करनी होगी।

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

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

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

    अधिकांश ऐप्स के लिए 1 दिन का डिफ़ॉल्ट टीटीएल उचित है। ध्यान दें कि ऐप चेक लाइब्रेरी टीटीएल की लगभग आधी अवधि में टोकन को रीफ्रेश करती है।

2. ऐप चेक लाइब्रेरी को अपने ऐप में जोड़ें

अपने वेब ऐप्लिकेशन में Firebase जोड़ें यदि आपने पहले से ऐसा नहीं किया है। ऐप चेक लाइब्रेरी को आयात करना सुनिश्चित करें।

3. ऐप चेक इनिशियलाइज़ करें

किसी भी Firebase सेवाओं को एक्सेस करने से पहले, अपने एप्लिकेशन में निम्नलिखित इनिशियलाइज़ेशन कोड जोड़ें। activate() करने के लिए आपको अपनी reCAPTCHA साइट कुंजी पास करनी होगी, जिसे आपने reCAPTCHA कंसोल में बनाया था।

Web version 9

const { initializeApp } = require("firebase/app");
const { initializeAppCheck, ReCaptchaV3Provider } = require("firebase/app-check");

const app = initializeApp({
  // Your firebase configuration object
});

// Pass your reCAPTCHA v3 site key (public key) to activate(). Make sure this
// key is the counterpart to the secret key you set in the Firebase console.
const appCheck = initializeAppCheck(app, {
  provider: new ReCaptchaV3Provider('abcdefghijklmnopqrstuvwxy-1234567890abcd'),

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  isTokenAutoRefreshEnabled: true
});

Web version 8

firebase.initializeApp({
  // Your firebase configuration object
});

const appCheck = firebase.appCheck();
// Pass your reCAPTCHA v3 site key (public key) to activate(). Make sure this
// key is the counterpart to the secret key you set in the Firebase console.
appCheck.activate(
  'abcdefghijklmnopqrstuvwxy-1234567890abcd',

  // Optional argument. If true, the SDK automatically refreshes App Check
  // tokens as needed.
  true);

एक बार ऐप चेक लाइब्रेरी आपके ऐप में इंस्टॉल हो जाने के बाद, इसे तैनात करें।

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

4. मॉनिटर अनुरोध मेट्रिक्स

अब जब आपका अपडेट किया गया ऐप उपयोगकर्ताओं के हाथ में है, तो आप अपने द्वारा उपयोग किए जाने वाले Firebase उत्पादों के लिए ऐप चेक को लागू करना सक्षम कर सकते हैं। हालांकि, ऐसा करने से पहले, आपको यह सुनिश्चित कर लेना चाहिए कि ऐसा करने से आपके मौजूदा वैध उपयोगकर्ता बाधित नहीं होंगे।

रीयलटाइम डेटाबेस, क्लाउड फायरस्टोर, और क्लाउड स्टोरेज

रीयलटाइम डेटाबेस, क्लाउड फायरस्टोर और क्लाउड स्टोरेज के लिए यह निर्णय लेने के लिए आप जिस महत्वपूर्ण टूल का उपयोग कर सकते हैं, वह ऐप चेक अनुरोध मेट्रिक्स स्क्रीन है।

किसी उत्पाद के लिए ऐप चेक अनुरोध मीट्रिक देखने के लिए, फायरबेस कंसोल का ऐप चेक अनुभाग खोलें। उदाहरण के लिए:

ऐप चेक मेट्रिक्स पेज का स्क्रीनशॉट

प्रत्येक उत्पाद के लिए अनुरोध मीट्रिक चार श्रेणियों में विभाजित हैं:

  • सत्यापित अनुरोध वे हैं जिनके पास वैध ऐप चेक टोकन है। आपके द्वारा ऐप चेक प्रवर्तन सक्षम करने के बाद, केवल इस श्रेणी के अनुरोध ही सफल होंगे।

  • पुराने क्लाइंट अनुरोध वे हैं जिनमें ऐप चेक टोकन नहीं है। ऐप में ऐप चेक को शामिल करने से पहले ये अनुरोध फायरबेस एसडीके के पुराने संस्करण से हो सकते हैं।

  • अज्ञात मूल अनुरोध वे हैं जिनमें ऐप चेक टोकन नहीं है, और ऐसा नहीं लगता कि वे फायरबेस एसडीके से आए हैं। ये चोरी की गई API कुंजियों से किए गए अनुरोधों या Firebase SDK के बिना किए गए जाली अनुरोधों से हो सकते हैं।

  • अमान्य अनुरोध वे होते हैं जिनके पास एक अमान्य ऐप चेक टोकन होता है, जो आपके ऐप का प्रतिरूपण करने का प्रयास करने वाले किसी अप्रामाणिक क्लाइंट या नकली वातावरण से हो सकता है।

जब आप प्रवर्तन को सक्षम करने का निर्णय लेते हैं तो आपके ऐप के लिए इन श्रेणियों के वितरण को सूचित करना चाहिए। यहां कुछ दिशानिर्देश दिए गए हैं:

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

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

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

बादल कार्य

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

{
  "severity": "INFO",    // INFO, WARNING, or ERROR
  "logging.googleapis.com/labels": {"firebase-log-type": "callable-request-verification"},
  "jsonPayload": {
    "message": "Callable header verifications passed.",
    "verifications": {
      // ...
      "app": "MISSING",  // VALID, INVALID, or MISSING
    }
  }
}

आप निम्न मीट्रिक फ़िल्टर के साथ लॉग-आधारित काउंटर मीट्रिक बनाकर Google क्लाउड कंसोल में इन मीट्रिक का विश्लेषण कर सकते हैं:

resource.type="cloud_function"
resource.labels.function_name="YOUR_CLOUD_FUNCTION"
resource.labels.region="us-central1"
labels.firebase-log-type="callable-request-verification"

jsonPayload.verifications.appCheck फ़ील्ड का उपयोग करके मीट्रिक को लेबल करें

5. प्रवर्तन सक्षम करें

प्रवर्तन सक्षम करने के लिए, प्रत्येक उत्पाद के लिए नीचे दिए गए निर्देशों का पालन करें। एक बार जब आप किसी उत्पाद के लिए प्रवर्तन सक्षम कर देते हैं, तो उस उत्पाद के सभी असत्यापित अनुरोध अस्वीकार कर दिए जाएंगे।

रीयलटाइम डेटाबेस, क्लाउड फायरस्टोर, और क्लाउड स्टोरेज

रीयलटाइम डेटाबेस, क्लाउड फायरस्टोर (आईओएस और एंड्रॉइड), और क्लाउड स्टोरेज के लिए प्रवर्तन सक्षम करने के लिए:

  1. Firebase कंसोल का ऐप चेक सेक्शन खोलें।

  2. उस उत्पाद के मेट्रिक दृश्य का विस्तार करें जिसके लिए आप प्रवर्तन सक्षम करना चाहते हैं.

  3. लागू करें पर क्लिक करें और अपनी पसंद की पुष्टि करें।

ध्यान दें कि आपके द्वारा प्रवर्तन को प्रभावी होने में सक्षम करने के बाद इसमें 15 मिनट तक का समय लग सकता है।

बादल कार्य

क्लाउड फ़ंक्शंस के लिए ऐप चेक एनफोर्समेंट सक्षम करें देखें।

अगले कदम

यदि, ऐप चेक के लिए अपना ऐप पंजीकृत करने के बाद, आप अपने ऐप को ऐसे वातावरण में चलाना चाहते हैं, जिसे ऐप चेक सामान्य रूप से मान्य के रूप में वर्गीकृत नहीं करेगा, जैसे कि स्थानीय रूप से विकास के दौरान, या निरंतर एकीकरण (सीआई) वातावरण से, आप बना सकते हैं आपके ऐप का एक डिबग बिल्ड जो वास्तविक सत्यापन प्रदाता के बजाय ऐप चेक डिबग प्रदाता का उपयोग करता है।

वेब ऐप्स में डिबग प्रदाता के साथ ऐप चेक का उपयोग करें देखें।