क्लाउड फायरस्टोर सुरक्षा नियमों के साथ आरंभ करें

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

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

सुरक्षा नियम संस्करण 2

मई 2019 तक, क्लाउड फायरस्टोर सुरक्षा नियमों का संस्करण 2 अब उपलब्ध है। नियमों का संस्करण 2 पुनरावर्ती वाइल्डकार्ड के व्यवहार को बदल देता है {name=**} । यदि आप संग्रह समूह क्वेरीज़ का उपयोग करने की योजना बना रहे हैं तो आपको संस्करण 2 का उपयोग करना होगा। आपको rules_version = '2'; आपके सुरक्षा नियमों की पहली पंक्ति:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

लेखन नियम

आप अपने प्रोजेक्ट में डिफ़ॉल्ट डेटाबेस और प्रत्येक अतिरिक्त डेटाबेस के लिए बनाए गए डेटा मॉडल के अनुरूप क्लाउड फायरस्टोर सुरक्षा नियम लिखेंगे और प्रबंधित करेंगे।

सभी क्लाउड फायरस्टोर सुरक्षा नियमों में match विवरण शामिल होते हैं, जो आपके डेटाबेस में दस्तावेज़ों की पहचान करते हैं, और अभिव्यक्ति की allow , जो उन दस्तावेज़ों तक पहुंच को नियंत्रित करते हैं:

service cloud.firestore {
  match /databases/{database}/documents {
    match /<some_path>/ {
      allow read, write: if <some_condition>;
    }
  }
}

क्लाउड फायरस्टोर मोबाइल/वेब क्लाइंट लाइब्रेरी से प्रत्येक डेटाबेस अनुरोध का किसी भी डेटा को पढ़ने या लिखने से पहले आपके सुरक्षा नियमों के अनुसार मूल्यांकन किया जाता है। यदि नियम किसी भी निर्दिष्ट दस्तावेज़ पथ तक पहुंच से इनकार करते हैं, तो संपूर्ण अनुरोध विफल हो जाता है।

नीचे बुनियादी नियम सेटों के कुछ उदाहरण दिए गए हैं। हालाँकि ये नियम मान्य हैं, लेकिन इन्हें उत्पादन अनुप्रयोगों के लिए अनुशंसित नहीं किया गया है:

प्रमाणीकरण आवश्यक है

// Allow read/write access on all documents to any user signed in to the application
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

सभी को नकारें

// Deny read/write access to all users under any conditions
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

सभी को अनुमति दें

// Allow read/write access to all users under any conditions
// Warning: **NEVER** use this rule set in production; it allows
// anyone to overwrite your entire database.
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

उपरोक्त उदाहरणों में प्रयुक्त {document=**} पथ संपूर्ण डेटाबेस में किसी भी दस्तावेज़ से मेल खाता है। विशिष्ट डेटा पथों का मिलान करने और पदानुक्रमित डेटा के साथ काम करने का तरीका जानने के लिए सुरक्षा नियमों की संरचना के लिए मार्गदर्शिका जारी रखें।

परीक्षण नियम

क्लाउड फायरस्टोर एक नियम सिम्युलेटर प्रदान करता है जिसका उपयोग आप अपने नियमों का परीक्षण करने के लिए कर सकते हैं। आप फायरबेस कंसोल के क्लाउड फायरस्टोर अनुभाग में नियम टैब से सिम्युलेटर तक पहुंच सकते हैं।

नियम सिम्युलेटर आपको प्रमाणित और अप्रमाणित पढ़ने, लिखने और हटाने का अनुकरण करने देता है। जब आप एक प्रमाणित अनुरोध का अनुकरण करते हैं, तो आप विभिन्न प्रदाताओं से प्रमाणीकरण टोकन का निर्माण और पूर्वावलोकन कर सकते हैं। सिम्युलेटेड अनुरोध आपके संपादक में नियम-सेट के विरुद्ध चलते हैं, न कि आपके वर्तमान में तैनात नियम-सेट के विरुद्ध।

तैनाती नियम

इससे पहले कि आप अपने मोबाइल ऐप से क्लाउड फायरस्टोर का उपयोग शुरू कर सकें, आपको सुरक्षा नियम लागू करने होंगे। आप फायरबेस सीएलआई का उपयोग करके या क्लाउड फायरस्टोर प्रबंधन आरईएसटी एपीआई का उपयोग करके फायरबेस कंसोल में नियमों को तैनात कर सकते हैं।

क्लाउड फायरस्टोर सुरक्षा नियमों के अपडेट में नई क्वेरी और श्रोताओं को प्रभावित करने में एक मिनट तक का समय लग सकता है। हालाँकि, परिवर्तनों को पूरी तरह से प्रचारित करने और किसी भी सक्रिय श्रोता को प्रभावित करने में 10 मिनट तक का समय लग सकता है।

फायरबेस कंसोल का उपयोग करें

अपने प्रोजेक्ट में डिफ़ॉल्ट डेटाबेस के लिए नियमों के अपने पहले सेट को सेट अप और तैनात करने के लिए, फायरबेस कंसोल के क्लाउड फायरस्टोर अनुभाग में नियम टैब खोलें।

अपने नियम ऑनलाइन संपादक में लिखें, फिर प्रकाशित करें पर क्लिक करें।

फायरबेस सीएलआई का प्रयोग करें

आप फायरबेस सीएलआई का उपयोग करके भी नियम लागू कर सकते हैं। सीएलआई का उपयोग करने से आप अपने नियमों को अपने एप्लिकेशन कोड के साथ संस्करण नियंत्रण में रख सकते हैं और नियमों को अपनी मौजूदा तैनाती प्रक्रिया के हिस्से के रूप में तैनात कर सकते हैं।

// Set up Firestore in your project directory, creates a .rules file
firebase init firestore

// Edit the generated .rules file to your desired security rules
// ...

// Deploy rules for all configured databases
firebase deploy --only firestore

क्लाउड स्टोरेज के लिए सुरक्षा बढ़ाएँ

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

अगले कदम