Catch up on everthing we announced at this year's Firebase Summit. Learn more

সুরক্ষা বিধি এবং ফায়ারবেস প্রমাণীকরণ

ফায়ারবেস সিকিউরিটি রুলস অ্যাক্সেস কন্ট্রোল এবং ডেটা যাচাই করে এমন ফরম্যাটে যা জটিলতার একাধিক স্তর সমর্থন করে। বিল্ড ব্যবহারকারী-ভিত্তিক এবং ভূমিকা ভিত্তিক অ্যাক্সেস সিস্টেমগুলি আপনার ব্যবহারকারীদের ডেটা সুরক্ষিত রাখতে ব্যবহার Firebase প্রমাণীকরণ Firebase সিকিউরিটি বিধি।

ব্যবহারকারীদের চিহ্নিত করুন

প্রমাণীকরণ ব্যবহারকারীদের সনাক্ত করে যা আপনার ডেটা অ্যাক্সেসের অনুরোধ করে এবং সেই তথ্যটি একটি পরিবর্তনশীল হিসাবে প্রদান করে যা আপনি আপনার নিয়মে ব্যবহার করতে পারেন। auth পরিবর্তনশীল নিম্নলিখিত তথ্য রয়েছে:

  • uid : একটি অনন্য ব্যবহারকারী আইডি, অনুরোধ ব্যবহারকারীকে নির্ধারিত হয়।
  • token : প্রমাণীকরণ দ্বারা সংগৃহীত মূল্যবোধের মানচিত্র।

auth.token পরিবর্তনশীল নিম্নলিখিত মান রয়েছে:

মাঠ বর্ণনা
email অ্যাকাউন্টের সাথে সংশ্লিষ্ট ইমেল ঠিকানা, যদি উপস্থিত থাকে।
email_verified true তাহলে ব্যবহারকারী যাচাই করে নিয়েছেন তারা এক্সেস আছে email ঠিকানা। কিছু প্রদানকারী স্বয়ংক্রিয়ভাবে তাদের নিজস্ব ইমেল ঠিকানা যাচাই করে।
phone_number অ্যাকাউন্টের সাথে যুক্ত ফোন নম্বর, যদি থাকে।
name সেট করা থাকলে ব্যবহারকারীর প্রদর্শন নাম।
sub ব্যবহারকারীর Firebase UID। এটি একটি প্রকল্পের মধ্যে অনন্য।
firebase.identities এই ব্যবহারকারীর অ্যাকাউন্টের সাথে সম্পর্কিত সমস্ত পরিচয়গুলির অভিধান। : অভিধানের কী নিম্নলিখিত যে কোনো হতে পারে email , phone , google.com , facebook.com , github.com , twitter.com । অভিধানের মানগুলি অ্যাকাউন্টের সাথে সম্পর্কিত প্রতিটি পরিচয় প্রদানকারীর জন্য অনন্য শনাক্তকারীর অ্যারে। উদাহরণস্বরূপ, auth.token.firebase.identities["google.com"][0] প্রথম Google ব্যবহারকারী অ্যাকাউন্টের সাথে যুক্ত আইডি রয়েছে।
firebase.sign_in_provider সাইন-ইন প্রদানকারী এই টোকেনটি পেতে ব্যবহার করতেন। : নিম্নলিখিত পংক্তি এক হতে পারে custom , password , phone , anonymous , google.com , facebook.com , github.com , twitter.com

আপনি কাস্টমাইজড প্রমাণীকরণ বৈশিষ্ট্যাবলী যোগ করতে চান তাহলে, auth.token পরিবর্তনশীল যে কোনো রয়েছে কাস্টম দাবি আপনি উল্লেখ করুন।

যখন ব্যবহারকারী অনুরোধ এক্সেস সাইন ইন করা হয় না, auth পরিবর্তনশীল null । - তুমি যদি, উদাহরণস্বরূপ, যদি আপনি প্রামাণ ব্যবহারকারীদের পড়ার অ্যাক্সেস সীমিত করতে চান আপনার নিয়ম এই লিভারেজ করতে auth != null । যাইহোক, আমরা সাধারণত লেখার অ্যাক্সেস সীমিত করার সুপারিশ করি।

সম্পর্কে আরও তথ্যের জন্য auth পরিবর্তনশীল জন্য রেফারেন্স ডকুমেন্টেশান দেখুন ক্লাউড Firestore , রিয়েলটাইম ডাটাবেস , এবং ক্লাউড স্টোরেজ

নিয়মে ব্যবহারকারীর তথ্য ব্যবহার করুন

অনুশীলনে, আপনার নিয়মে প্রমাণিত তথ্য ব্যবহার করা আপনার নিয়মগুলিকে আরও শক্তিশালী এবং নমনীয় করে তোলে। আপনি ব্যবহারকারীর পরিচয়ের ভিত্তিতে ডেটা অ্যাক্সেস নিয়ন্ত্রণ করতে পারেন।

আপনার নিয়মে বলে দেয় কীভাবে তথ্য auth পরিবর্তনশীল - requestor এর ব্যবহারকারী তথ্য - সাথে মেলে অনুরোধ করা তথ্য যুক্ত ব্যবহারকারীর তথ্য।

উদাহরণস্বরূপ, আপনার অ্যাপটি নিশ্চিত করতে চাইতে পারে যে ব্যবহারকারীরা কেবল তাদের নিজস্ব ডেটা পড়তে এবং লিখতে পারে। এই দৃশ্যকল্প, আপনি মধ্যে একটি মিল চাইবেন auth.uid পরিবর্তনশীল এবং অনুরোধ করা তথ্য ব্যবহারকারীর আইডি:

ক্লাউড ফায়ারস্টোর

service cloud.firestore {
  match /databases/{database}/documents {
    // Make sure the uid of the requesting user matches name of the user
    // document. The wildcard expression {userId} makes the userId variable
    // available in rules.
    match /users/{userId} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
  }
}

রিয়েলটাইম ডাটাবেস

{
  "rules": {
    "users": {
      "$userId": {
        // grants write access to the owner of this user account
        // whose uid must exactly match the key ($userId)
        ".write": "$userId === auth.uid"
      }
    }
  }
}

মেঘ স্টোরেজ

service firebase.storage {
  // Only a user can upload their file, but anyone can view it
  match /users/{userId}/{fileName} {
    allow read;
    allow write: if request.auth != null && request.auth.uid == userId;
  }
}

কাস্টম ব্যবহারকারীর তথ্য নির্ধারণ করুন

আপনি আরও লিভারেজ করতে auth পরিবর্তনশীল আপনার অ্যাপ্লিকেশনের ব্যবহারকারীদের নির্ধারিত কাস্টম ক্ষেত্র সংজ্ঞায়িত করতে।

উদাহরণস্বরূপ, ধরুন আপনি একটি "প্রশাসক" ভূমিকা তৈরি করতে চান যা নির্দিষ্ট পথে লেখার অ্যাক্সেস সক্ষম করে। আপনি ব্যবহারকারীদের সেই বৈশিষ্ট্যটি বরাদ্দ করবেন এবং তারপরে পাথগুলিতে অ্যাক্সেস প্রদানের নিয়মগুলিতে এটি ব্যবহার করুন।

ক্লাউড ফায়ারস্টোরে, আপনি ব্যবহারকারীদের নথিতে একটি কাস্টম ক্ষেত্র যুক্ত করতে পারেন এবং আপনার নিয়মে একটি এমবেডেড পড়া সহ সেই ক্ষেত্রের মান পুনরুদ্ধার করতে পারেন। সুতরাং, আপনার প্রশাসক-ভিত্তিক নিয়মটি নিম্নলিখিত উদাহরণের মতো দেখতে হবে:

ক্লাউড ফায়ারস্টোর

service cloud.firestore {
  match /databases/{database}/documents/some_collection: {
    // Remember that, in Cloud Firestore, reads embedded in your rules are billed operations
    write: if request.auth != null && get(/databases/(database)/documents/users/$(request.auth.uid)).data.admin) == true;
    read: if request.auth != null;
  }
}

রিয়েলটাইম ডাটাবেস ও Cloud Storage এ বিধি জন্য কাস্টম দাবিগুলি তৈরি প্রমাণীকরণ হবে। তারপর আপনি ব্যবহার করছেন তাদের নিজস্ব দাবী উল্লেখ করতে পারেন auth.token পরিবর্তনশীল।

রিয়েলটাইম ডাটাবেস

{
  "rules": {
    "some_path/$sub_path": {
      // Create a custom claim for the admin role
      ".write": "auth.uid != null && auth.token.writer == true"
      ".read": "auth.uid != null"
      }
    }
  }

মেঘ স্টোরেজ

service firebase.storage {
  // Create a custom claim for the admin role
  match /files/{fileName} {
    allow read: if request.auth.uid != null;
    allow write: if request.auth.token.admin == true;
  }
}

প্রমাণীকরণ ওঠানামা মৌলিক নিয়ম আরো উদাহরণ দেখতে, দেখতে বেসিক সিকিউরিটি রুলস