बिना अनुमति वाले क्लाइंट से 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 BoM v34.14.0 या इसके बाद का वर्शन (App Check v19.1.0 या इसके बाद का वर्शन) | वेब v12.14.0 या इसके बाद का वर्शन | Flutter v4.15.0 या इसके बाद का वर्शन (App Check v4.10.0 या इसके बाद का वर्शन) | Unity v13.12.0 या इसके बाद का वर्शन

डिफ़ॉल्ट रूप से, 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 टूल, कैश मेमोरी में सेव करता है. साथ ही, इन्हें अनुरोधों के साथ भेजा जाता है. ये सीमित इस्तेमाल वाले टोकन डिफ़ॉल्ट सेशन टोकन की तुलना में थोड़ी ज़्यादा सुरक्षा देते हैं. ऐसा इसलिए, क्योंकि सीमित इस्तेमाल वाले टोकन की टीटीएल, सेशन टोकन की तुलना में कम होती है. यह सिर्फ़ पांच मिनट होती है और इसे अडजस्ट नहीं किया जा सकता.

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

हालांकि, आने वाले समय में 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

    // ...
    
    // During instantiation, enable usage of limited-use tokens
    var ai = FirebaseAI.GetInstance(
      useLimitedUseAppCheckTokens: true
    );
    
    // ...
    

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 मॉडल को ऐक्सेस करने वाले एपीआई को अनुरोध भेजने से पहले की जाती है.