पसंद के मुताबिक ऐप्लिकेशन जांच की सेवा देने वाली कंपनी लागू करें

App Check में कई सेवा देने वाली कंपनियों के लिए, पहले से ही सहायता उपलब्ध है: Apple प्लैटफ़ॉर्म पर DeviceCheck और AppAttest, Android पर Play Integrity, और वेब ऐप्लिकेशन में reCAPTCHA Enterprise (खास जानकारी). ये ऐसे सप्लायर हैं जिनके बारे में ज़्यादातर डेवलपर को पता होता है. इनसे ज़्यादातर डेवलपर की ज़रूरतें पूरी हो सकती हैं. हालांकि, आपके पास अपनी पसंद के मुताबिक App Check सेवा देने वाली कंपनियों को लागू करने का विकल्प भी है. कस्टम प्रोवाइडर का इस्तेमाल तब ज़रूरी होता है, जब:

  • आपको डिवाइस में पहले से मौजूद ईमेल सेवा देने वाली कंपनी के बजाय, किसी दूसरी कंपनी की सेवा का इस्तेमाल करना है.

  • आपको डिवाइस में पहले से मौजूद सेवा देने वाली कंपनियों का इस्तेमाल, उन तरीकों से करना है जिन पर यह सुविधा काम नहीं करती.

  • आपको Apple, Android, और वेब के अलावा, दूसरे प्लैटफ़ॉर्म का इस्तेमाल करने वाले डिवाइसों की पुष्टि करनी है. उदाहरण के लिए, डेस्कटॉप ओएस या इंटरनेट-ऑफ़-थिंग्स डिवाइसों के लिए App Check प्रोवाइडर बनाए जा सकते हैं.

  • आपको किसी भी प्लैटफ़ॉर्म पर, पुष्टि करने की अपनी तकनीकें लागू करनी हैं.

खास जानकारी

कस्टम App Check प्रोवाइडर लागू करने के लिए, आपको एक सुरक्षित बैकएंड एनवायरमेंट की ज़रूरत होगी, जो Node.js Firebase Admin SDK को चला सके. यह Cloud Functions, Cloud Run जैसे कंटेनर प्लैटफ़ॉर्म या आपका सर्वर हो सकता है.

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

आम तौर पर, इस सेवा को REST या gRPC एंडपॉइंट के तौर पर एक्सपोज़ किया जाता है. हालांकि, यह जानकारी आपके ऊपर है.

टोकन हासिल करने वाला एंडपॉइंट बनाना

  1. Admin SDK इंस्टॉल और शुरू करें.

  2. नेटवर्क से ऐक्सेस किया जा सकने वाला ऐसा एंडपॉइंट बनाएं जिसे आपके क्लाइंट से पुष्टि करने का डेटा मिल सके. उदाहरण के लिए, Cloud Functions का इस्तेमाल करके:

    // Create endpoint at https://example-app.cloudfunctions.net/fetchAppCheckToken
    exports.fetchAppCheckToken = functions.https.onRequest((request, response) => {
      // ...
    });
    
  3. पुष्टि करने के लिए इस्तेमाल किए जाने वाले डेटा का आकलन करने वाले एंडपॉइंट लॉजिक में जोड़ें. यह आपके कस्टम App Check प्रोवाइडर का मुख्य लॉजिक है. इसे आपको खुद लिखना होगा.

  4. अगर आपको लगता है कि क्लाइंट मान्य है, तो Admin SDK का इस्तेमाल करके App Check टोकन बनाएं और उसे क्लाइंट को भेजें. साथ ही, टोकन के खत्म होने का समय भी बताएं:

    const admin = require('firebase-admin');
    admin.initializeApp();
    
    // ...
    
    admin.appCheck().createToken(appId)
        .then(function (appCheckToken) {
          // Token expires in an hour.
          const expiresAt = Math.floor(Date.now() / 1000) + 60 * 60;
    
          // Return appCheckToken and expiresAt to the client.
        })
       .catch(function (err) {
         console.error('Unable to create App Check token.');
         console.error(err);
       });
    

    अगर क्लाइंट की पुष्टि नहीं की जा सकती, तो गड़बड़ी का मैसेज दिखाएं. उदाहरण के लिए, एचटीटीपी 403 गड़बड़ी का मैसेज दिखाएं.

  5. ज़रूरी नहीं: अपने कस्टम प्रोवाइडर से जारी किए गए App Check टोकन के लिए टाइम-टू-लाइव (टीटीएल) सेट करें. इसके लिए, createToken() को AppCheckTokenOptions ऑब्जेक्ट पास करें. टीटीएल को 30 मिनट से लेकर 7 दिन के बीच की किसी भी वैल्यू पर सेट किया जा सकता है. इस वैल्यू को सेट करते समय, इन बातों का ध्यान रखें:

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

    ज़्यादातर ऐप्लिकेशन के लिए, एक घंटे का डिफ़ॉल्ट टीटीएल सही होता है.

अगले चरण

अब आपने कस्टम प्रोवाइडर का सर्वर-साइड लॉजिक लागू कर लिया है. अब Apple, Android, और वेब क्लाइंट से इसका इस्तेमाल करने का तरीका जानें.