Android पर सेफ्टीनेट के साथ ऐप चेक सक्षम करें

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

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

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

  1. अपने Android परियोजना के लिए Firebase जोड़े यदि आप पहले से ही ऐसा नहीं किया है।

  2. आपकी ऐप्लिकेशन रजिस्टर में SafetyNet प्रदाता के साथ उपयोग करने के लिए अनुप्रयोग चेक परियोजना सेटिंग्स> अनुप्रयोग चेक Firebase सांत्वना की धारा। आप की आवश्यकता होगी SHA-256 फ़िंगरप्रिंट प्रदान को अपने ऐप्लिकेशन के हस्ताक्षर करने के प्रमाण पत्र की।

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

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

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

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

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

अपने मॉड्यूल (एप्लिकेशन-स्तरीय) Gradle फ़ाइल (आमतौर पर में app/build.gradle ), निर्भरता की घोषणा अनुप्रयोग के लिए Android पुस्तकालय की जाँच करें:

जावा

dependencies {
    implementation 'com.google.firebase:firebase-appcheck-safetynet:16.0.0-beta02'
}

कोटलिन + केटीएक्स

dependencies {
    implementation 'com.google.firebase:firebase-appcheck-safetynet:16.0.0-beta02'
}

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

अपने ऐप में निम्नलिखित इनिशियलाइज़ेशन कोड जोड़ें ताकि यह आपके द्वारा किसी अन्य Firebase SDK का उपयोग करने से पहले चले:

जावा

FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
        SafetyNetAppCheckProviderFactory.getInstance());

कोटलिन + केटीएक्स

FirebaseApp.initializeApp(/*context=*/this)
val firebaseAppCheck = FirebaseAppCheck.getInstance()
firebaseAppCheck.installAppCheckProviderFactory(
    SafetyNetAppCheckProviderFactory.getInstance()
)

आपके ऐप में ऐप चेक लाइब्रेरी इंस्टॉल हो जाने के बाद, अपडेटेड ऐप को अपने उपयोगकर्ताओं को वितरित करना शुरू करें।

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

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

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

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

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

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

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

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

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

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

  • अज्ञात मूल अनुरोध उन कि ऐप टोकन की जाँच करें याद कर रहे हैं कर रहे हैं, और मत देखो की तरह वे 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. लागू करें और अपनी पसंद की पुष्टि पर क्लिक करें।

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

बादल कार्य

देखें अनुप्रयोग बादल कार्य के लिए प्रवर्तन की जाँच सक्षम करें

अगला कदम

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

देखें एप्लिकेशन का उपयोग करें Android पर डिबग प्रदाता से संपर्क करें