Flutter ऐप्लिकेशन में reCAPTCHA Enterprise के साथ App Check का इस्तेमाल शुरू करना

प्लैटफ़ॉर्म चुनें: iOS+ Android वेब Flutter


इस पेज पर, reCAPTCHA Enterprise प्रोवाइडर का इस्तेमाल करके, Flutter ऐप्लिकेशन में App Check को सेट अप करने का तरीका बताया गया है. App Check यह पक्का करने में मदद करता है कि सिर्फ़ आपका ऐप्लिकेशन ही आपके प्रोजेक्ट के बैकएंड संसाधनों को ऐक्सेस कर सकता है. ज़्यादा जानने के लिए, App Check की खास जानकारी देखें.

App Check के लिए, स्कोर पर आधारित reCAPTCHA कुंजियों का इस्तेमाल करना ज़रूरी है. इससे यह उपयोगकर्ताओं को नहीं दिखता. इसका मतलब है कि reCAPTCHA Enterprise provider को किसी भी समय उपयोगकर्ताओं से चुनौती हल कराने की ज़रूरत नहीं होगी.

अगर आपको इस्तेमाल के ऐसे उदाहरण के लिए reCAPTCHA Enterprise की उन सुविधाओं की ज़रूरत है जिन्हें App Check ने लागू नहीं किया है या आपको App Check का इस्तेमाल अपने कस्टम प्रोवाइडर के साथ करना है, तो कस्टम App Check प्रोवाइडर लागू करना लेख पढ़ें.

1. अपना Firebase प्रोजेक्ट सेट अप करना

  1. अगर आपने पहले से ही ऐसा नहीं किया है, तो अपने Flutter प्रोजेक्ट में Firebase इंस्टॉल और शुरू करें.

  2. Google Cloud कंसोल में, धोखाधड़ी से बचाव पेज पर जाएं. इसके बाद, reCAPTCHA Enterprise सेवा देने वाली कंपनी के लिए यह तरीका अपनाएं:

    1. पक्का करें कि आपने सही प्रोजेक्ट चुना हो. इसके लिए, स्क्रीन पर सबसे ऊपर मौजूद प्रोजेक्ट पिकर देखें.

    2. अगर कहा जाए, तो reCAPTCHA Enterprise API चालू करें.

    3. अपने टारगेट प्लैटफ़ॉर्म के हिसाब से कोई कुंजी बनाएं:

      iOS+

      iOS टाइप की कुंजी बनाएं और अपने ऐप्लिकेशन का बंडल आईडी डालें. उदाहरण के लिए, com.example.my_app.

      • पक्का करें कि आपने वही बंडल आईडी डाला हो जो आपने Firebase प्रोजेक्ट में Firebase Apple ऐप्लिकेशन बनाते समय दिया था. बंडल आईडी की वैल्यू केस-सेंसिटिव होती है.

      • App Check के लिए, हर बंडल आईडी सिर्फ़ एक reCAPTCHA कुंजी से जुड़ा हो सकता है.

      Android

      Android टाइप का पासकोड बनाएं. साथ ही, अपने ऐप्लिकेशन का पैकेज नेम डालें. उदाहरण के लिए, com.example.my_app.

      • पक्का करें कि आपने वही पैकेज नाम डाला हो जो आपने Firebase प्रोजेक्ट में Firebase Android ऐप्लिकेशन बनाते समय डाला था. पैकेज के नाम की वैल्यू केस-सेंसिटिव होती है.

      • App Check के लिए, हर पैकेज का नाम सिर्फ़ एक reCAPTCHA पासकोड से जुड़ा हो सकता है.

      वेब

      वेब टाइप की कुंजी बनाएं. इसके बाद, अपने वेब ऐप्लिकेशन के लिए हर डोमेन तय करें.

      • App Check ऐसे वेब ऐप्लिकेशन के साथ काम नहीं करता जो 250 से ज़्यादा डोमेन पर काम करते हैं.

      • localhost को कभी भी reCAPTCHA कुंजी के डोमेन के तौर पर न जोड़ें. इस कुंजी को प्रोडक्शन में डिप्लॉय किया गया है या डिप्लॉय किया जाना है.

      • "चेकबॉक्स चैलेंज का इस्तेमाल करें" विकल्प को अनचेक करें.

      ज़्यादा जानकारी के लिए, स्कोर के आधार पर reCAPTCHA कुंजियां बनाना लेख पढ़ें.

    4. हर कुंजी को नोट करें. आपको उन्हें Firebase कंसोल में रजिस्ट्रेशन फ़्लो में जोड़ना होगा.

  3. Firebase console में, सुरक्षा > App Check पर जाएं.

  4. ऐप्लिकेशन टैब में जाकर, टारगेट प्लैटफ़ॉर्म पर मौजूद अपने हर ऐप्लिकेशन को रजिस्टर करें, ताकि reCAPTCHA Enterprise की सेवा देने वाली कंपनी के साथ App Check का इस्तेमाल किया जा सके. आपको Google Cloud कंसोल में मिली कुंजी देनी होगी.

  5. ज़रूरी नहीं: टोकन का टाइम टू लिव (टीटीएल) सेट करें.

    ऐप्लिकेशन रजिस्ट्रेशन सेटिंग में, सेवा देने वाली कंपनी की ओर से जारी किए गए App Check टोकन के लिए, टाइम टू लिव (टीटीएल) को कस्टम पर सेट करें. टीटीएल को 30 मिनट से लेकर सात दिनों के बीच की किसी भी वैल्यू पर सेट किया जा सकता है. इस वैल्यू को बदलते समय, इन बातों का ध्यान रखें:

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

    ज़्यादातर ऐप्लिकेशन के लिए, टीटीएल की डिफ़ॉल्ट वैल्यू एक घंटा सही होती है. ध्यान दें कि App Check लाइब्रेरी, टीटीएल की अवधि के आधे समय में टोकन रीफ़्रेश करती है.

  6. ज़रूरी नहीं: ऐडवांस सेटिंग कॉन्फ़िगर करें.

  7. सेव करें पर क्लिक करें.

(ज़रूरी नहीं) ऐडवांस सेटिंग कॉन्फ़िगर करना

जब कोई उपयोगकर्ता आपका ऐप्लिकेशन खोलता है, तो reCAPTCHA Enterprise मुख्य पोज़ के हिसाब से उपयोगकर्ता के इंटरैक्शन के जोखिम का आकलन करता है. इसके बाद, 0.0 से 1.0 के बीच का स्कोर दिखाता है. यह स्कोर 0.1 के अंतर में होता है.

  • 0.0 स्कोर का मतलब है कि इंटरैक्शन से ज़्यादा जोखिम है और यह धोखाधड़ी वाला हो सकता है.
  • स्कोर 1.0 का मतलब है कि इंटरैक्शन से कम जोखिम है और यह बहुत हद तक सही है.

App Check की मदद से, ऐप्लिकेशन के जोखिम का थ्रेशोल्ड कॉन्फ़िगर किया जा सकता है. इससे, इस जोखिम के लिए अपनी सीमा तय की जा सकती है.

ज़्यादातर इस्तेमाल के मामलों के लिए, थ्रेशोल्ड की डिफ़ॉल्ट वैल्यू 0.5 इस्तेमाल करने का सुझाव दिया जाता है. अगर आपको इस्तेमाल के उदाहरण के हिसाब से इस वैल्यू में बदलाव करना है, तो Firebase Console में जाकर, अपने हर ऐप्लिकेशन के लिए इस वैल्यू को कॉन्फ़िगर किया जा सकता है. इसके लिए, सुरक्षा > App Check पर जाएं. नीचे दिए गए, ऐप्लिकेशन के जोखिम थ्रेशोल्ड को कॉन्फ़िगर करने से जुड़ी कुछ अहम बातों को बड़ा करके उनकी समीक्षा करना न भूलें.

2. अपने ऐप्लिकेशन में App Check प्लगिन जोड़ना

reCAPTCHA Enterprise प्रोवाइडर का इस्तेमाल करने के लिए, आपको इससे जुड़ा App Check प्लगिन जोड़ना होगा.

  1. प्लगिन इंस्टॉल करने के लिए, अपने Flutter प्रोजेक्ट के रूट से यह कमांड चलाएं:

    flutter pub add firebase_app_check
    
  2. यह प्रोसेस पूरी होने के बाद, अपने Flutter प्रोजेक्ट को फिर से बनाएं:

    flutter run
    

3. App Check शुरू करें

अपने ऐप्लिकेशन में, Firebase की किसी भी अन्य सेवा का इस्तेमाल करने से पहले, आपको App Check को शुरू करना होगा.

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_app_check/firebase_app_check.dart';
import 'firebase_options.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
  await FirebaseAppCheck.instance.activate(
    providerWeb: ReCaptchaEnterpriseProvider(WEB_SITE_KEY),
    providerAndroid: const AndroidReCaptchaProvider(ANDROID_SITE_KEY),
    providerApple: const AppleReCaptchaProvider(IOS_SITE_KEY),
  );
  runApp(App());
}

4. मेट्रिक मॉनिटर करना और उल्लंघन ठीक करने के तरीके लागू करना

अपने ऐप्लिकेशन में App Check सेट अप करने के बाद, अपडेट किए गए ऐप्लिकेशन को उपयोगकर्ताओं के लिए रिलीज़ करें.

अपडेट किया गया क्लाइंट ऐप्लिकेशन, Firebase को की जाने वाली हर रिक्वेस्ट के साथ App Check टोकन भेजना शुरू कर देगा. हालांकि, App Check लागू होने तक, App Check अमान्य टोकन वाले अनुरोधों को ब्लॉक नहीं करेगा.

मेट्रिक मॉनिटर करना

नीति उल्लंघन ठीक करने के लिए कार्रवाई लागू करने से पहले, पक्का करें कि ऐसा करने से, आपके मौजूदा असली उपयोगकर्ताओं को कोई परेशानी न हो. हालांकि, अगर आपको लगता है कि आपके ऐप्लिकेशन के संसाधनों का संदिग्ध तरीके से इस्तेमाल किया जा रहा है, तो आपको नीति उल्लंघन ठीक करने के लिए, जल्द कार्रवाई करने की सुविधा चालू करनी चाहिए.

यह फ़ैसला लेने के लिए, इस्तेमाल की जा रही सेवाओं के लिए App Check मेट्रिक देखी जा सकती हैं:

App Check लागू करने की सुविधा चालू करना

जब आपको यह पता चल जाए कि App Check से आपके उपयोगकर्ताओं पर क्या असर पड़ेगा और आप आगे बढ़ने के लिए तैयार हों, तो App Check को लागू करने की सुविधा चालू करें:

डीबग एनवायरमेंट में App Check का इस्तेमाल करना

App Check कुछ एनवायरमेंट को अमान्य के तौर पर क्लासिफ़ाई करता है. जैसे, डेवलपमेंट के दौरान एम्युलेटर / सिम्युलेटर या लोकल होस्ट से किए गए अनुरोध या लगातार इंटिग्रेशन (सीआई) एनवायरमेंट से किए गए अनुरोध.

App Check लागू होने के बाद, इन एनवायरमेंट में अपने ऐप्लिकेशन को चलाने के लिए, आपको अपने ऐप्लिकेशन का एक डीबग बिल्ड बनाना होगा. इसमें प्रोडक्शन अटेस्टेशन प्रोवाइडर के बजाय, App Check डीबग प्रोवाइडर का इस्तेमाल किया जाता है.

ज़्यादा जानकारी के लिए, Flutter ऐप्लिकेशन में डीबग प्रोवाइडर के साथ App Check का इस्तेमाल करना लेख पढ़ें.

कीमत

App Check आपकी ओर से एक आकलन बनाता है, ताकि उपयोगकर्ता के रिस्पॉन्स टोकन की पुष्टि की जा सके. ऐसा तब होता है, जब आपका ऐप्लिकेशन अपने App Check टोकन को रीफ़्रेश करता है. बिना किसी शुल्क के उपलब्ध कोटे से ज़्यादा आकलन बनाने पर, आपके Firebase प्रोजेक्ट से शुल्क लिया जाएगा. ज़्यादा जानकारी के लिए, reCAPTCHA की कीमत देखें.

डिफ़ॉल्ट रूप से, आपका ऐप्लिकेशन इस टोकन को हर एक घंटे में दो बार रीफ़्रेश करेगा. App Check टोकन को कितनी बार रीफ़्रेश किया जाए, यह कंट्रोल करने के लिए टोकन का टीटीएल कॉन्फ़िगर करें. इससे यह भी कंट्रोल किया जा सकेगा कि नए आकलन कितनी बार बनाए जाएं.