Cloud Firestore Security Rules সাহায্যে, আপনি পরিকাঠামো পরিচালনা বা সার্ভার-সাইড প্রমাণীকরণ এবং অনুমোদন কোড না লিখেই একটি দুর্দান্ত ব্যবহারকারীর অভিজ্ঞতা তৈরিতে ফোকাস করতে পারেন।
নিরাপত্তা বিধিগুলি একটি সহজ অথচ অভিব্যক্তিপূর্ণ বিন্যাসে অ্যাক্সেস নিয়ন্ত্রণ এবং ডেটা বৈধতা প্রদান করে। ব্যবহারকারী-ভিত্তিক এবং ভূমিকা-ভিত্তিক অ্যাক্সেস সিস্টেম তৈরি করতে যা আপনার ব্যবহারকারীদের ডেটা সুরক্ষিত রাখে, আপনাকে Cloud Firestore Security Rules সাথে ফায়ারবেস প্রমাণীকরণ ব্যবহার করতে হবে।
নিরাপত্তা নিয়ম সংস্করণ 2
মে 2019 থেকে, Cloud Firestore সুরক্ষা নিয়মের সংস্করণ 2 এখন উপলব্ধ। নিয়মের সংস্করণ 2 পুনরাবৃত্ত ওয়াইল্ডকার্ডের আচরণ পরিবর্তন করে {name=**}
। আপনি যদি সংগ্রহ গ্রুপের প্রশ্নগুলি ব্যবহার করার পরিকল্পনা করেন তবে আপনাকে অবশ্যই সংস্করণ 2 ব্যবহার করতে হবে৷ rules_version = '2';
আপনার নিরাপত্তা নিয়মের প্রথম লাইন:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
লেখার নিয়ম
আপনি ডিফল্ট ডাটাবেস এবং আপনার প্রকল্পের প্রতিটি অতিরিক্ত ডাটাবেসের জন্য তৈরি করা ডেটা মডেল অনুসারে Cloud Firestore Security Rules লিখবেন এবং পরিচালনা করবেন।
সমস্ত Cloud Firestore Security Rules match
স্টেটমেন্ট নিয়ে গঠিত, যা আপনার ডাটাবেসের নথিগুলি সনাক্ত করে এবং অভিব্যক্তিগুলিকে allow
, যা সেই নথিগুলিতে অ্যাক্সেস নিয়ন্ত্রণ করে:
service cloud.firestore {
match /databases/{database}/documents {
match /<some_path>/ {
allow read, write: if <some_condition>;
}
}
}
একটি Cloud Firestore মোবাইল/ওয়েব ক্লায়েন্ট লাইব্রেরি থেকে প্রতিটি ডেটাবেস অনুরোধ কোনো ডেটা পড়ার বা লেখার আগে আপনার নিরাপত্তা নিয়মের বিরুদ্ধে মূল্যায়ন করা হয়। যদি নিয়মগুলি নির্দিষ্ট নথির কোনো পাথের অ্যাক্সেস অস্বীকার করে, তাহলে সম্পূর্ণ অনুরোধ ব্যর্থ হয়।
নীচে মৌলিক নিয়ম সেটের কিছু উদাহরণ রয়েছে। যদিও এই নিয়মগুলি বৈধ, তারা উত্পাদন অ্যাপ্লিকেশনের জন্য সুপারিশ করা হয় না:
প্রমাণ প্রয়োজন
// 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=**}
পথটি সমগ্র ডাটাবেসের যেকোনো নথির সাথে মেলে। সুনির্দিষ্ট ডেটা পাথের সাথে কীভাবে মেলাতে হয় এবং শ্রেণিবদ্ধ ডেটার সাথে কাজ করতে হয় তা শিখতে সুরক্ষা নিয়ম গঠনের জন্য গাইডটিতে চালিয়ে যান।
পরীক্ষার নিয়ম
Cloud Firestore একটি নিয়ম সিমুলেটর প্রদান করে যা আপনি আপনার রুলসেট পরীক্ষা করতে ব্যবহার করতে পারেন। আপনি ফায়ারবেস কনসোলের Cloud Firestore বিভাগে নিয়ম ট্যাব থেকে সিমুলেটরটি অ্যাক্সেস করতে পারেন।
নিয়ম সিমুলেটর আপনাকে প্রমাণীকৃত এবং অননুমোদিত পড়া, লিখতে এবং মুছে ফেলার অনুকরণ করতে দেয়। আপনি যখন একটি প্রমাণীকৃত অনুরোধ অনুকরণ করেন, আপনি বিভিন্ন প্রদানকারীর থেকে প্রমাণীকরণ টোকেন তৈরি করতে এবং পূর্বরূপ দেখতে পারেন। সিমুলেটেড অনুরোধগুলি আপনার সম্পাদকের রুলসেটের বিরুদ্ধে চলে, আপনার বর্তমানে নিয়োজিত নিয়মসেট নয়।
বিধি মোতায়েন
আপনি আপনার মোবাইল অ্যাপ থেকে Cloud Firestore ব্যবহার শুরু করার আগে, আপনাকে নিরাপত্তা নিয়ম স্থাপন করতে হবে। আপনি Firebase কনসোলে, Firebase CLI ব্যবহার করে বা Cloud Firestore পরিচালনা REST API-এর মাধ্যমে নিয়মগুলি স্থাপন করতে পারেন৷
Cloud Firestore Security Rules আপডেটগুলি নতুন প্রশ্ন এবং শ্রোতাদের প্রভাবিত করতে এক মিনিট পর্যন্ত সময় নিতে পারে৷ যাইহোক, পরিবর্তনগুলি সম্পূর্ণরূপে প্রচার করতে এবং যেকোনো সক্রিয় শ্রোতাদের প্রভাবিত করতে 10 মিনিট পর্যন্ত সময় লাগতে পারে।
ফায়ারবেস কনসোল ব্যবহার করুন
আপনার প্রজেক্টের ডিফল্ট ডাটাবেসের জন্য আপনার প্রথম সেটের নিয়ম সেট আপ করতে এবং স্থাপন করতে, Firebase কনসোলের Cloud Firestore বিভাগে নিয়ম ট্যাবটি খুলুন।
অনলাইন সম্পাদকে আপনার নিয়মগুলি লিখুন, তারপরে প্রকাশ করুন ক্লিক করুন৷
Firebase CLI ব্যবহার করুন
এছাড়াও আপনি Firebase CLI ব্যবহার করে নিয়ম স্থাপন করতে পারেন। CLI ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশন কোড সহ আপনার নিয়মগুলিকে সংস্করণ নিয়ন্ত্রণে রাখতে পারবেন এবং আপনার বিদ্যমান স্থাপনার প্রক্রিয়ার অংশ হিসাবে নিয়মগুলি স্থাপন করতে পারবেন।
// 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
Cloud Storage জন্য নিরাপত্তা বাড়ান
আপনার অ্যাপগুলি Cloud Firestore শক্তিশালী ডাটাবেস বৈশিষ্ট্য এবং Cloud Storage ফাইল স্টোরেজ এবং পরিচালনা বৈশিষ্ট্যগুলি থেকে উপকৃত হবে৷ একসাথে ব্যবহৃত, এই পণ্যগুলি আরও শক্তিশালী অ্যাপ সুরক্ষা প্রদান করে, যেহেতু Cloud Firestore উভয় পণ্যের জন্য ফায়ারবেস সুরক্ষা নিয়ম দ্বারা ব্যবহারযোগ্য অনুমোদনের প্রয়োজনীয়তাগুলি ক্যাপচার করতে পারে৷ আরও তথ্যের জন্য, Cloud Storage নির্দেশিকা দেখুন।
পরবর্তী পদক্ষেপ
- নিরাপত্তা নিয়ম কিভাবে গঠন করতে হয় তা জানুন।
- কাস্টম নিরাপত্তা নিয়ম শর্তাবলী লিখুন.
- নিরাপত্তা নিয়ম রেফারেন্স পড়ুন.
Cloud Firestore Security Rules সাহায্যে, আপনি পরিকাঠামো পরিচালনা বা সার্ভার-সাইড প্রমাণীকরণ এবং অনুমোদন কোড না লিখেই একটি দুর্দান্ত ব্যবহারকারীর অভিজ্ঞতা তৈরিতে ফোকাস করতে পারেন।
নিরাপত্তা বিধিগুলি একটি সহজ অথচ অভিব্যক্তিপূর্ণ বিন্যাসে অ্যাক্সেস নিয়ন্ত্রণ এবং ডেটা বৈধতা প্রদান করে। ব্যবহারকারী-ভিত্তিক এবং ভূমিকা-ভিত্তিক অ্যাক্সেস সিস্টেম তৈরি করতে যা আপনার ব্যবহারকারীদের ডেটা সুরক্ষিত রাখে, আপনাকে Cloud Firestore Security Rules সাথে ফায়ারবেস প্রমাণীকরণ ব্যবহার করতে হবে।
নিরাপত্তা নিয়ম সংস্করণ 2
মে 2019 থেকে, Cloud Firestore সুরক্ষা নিয়মের সংস্করণ 2 এখন উপলব্ধ। নিয়মের সংস্করণ 2 পুনরাবৃত্ত ওয়াইল্ডকার্ডের আচরণ পরিবর্তন করে {name=**}
। আপনি যদি সংগ্রহ গ্রুপের প্রশ্নগুলি ব্যবহার করার পরিকল্পনা করেন তবে আপনাকে অবশ্যই সংস্করণ 2 ব্যবহার করতে হবে৷ rules_version = '2';
আপনার নিরাপত্তা নিয়মের প্রথম লাইন:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
লেখার নিয়ম
আপনি ডিফল্ট ডাটাবেস এবং আপনার প্রকল্পের প্রতিটি অতিরিক্ত ডাটাবেসের জন্য তৈরি করা ডেটা মডেল অনুসারে Cloud Firestore Security Rules লিখবেন এবং পরিচালনা করবেন।
সমস্ত Cloud Firestore Security Rules match
স্টেটমেন্ট নিয়ে গঠিত, যা আপনার ডাটাবেসের নথিগুলি সনাক্ত করে এবং অভিব্যক্তিগুলিকে allow
, যা সেই নথিগুলিতে অ্যাক্সেস নিয়ন্ত্রণ করে:
service cloud.firestore {
match /databases/{database}/documents {
match /<some_path>/ {
allow read, write: if <some_condition>;
}
}
}
একটি Cloud Firestore মোবাইল/ওয়েব ক্লায়েন্ট লাইব্রেরি থেকে প্রতিটি ডেটাবেস অনুরোধ কোনো ডেটা পড়ার বা লেখার আগে আপনার নিরাপত্তা নিয়মের বিরুদ্ধে মূল্যায়ন করা হয়। যদি নিয়মগুলি নির্দিষ্ট নথির কোনো পাথের অ্যাক্সেস অস্বীকার করে, তাহলে সম্পূর্ণ অনুরোধ ব্যর্থ হয়।
নীচে মৌলিক নিয়ম সেটের কিছু উদাহরণ রয়েছে। যদিও এই নিয়মগুলি বৈধ, তারা উত্পাদন অ্যাপ্লিকেশনের জন্য সুপারিশ করা হয় না:
প্রমাণ প্রয়োজন
// 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=**}
পথটি সমগ্র ডাটাবেসের যেকোনো নথির সাথে মেলে। সুনির্দিষ্ট ডেটা পাথের সাথে কীভাবে মেলাতে হয় এবং শ্রেণিবদ্ধ ডেটার সাথে কাজ করতে হয় তা শিখতে সুরক্ষা নিয়ম গঠনের জন্য গাইডটিতে চালিয়ে যান।
পরীক্ষার নিয়ম
Cloud Firestore একটি নিয়ম সিমুলেটর প্রদান করে যা আপনি আপনার রুলসেট পরীক্ষা করতে ব্যবহার করতে পারেন। আপনি ফায়ারবেস কনসোলের Cloud Firestore বিভাগে নিয়ম ট্যাব থেকে সিমুলেটরটি অ্যাক্সেস করতে পারেন।
নিয়ম সিমুলেটর আপনাকে প্রমাণীকৃত এবং অননুমোদিত পড়া, লিখতে এবং মুছে ফেলার অনুকরণ করতে দেয়। আপনি যখন একটি প্রমাণীকৃত অনুরোধ অনুকরণ করেন, আপনি বিভিন্ন প্রদানকারীর থেকে প্রমাণীকরণ টোকেন তৈরি করতে এবং পূর্বরূপ দেখতে পারেন। সিমুলেটেড অনুরোধগুলি আপনার সম্পাদকের রুলসেটের বিরুদ্ধে চলে, আপনার বর্তমানে নিয়োজিত নিয়মসেট নয়।
বিধি মোতায়েন
আপনি আপনার মোবাইল অ্যাপ থেকে Cloud Firestore ব্যবহার শুরু করার আগে, আপনাকে নিরাপত্তা নিয়ম স্থাপন করতে হবে। আপনি Firebase কনসোলে, Firebase CLI ব্যবহার করে বা Cloud Firestore পরিচালনা REST API-এর মাধ্যমে নিয়মগুলি স্থাপন করতে পারেন৷
Cloud Firestore Security Rules আপডেটগুলি নতুন প্রশ্ন এবং শ্রোতাদের প্রভাবিত করতে এক মিনিট পর্যন্ত সময় নিতে পারে৷ যাইহোক, পরিবর্তনগুলি সম্পূর্ণরূপে প্রচার করতে এবং যেকোনো সক্রিয় শ্রোতাদের প্রভাবিত করতে 10 মিনিট পর্যন্ত সময় লাগতে পারে।
ফায়ারবেস কনসোল ব্যবহার করুন
আপনার প্রজেক্টের ডিফল্ট ডাটাবেসের জন্য আপনার প্রথম সেটের নিয়ম সেট আপ করতে এবং স্থাপন করতে, Firebase কনসোলের Cloud Firestore বিভাগে নিয়ম ট্যাবটি খুলুন।
অনলাইন সম্পাদকে আপনার নিয়মগুলি লিখুন, তারপরে প্রকাশ করুন ক্লিক করুন৷
Firebase CLI ব্যবহার করুন
এছাড়াও আপনি Firebase CLI ব্যবহার করে নিয়ম স্থাপন করতে পারেন। CLI ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশন কোড সহ আপনার নিয়মগুলিকে সংস্করণ নিয়ন্ত্রণে রাখতে পারবেন এবং আপনার বিদ্যমান স্থাপনার প্রক্রিয়ার অংশ হিসাবে নিয়মগুলি স্থাপন করতে পারবেন।
// 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
Cloud Storage জন্য নিরাপত্তা বাড়ান
আপনার অ্যাপগুলি Cloud Firestore শক্তিশালী ডাটাবেস বৈশিষ্ট্য এবং Cloud Storage ফাইল স্টোরেজ এবং পরিচালনা বৈশিষ্ট্যগুলি থেকে উপকৃত হবে৷ একসাথে ব্যবহৃত, এই পণ্যগুলি আরও শক্তিশালী অ্যাপ সুরক্ষা প্রদান করে, যেহেতু Cloud Firestore উভয় পণ্যের জন্য ফায়ারবেস সুরক্ষা নিয়ম দ্বারা ব্যবহারযোগ্য অনুমোদনের প্রয়োজনীয়তাগুলি ক্যাপচার করতে পারে৷ আরও তথ্যের জন্য, Cloud Storage নির্দেশিকা দেখুন।
পরবর্তী পদক্ষেপ
- নিরাপত্তা নিয়ম কিভাবে গঠন করতে হয় তা জানুন।
- কাস্টম নিরাপত্তা নিয়ম শর্তাবলী লিখুন.
- নিরাপত্তা নিয়ম রেফারেন্স পড়ুন.