Building Trust Through Access Control
বেশিরভাগ অ্যাপ মনে করে যে তাদের একটি লগইন পেজ আছে বলেই তারা নিরাপদ।
লগইন হলো কেবল প্রথম ধাপ। একবার ব্যবহারকারী প্রবেশ করলে, আপনাকে একটি প্রশ্নের উত্তর দিতে হবে: এই ব্যবহারকারী কী কী করতে পারেন?
অনেকে অথেন্টিকেশন (Authentication) এবং অথরাইজেশন (Authorization)-এর মধ্যে গুলিয়ে ফেলেন।
• অথেন্টিকেশন জিজ্ঞেস করে: আপনি কে? • অথরাইজেশন জিজ্ঞেস করে: আপনি কী করার অনুমতিপ্রাপ্ত?
একজন ব্যবহারকারী সফলভাবে লগইন করতে পারেন। এর মানে এই নয় যে তাদের প্রতিটি রেকর্ড দেখা উচিত বা প্রতিটি প্রোফাইল এডিট করা উচিত।
নিয়মগুলো স্পষ্ট করতে Role Based Access Control (RBAC) ব্যবহার করুন।
RBAC কাজ করে অনুমোদিত রোলের একটি তালিকার সাথে ব্যবহারকারীর রোল যাচাই করার মাধ্যমে। আপনি যদি অ্যাক্সেস কন্ট্রোল ব্যবহার না করেন, তবে আপনি নিচের ঝুঁকিগুলোর সম্মুখীন হতে পারেন:
- অতিরিক্ত উন্মুক্ত ড্যাশবোর্ড
- অতিরিক্ত অভ্যন্তরীণ পারমিশন
- আকস্মিক ডেটা লিক
- দুর্বল অডিট ট্রেইল
- বিশ্বাসযোগ্যতা হারানো
'প্রিন্সিপল অফ লিস্ট প্রিভিলেজ' (Principle of least privilege) অনুসরণ করুন। ব্যবহারকারীদের কেবল তাদের কাজের জন্য প্রয়োজনীয় অ্যাক্সেস প্রদান করুন।
• সাপোর্ট স্টাফদের সমস্ত কাস্টমার রেকর্ড দেখা উচিত নয়। • ইঞ্জিনিয়ারদের ডিফল্টভাবে প্রোডাকশন অ্যাক্সেস থাকা উচিত নয়। • HR ডেটা অবশ্যই আলাদা বা সেগমেন্টেড থাকতে হবে। • অ্যাডমিন রোলগুলো সীমিত এবং অডিটেবল রাখা উচিত।
মাঝে মাঝে শুধু রোল যথেষ্ট নয়। আপনার অ্যাকশন-ভিত্তিক পারমিশন প্রয়োজন। একজন ব্যবহারকারী একটি রেকর্ড দেখতে পারেন কিন্তু সেটি ডিলিট করতে পারেন না। এটি আপনাকে সূক্ষ্ম বা গ্র্যানুলার কন্ট্রোল (granular control) প্রদান করে।
আপনার ডেটাকে সংবেদনশীলতা অনুযায়ী আলাদা করা উচিত: • পাবলিক ডেটা: নাম এবং ছবি। • প্রাইভেট ডেটা: ইমেল এবং ফোন নম্বর। • সেনসিটিভ ডেটা: বেতন বা আইডি নম্বর।
আপনার কোডে এই ক্যাটাগরিগুলোকে আলাদাভাবে বিবেচনা করুন। এটি নিরাপত্তা ব্যবস্থাপনা সহজ করে তোলে।
বিশ্বাসযোগ্যতার জন্য জবাবদিহিতা প্রয়োজন। যখনই কেউ সেনসিটিভ ডেটা স্পর্শ করবে, আপনার সিস্টেমকে অবশ্যই একটি অডিট ট্রেইল তৈরি করতে হবে। সংবেদনশীল কাজগুলোর অবশ্যই একটি চিহ্ন বা রেকর্ড থাকতে হবে।
আপনার অ্যাপটি রিলিজ করার আগে এই পয়েন্টগুলো যাচাই করুন:
- লগইন এবং সেশন ফ্লো কি নিরাপদ?
- পারমিশনগুলো কি রোল এবং অ্যাকশনের ওপর ভিত্তি করে দেওয়া হয়েছে?
- সেনসিটিভ ডেটা কি আলাদা করা হয়েছে?
- আপনার ডিফল্ট সেটিংস কি সীমাবদ্ধ বা রেস্ট্রিক্টিভ?
- আপনি কি সমস্ত অ্যাক্সেস লগ করছেন?
- আপনি কি আপনার ব্যবহারকারীদের কাছে পারমিশনগুলো ব্যাখ্যা করতে পারেন?
অথেন্টিকেশন ব্যবহারকারীদের প্রবেশ করতে দেয়। অথরাইজেশন আপনার সিস্টেমকে বিশ্বাসযোগ্য রাখে। বিশ্বাসযোগ্যতা একটি পণ্যের বৈশিষ্ট্য (product feature)।
