बिना अनुमति वाले क्लाइंट से API को सुरक्षित रखने के लिए, Firebase App Check लागू करना

मोबाइल या वेब ऐप्लिकेशन से सीधे एपीआई को कॉल करने पर (उदाहरण के लिए, जनरेटिव एआई मॉडल को ऐक्सेस करने की अनुमति देने वाले एपीआई), एपीआई का गलत इस्तेमाल किया जा सकता है. ऐसा, बिना अनुमति वाले क्लाइंट कर सकते हैं. इन एपीआई को सुरक्षित रखने के लिए, Firebase App Check का इस्तेमाल किया जा सकता है. इससे यह पुष्टि की जा सकती है कि एपीआई के लिए आने वाले सभी कॉल , आपके असली ऐप्लिकेशन से किए गए हैं.

Firebase AI Logic प्रॉक्सी गेटवे उपलब्ध कराता है. इसकी मदद से, Firebase App Check के साथ इंटिग्रेट किया जा सकता है. साथ ही, अपने मोबाइल और वेब ऐप्लिकेशन से कॉल किए जाने वाले जनरेटिव एआई मॉडल के एपीआई को सुरक्षित रखा जा सकता है. App Check के साथ Firebase AI Logic SDK टूल का इस्तेमाल करने पर, हमारे सभी कॉन्फ़िगरेशन काम करते हैं:

  • "Gemini API" के दोनों प्रोवाइडर सुरक्षित रहते हैं: Gemini Developer API और Vertex AI Gemini API.

  • Gemini मॉडल और Imagen मॉडल, दोनों के सभी काम करने वाले मॉडल सुरक्षित रहते हैं.

के काम करने के तरीके की खास जानकारीApp Check

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

  • अनुरोध, आपके असली ऐप्लिकेशन से किए गए हैं
  • अनुरोध, असली और छेड़छाड़ न किए गए डिवाइस से किए गए हैं

यह अटेस्टेशन, Firebase AI Logic SDK टूल का इस्तेमाल करके, आपके ऐप्लिकेशन के हर अनुरोध के साथ अटैच होता है. जब आप App Check लागू करने की सुविधा चालू करते हैं, तो मान्य अटेस्टेशन के बिना क्लाइंट से किए गए अनुरोधों को अस्वीकार कर दिया जाएगा. साथ ही, ऐसे ऐप्लिकेशन या प्लैटफ़ॉर्म से किए गए अनुरोधों को भी अस्वीकार कर दिया जाएगा जिन्हें आपने अनुमति नहीं दी है.

हमारा सुझाव है कि जब आप App Check सेट अप करें, तो आने वाली बेहतर सुरक्षा के लिए तैयारी करें (जिसे रीप्ले सुरक्षा कहा जाता है).

के बारे में ज़्यादा जानकारी, उसके App Check में देखी जा सकती है. इसमें, उसके कोटे और सीमाएं भी शामिल हैं.

उपलब्ध प्रोवाइडर और लागू करने के निर्देश

App Check दस्तावेज़ में, अटेस्टेशन प्रोवाइडर के बारे में जानकारी के साथ-साथ, उन्हें लागू करने के निर्देश भी दिए गए हैं.

  1. कोई डिफ़ॉल्ट प्रोवाइडर चुनें और यहां दिए गए लिंक पर जाकर, उसे लागू करने के निर्देशों का पालन करें:

    ध्यान दें कि अगर आपकी ज़रूरतों के हिसाब से कोई भी डिफ़ॉल्ट प्रोवाइडर सही नहीं है, तो कस्टम प्रोवाइडर लागू किया जा सकता है . यह प्रोवाइडर, तीसरे पक्ष के अटेस्टेशन प्रोवाइडर या अटेस्टेशन की अपनी तकनीकों का इस्तेमाल करता है.

  2. (सुझाया जाता है) App Check की बेहतर सुरक्षा के लिए तैयारी करें App Check (जिसे रीप्ले सुरक्षा कहा जाता है).

  3. (ज़रूरी है) असली उपयोगकर्ताओं के लिए अपना ऐप्लिकेशन रिलीज़ करने से पहले, को लागू करने की सुविधा चालू करेंApp Check.

Flutter के लिए, इंस्टैंशिएशन से जुड़ी खास ज़रूरी शर्तें

इस पेज पर, प्रोवाइडर के हिसाब से कॉन्टेंट और कोड देखने के लिए, अपने Gemini API प्रोवाइडर पर क्लिक करें.

Flutter ऐप्लिकेशन में Firebase AI Logic के साथ App Check का इस्तेमाल करते समय, आपको App Check को इंस्टैंशिएशन के दौरान साफ़ तौर पर पास करना होगा. जैसे:

// ...

final ai = await FirebaseAI.googleAI(
  appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
);

// ...

बेहतर सुरक्षा के लिए तैयारी करना

सीमित इस्तेमाल वाले टोकन का इस्तेमाल करने की सुविधा, Apple प्लैटफ़ॉर्म (v12.2.0+), Android (v17.2.0+, BoM v34.2.0+), वेब (v12.3.0+), और Flutter (v3.2.0+, BoM v4.2.0+) के लिए उपलब्ध है. Unity के लिए यह सुविधा जल्द ही उपलब्ध होगी.

डिफ़ॉल्ट रूप से, App Check सेशन टोकन का इस्तेमाल करता है. इनकी लाइफ़टाइम (टीटीएल) को कॉन्फ़िगर किया जा सकता है. यह 30 मिनट से लेकर सात दिनों तक हो सकती है. इन सेशन टोकन को App Check SDK टूल कैश करता है और आपके ऐप्लिकेशन से किए गए अनुरोधों के साथ भेजता है.

आने वाले समय में, App Check में Firebase AI Logic के लिए रीप्ले प्रोटेक्शन की सुविधा चालू करने का विकल्प जोड़ा जाएगा. यह सुविधा, App Check की ओर से पहले से ही कुछ अन्य संसाधनों के लिए उपलब्ध है. रीप्ले प्रोटेक्शन की सुविधा चालू होने पर, सुरक्षा को इन तरीकों से बेहतर बनाया जाता है:

  • App Check सिर्फ़ उन अनुरोधों की अनुमति देगा जिनके साथ खास तरह का टोकन होगा जिसे सीमित इस्तेमाल वाला टोकन कहते हैं.

  • सीमित इस्तेमाल वाले टोकन की पुष्टि हो जाने के बाद, टोकन का इस्तेमाल कर लिया जाता है, ताकि उसका इस्तेमाल सिर्फ़ एक बार किया जा सके. इससे, रीप्ले अटैक को रोका जा सकता है.

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

अगर अभी अपने ऐप्लिकेशन में सीमित इस्तेमाल वाले टोकन का इस्तेमाल करने की सुविधा चालू की जाती है, तो इन बातों का ध्यान रखें. ऐसा तब किया जा सकता है, जब रीप्ले प्रोटेक्शन की सुविधा उपलब्ध न हो:

  • App Check App Check, मान्य सेशन टोकन के इस्तेमाल को ब्लॉक नहीं करता.

  • सेशन टोकन की तरह, सीमित इस्तेमाल वाले टोकन को App Check SDK टूल कैश करता है और अनुरोधों के साथ भेजता है. सीमित इस्तेमाल वाले ये टोकन डिफ़ॉल्ट सेशन टोकन की तुलना में थोड़ी ज़्यादा सुरक्षा देते हैं. ऐसा इसलिए, क्योंकि सीमित इस्तेमाल वाले टोकन का टीटीएल, सेशन टोकन की तुलना में कम होता है . यह सिर्फ़ पांच मिनट होता है और इसे अडजस्ट नहीं किया जा सकता.

  • भले ही, सीमित इस्तेमाल वाले टोकन पांच मिनट के लिए मान्य हों, लेकिन SDK टूल हर अनुरोध के लिए नया टोकन जनरेट करेगा. इस प्रोसेस की वजह से, आपके अनुरोध में थोड़ी देरी हो सकती है.

हालांकि, आने वाले समय में Firebase AI Logic के लिए रीप्ले प्रोटेक्शन की सुविधा उपलब्ध होने पर (और इसे चालू करने पर), सेशन टोकन का इस्तेमाल और सीमित इस्तेमाल वाले टोकन का फिर से इस्तेमाल नहीं किया जा सकेगा. ध्यान दें कि हर अनुरोध के लिए नया टोकन जनरेट करने में लगने वाली अतिरिक्त देरी अब भी होगी.

सीमित इस्तेमाल वाले टोकन का इस्तेमाल करने की सुविधा चालू करना

इस पेज पर, प्रोवाइडर के हिसाब से कॉन्टेंट और कोड देखने के लिए, अपने Gemini API प्रोवाइडर पर क्लिक करें.

सीमित इस्तेमाल वाले टोकन का इस्तेमाल करने की सुविधा चालू करने का तरीका यहां बताया गया है:

  1. को लागू करें App Check और पक्का करें कि आपने अपने ऐप्लिकेशन के लिए, को लागू करने की सुविधा चालू की हो .App Check

  2. अपने ऐप्लिकेशन में इंस्टैंशिएशन के दौरान, useLimitedUseAppCheckTokens पैरामीटर को true पर सेट करके, सीमित इस्तेमाल वाले टोकन का इस्तेमाल करने की सुविधा चालू करें:

    Swift

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens
    let ai = FirebaseAI.firebaseAI(
      backend: .googleAI(),
      useLimitedUseAppCheckTokens: true
    )
    
    // ...
    
    

    Kotlin

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens
    val ai = Firebase.ai(
      backend = GenerativeBackend.googleAI(),
      useLimitedUseAppCheckTokens = true
    )
    
    // ...
    
    

    Java

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens
    FirebaseAI ai = FirebaseAI.getInstance(
      /* backend: */ GenerativeBackend.googleAI(),
      /* useLimitedUseAppCheckTokens: */ true
    );
    
    // ...
    
    

    Web

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens
    const ai = getAI(firebaseApp, {
      backend: new GoogleAIBackend(),
      useLimitedUseAppCheckTokens: true
    });
    
    // ...
    
    

    Dart

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens
    final ai = await FirebaseAI.googleAI(
      appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
      useLimitedUseAppCheckTokens: true,
    );
    
    // ...
    
    

    Unity

    Unity इंजन वाले गेम में, सीमित इस्तेमाल वाले टोकन का इस्तेमाल करने की सुविधा, आने वाले समय में उपलब्ध होगी. जल्द ही वापस देखें!

Firebase AI Logic, App Check के साथ कैसे इंटिग्रेट होता है, यह समझना

Firebase AI Logic SDK टूल का इस्तेमाल करने के लिए, आपके Firebase प्रोजेक्ट में Firebase AI Logic API (firebasevertexai.googleapis.com) चालू होना चाहिए. ऐसा इसलिए, क्योंकि Firebase AI Logic SDK टूल से किए गए अनुरोध सबसे पहले Firebase AI Logic सर्वर को भेजे जाते हैं. यह सर्वर, प्रॉक्सी गेटवे के तौर पर काम करता है. यहां, Firebase App Check पुष्टि की जाती है. यह पुष्टि, आपके चुने गए "Gemini API" प्रोवाइडर के बैकएंड और Gemini और Imagen मॉडल को ऐक्सेस करने वाले एपीआई को अनुरोध भेजने से पहले की जाती है.