অ্যাপ পারমিশন নিম্নলিখিত বিষয়গুলিতে অ্যাক্সেস সুরক্ষিত করার মাধ্যমে ব্যবহারকারীর গোপনীয়তা রক্ষা করতে সাহায্য করে:
- সীমাবদ্ধ ডেটা , যেমন সিস্টেমের অবস্থা এবং ব্যবহারকারীদের যোগাযোগের তথ্য
- সীমাবদ্ধ কার্যকলাপ , যেমন জোড়া লাগানো ডিভাইসের সাথে সংযোগ স্থাপন করা এবং অডিও রেকর্ড করা।
এই পৃষ্ঠায় অ্যান্ড্রয়েড পারমিশন কীভাবে কাজ করে তার একটি সার্বিক ধারণা দেওয়া হয়েছে। এর মধ্যে রয়েছে পারমিশন ব্যবহারের একটি উচ্চ-স্তরের কর্মপ্রবাহ, বিভিন্ন ধরনের পারমিশনের বিবরণ এবং আপনার অ্যাপে পারমিশন ব্যবহারের কিছু সেরা অনুশীলন। অন্যান্য পৃষ্ঠাগুলিতে ব্যাখ্যা করা হয়েছে কীভাবে আপনার অ্যাপের পারমিশনের অনুরোধ কমানো যায় , পারমিশন ঘোষণা করা যায় , রানটাইম পারমিশনের জন্য অনুরোধ করা যায় এবং অন্যান্য অ্যাপ কীভাবে আপনার অ্যাপের উপাদানগুলির সাথে যোগাযোগ করতে পারবে তা সীমাবদ্ধ করা যায় ।
অ্যান্ড্রয়েড অ্যাপ পারমিশনগুলির সম্পূর্ণ তালিকা দেখতে, পারমিশন এপিআই রেফারেন্স পৃষ্ঠাটি দেখুন।
পারমিশন কার্যপ্রবাহ প্রদর্শনকারী কিছু নমুনা অ্যাপ দেখতে, গিটহাবে অবস্থিত অ্যান্ড্রয়েড পারমিশন স্যাম্পলস রিপোজিটরিটি পরিদর্শন করুন।
অনুমতি ব্যবহারের কর্মপ্রবাহ
আপনার অ্যাপে যদি এমন কোনো কার্যকারিতা থাকে যার জন্য সীমাবদ্ধ ডেটা বা সীমাবদ্ধ কাজের অ্যাক্সেসের প্রয়োজন হতে পারে, তবে অনুমতি ঘোষণা না করেই আপনি সেই তথ্য পেতে বা কাজগুলো সম্পাদন করতে পারবেন কিনা তা নির্ধারণ করুন। আপনি আপনার অ্যাপে ছবি তোলা, মিডিয়া প্লেব্যাক থামানো এবং প্রাসঙ্গিক বিজ্ঞাপন দেখানোর মতো অনেক কাজ কোনো অনুমতি ঘোষণা ছাড়াই সম্পন্ন করতে পারেন।
যদি আপনি মনে করেন যে কোনো একটি ব্যবহারের ক্ষেত্র (use case) পূরণের জন্য আপনার অ্যাপকে সীমাবদ্ধ ডেটা অ্যাক্সেস করতে বা সীমাবদ্ধ কাজ সম্পাদন করতে হবে, তাহলে উপযুক্ত অনুমতিগুলো (permissions) ঘোষণা করুন। কিছু অনুমতি, যা ইনস্টল-টাইম পারমিশন (install-time permissions ) নামে পরিচিত, আপনার অ্যাপ ইনস্টল করার সময় স্বয়ংক্রিয়ভাবে মঞ্জুর করা হয়। অন্যান্য অনুমতি, যা রানটাইম পারমিশন (runtime permissions) নামে পরিচিত, সেগুলোর জন্য আপনার অ্যাপকে আরও এক ধাপ এগিয়ে যেতে হয় এবং রানটাইমে অনুমতির জন্য অনুরোধ করতে হয়।
চিত্র ১-এ অ্যাপ পারমিশন ব্যবহারের কার্যপ্রবাহ দেখানো হয়েছে:
অনুমতির প্রকারভেদ
অ্যান্ড্রয়েড পারমিশনগুলোকে বিভিন্ন প্রকারে ভাগ করে, যার মধ্যে রয়েছে ইন্সটল-টাইম পারমিশন, রানটাইম পারমিশন এবং বিশেষ পারমিশন। প্রতিটি পারমিশনের ধরন নির্দেশ করে যে, সিস্টেম যখন আপনার অ্যাপকে সেই পারমিশনটি দেয়, তখন আপনার অ্যাপটি কী পরিমাণ সীমাবদ্ধ ডেটা অ্যাক্সেস করতে পারবে এবং কী ধরনের সীমাবদ্ধ কাজ সম্পাদন করতে পারবে। প্রতিটি পারমিশনের সুরক্ষার স্তর তার ধরনের উপর ভিত্তি করে নির্ধারিত হয় এবং এটি পারমিশন এপিআই রেফারেন্স পৃষ্ঠায় দেখানো থাকে।
ইনস্টল-সময়ের অনুমতি
ইনস্টল-টাইম পারমিশন আপনার অ্যাপকে সীমাবদ্ধ ডেটাতে সীমিত অ্যাক্সেস দেয় অথবা এমন সীমাবদ্ধ কাজ করার অনুমতি দেয় যা সিস্টেম বা অন্যান্য অ্যাপকে ন্যূনতমভাবে প্রভাবিত করে। যখন আপনি আপনার অ্যাপে ইনস্টল-টাইম পারমিশন ঘোষণা করেন, তখন ব্যবহারকারী যখন অ্যাপটির বিস্তারিত পৃষ্ঠা দেখেন, অ্যাপ স্টোর তাকে একটি ইনস্টল-টাইম পারমিশন নোটিশ দেখায়, যেমনটি চিত্র ২-এ দেখানো হয়েছে। ব্যবহারকারী যখন আপনার অ্যাপটি ইনস্টল করেন, তখন সিস্টেম স্বয়ংক্রিয়ভাবে আপনার অ্যাপকে এই পারমিশনগুলো প্রদান করে।
অ্যান্ড্রয়েডে ইনস্টল-টাইম পারমিশনের বেশ কয়েকটি উপ-প্রকার রয়েছে, যার মধ্যে সাধারণ পারমিশন এবং সিগনেচার পারমিশন অন্তর্ভুক্ত।
সাধারণ অনুমতি
এই অনুমতিগুলো আপনার অ্যাপের স্যান্ডবক্সের বাইরের ডেটা এবং কার্যকলাপে প্রবেশাধিকার দেয়, কিন্তু ব্যবহারকারীর গোপনীয়তা এবং অন্যান্য অ্যাপের কার্যকারিতার জন্য খুব সামান্য ঝুঁকি তৈরি করে।
সিস্টেমটি সাধারণ অনুমতিগুলোকে normal সুরক্ষা স্তর প্রদান করে।
স্বাক্ষরের অনুমতি
সিস্টেম কোনো অ্যাপকে তখনই স্বাক্ষরের অনুমতি দেয়, যখন অ্যাপটি সেই অ্যাপ বা অপারেটিং সিস্টেমের সার্টিফিকেটের দ্বারাই স্বাক্ষরিত হয়, যা অনুমতিটি নির্ধারণ করে।
যেসব অ্যাপ্লিকেশন অটোফিল বা ভিপিএন পরিষেবার মতো বিশেষাধিকারপ্রাপ্ত পরিষেবাগুলি বাস্তবায়ন করে, সেগুলিও সিগনেচার পারমিশন ব্যবহার করে। এই অ্যাপগুলির সার্ভিস-বাইন্ডিং সিগনেচার পারমিশন প্রয়োজন, যাতে শুধুমাত্র সিস্টেমই পরিষেবাগুলির সাথে বাইন্ড করতে পারে।
সিস্টেমটি স্বাক্ষর অনুমতিগুলিতে signature সুরক্ষা স্তর নির্ধারণ করে।
রানটাইম অনুমতি
রানটাইম পারমিশন, যা বিপজ্জনক পারমিশন নামেও পরিচিত, আপনার অ্যাপকে সীমাবদ্ধ ডেটাতে অতিরিক্ত অ্যাক্সেস দেয় অথবা এমন সীমাবদ্ধ কাজ করতে দেয় যা সিস্টেম এবং অন্যান্য অ্যাপকে আরও ব্যাপকভাবে প্রভাবিত করে। তাই, সীমাবদ্ধ ডেটা অ্যাক্সেস করার বা সীমাবদ্ধ কাজ করার আগে আপনার অ্যাপে রানটাইম পারমিশনের জন্য অনুরোধ করতে হবে। এই পারমিশনগুলো আগে থেকেই দেওয়া হয়েছে বলে ধরে নেবেন না—সেগুলো পরীক্ষা করুন এবং প্রয়োজনে, প্রতিবার অ্যাক্সেস করার আগে অনুরোধ করুন।
যখন আপনার অ্যাপ কোনো রানটাইম পারমিশনের জন্য অনুরোধ করে, তখন সিস্টেম একটি রানটাইম পারমিশন প্রম্পট প্রদর্শন করে, যেমনটি চিত্র ৩-এ দেখানো হয়েছে।
অনেক রানটাইম পারমিশন ব্যক্তিগত ব্যবহারকারীর ডেটা অ্যাক্সেস করে, যা এক বিশেষ ধরনের সীমাবদ্ধ ডেটা এবং এতে সম্ভাব্য সংবেদনশীল তথ্য অন্তর্ভুক্ত থাকে। ব্যক্তিগত ব্যবহারকারীর ডেটার উদাহরণ হলো অবস্থান এবং যোগাযোগের তথ্য।
মাইক্রোফোন এবং ক্যামেরা অত্যন্ত সংবেদনশীল তথ্যে প্রবেশাধিকার দেয়। তাই, আপনার অ্যাপ কেন এই তথ্যগুলো ব্যবহার করে, তা ব্যাখ্যা করতে সিস্টেমটি আপনাকে সাহায্য করে।
সিস্টেমটি রানটাইম পারমিশনগুলিতে dangerous সুরক্ষা স্তর নির্ধারণ করে।
বিশেষ অনুমতি
বিশেষ অনুমতিগুলো অ্যাপের নির্দিষ্ট কিছু কার্যক্রমের সাথে সম্পর্কিত। শুধুমাত্র প্ল্যাটফর্ম এবং OEM-রাই বিশেষ অনুমতি নির্ধারণ করতে পারে। এছাড়াও, প্ল্যাটফর্ম এবং OEM-রা সাধারণত বিশেষ অনুমতি নির্ধারণ করে যখন তারা বিশেষভাবে শক্তিশালী কোনো কাজের অ্যাক্সেস সুরক্ষিত করতে চায়, যেমন অন্য অ্যাপের উপরে ড্রয়িং করা।
সিস্টেম সেটিংস-এর বিশেষ অ্যাপ অ্যাক্সেস পেজটিতে ব্যবহারকারী-নিয়ন্ত্রিত কিছু অপারেশন রয়েছে। এই অপারেশনগুলোর মধ্যে অনেকগুলোই বিশেষ অনুমতি হিসেবে বাস্তবায়িত হয়।
বিশেষ অনুমতির জন্য কীভাবে অনুরোধ করতে হয় সে সম্পর্কে আরও জানুন।
সিস্টেমটি বিশেষ অনুমতিগুলিতে appop সুরক্ষা স্তর নির্ধারণ করে।
অনুমতি গোষ্ঠী
অনুমতিগুলো অনুমতি গ্রুপের অন্তর্ভুক্ত হতে পারে। অনুমতি গ্রুপগুলো যৌক্তিকভাবে সম্পর্কিত অনুমতিগুলোর একটি সেট নিয়ে গঠিত। উদাহরণস্বরূপ, এসএমএস বার্তা পাঠানো এবং গ্রহণ করার অনুমতি একই গ্রুপের অন্তর্ভুক্ত হতে পারে, কারণ উভয়ই এসএমএস-এর সাথে অ্যাপ্লিকেশনটির মিথস্ক্রিয়ার সাথে সম্পর্কিত।
যখন কোনো অ্যাপ ঘনিষ্ঠভাবে সম্পর্কিত অনুমতির জন্য অনুরোধ করে, তখন ব্যবহারকারীর সামনে প্রদর্শিত সিস্টেম ডায়ালগের সংখ্যা কমাতে পারমিশন গ্রুপগুলো সিস্টেমকে সাহায্য করে। যখন কোনো ব্যবহারকারীকে একটি অ্যাপ্লিকেশনের জন্য অনুমতি দেওয়ার অনুরোধ জানানো হয়, তখন একই গ্রুপের অন্তর্গত অনুমতিগুলো একই ইন্টারফেসে প্রদর্শিত হয়। তবে, অনুমতিগুলো কোনো বিজ্ঞপ্তি ছাড়াই গ্রুপ পরিবর্তন করতে পারে, তাই ধরে নেবেন না যে একটি নির্দিষ্ট অনুমতি অন্য কোনো অনুমতির সাথে একই গ্রুপে রয়েছে।
সর্বোত্তম অনুশীলন
অ্যাপ পারমিশনগুলো সিস্টেম নিরাপত্তা বৈশিষ্ট্যের উপর ভিত্তি করে তৈরি এবং অ্যান্ড্রয়েডকে ব্যবহারকারীর গোপনীয়তা সম্পর্কিত নিম্নলিখিত লক্ষ্যগুলো অর্জনে সহায়তা করে:
- নিয়ন্ত্রণ: ব্যবহারকারী অ্যাপগুলোর সাথে যে ডেটা শেয়ার করেন, তার ওপর তাঁর নিয়ন্ত্রণ থাকে।
- স্বচ্ছতা: ব্যবহারকারী বুঝতে পারেন যে একটি অ্যাপ কোন ডেটা ব্যবহার করে এবং কেন সেই ডেটা অ্যাক্সেস করে।
- ডেটা হ্রাসকরণ: একটি অ্যাপ ব্যবহারকারীর দ্বারা প্রবর্তিত কোনো নির্দিষ্ট কাজ বা ক্রিয়ার জন্য শুধুমাত্র প্রয়োজনীয় ডেটাই অ্যাক্সেস ও ব্যবহার করে।
এই বিভাগে আপনার অ্যাপে কার্যকরভাবে পারমিশন ব্যবহারের জন্য কিছু মূল সেরা অনুশীলন তুলে ধরা হয়েছে। অ্যান্ড্রয়েডে কীভাবে পারমিশন নিয়ে কাজ করবেন সে সম্পর্কে আরও বিস্তারিত জানতে, অ্যাপ পারমিশন সেরা অনুশীলন পৃষ্ঠাটি দেখুন।
ন্যূনতম সংখ্যক অনুমতির জন্য অনুরোধ করুন
যখন ব্যবহারকারী আপনার অ্যাপে কোনো নির্দিষ্ট কাজের জন্য অনুরোধ করেন, তখন আপনার অ্যাপের কেবল সেই কাজটি সম্পন্ন করার জন্য প্রয়োজনীয় অনুমতিগুলোই চাওয়া উচিত। আপনি কীভাবে অনুমতিগুলো ব্যবহার করছেন তার ওপর নির্ভর করে, সংবেদনশীল তথ্যে প্রবেশাধিকারের ওপর নির্ভর না করে আপনার অ্যাপের প্রয়োজন মেটানোর জন্য একটি বিকল্প উপায় থাকতে পারে।
নির্দিষ্ট ক্রিয়াকলাপের সাথে রানটাইম অনুমতি সংযুক্ত করুন
আপনার অ্যাপের ব্যবহারের প্রক্রিয়া চলাকালীন যতটা সম্ভব দেরিতে অনুমতির জন্য অনুরোধ করুন। উদাহরণস্বরূপ, যদি আপনার অ্যাপ ব্যবহারকারীদের অন্যদের কাছে অডিও বার্তা পাঠাতে দেয়, তাহলে অপেক্ষা করুন যতক্ষণ না ব্যবহারকারী মেসেজিং স্ক্রিনে গিয়ে 'অডিও বার্তা পাঠান' বোতামটি চাপেন। ব্যবহারকারী বোতামটি চাপার পরেই আপনার অ্যাপ মাইক্রোফোনের অ্যাক্সেসের জন্য অনুরোধ করতে পারে।
আপনার অ্যাপের নির্ভরতাগুলো বিবেচনা করুন
যখন আপনি কোনো লাইব্রেরি অন্তর্ভুক্ত করেন, তখন আপনি এর অনুমতির প্রয়োজনীয়তাগুলোও পেয়ে যান। প্রতিটি ডিপেন্ডেন্সির জন্য কী কী অনুমতি প্রয়োজন এবং সেই অনুমতিগুলো কী কাজে ব্যবহৃত হয়, সে সম্পর্কে সচেতন থাকুন।
স্বচ্ছ হোন
যখন আপনি অনুমতির জন্য অনুরোধ করেন, তখন আপনি কী অ্যাক্সেস করছেন, কেন করছেন এবং অনুমতি প্রত্যাখ্যান করা হলে কোন কার্যকারিতাগুলো প্রভাবিত হবে, সে সম্পর্কে স্পষ্ট করে বলুন, যাতে ব্যবহারকারীরা জেনে-বুঝে সিদ্ধান্ত নিতে পারেন।
সিস্টেম অ্যাক্সেস সুস্পষ্ট করুন
যখন আপনি সংবেদনশীল ডেটা বা হার্ডওয়্যার, যেমন ক্যামেরা বা মাইক্রোফোন, অ্যাক্সেস করেন, তখন আপনার অ্যাপে একটি অবিচ্ছিন্ন ইঙ্গিত প্রদান করুন, যদি সিস্টেমটি আগে থেকেই এই সূচকগুলি প্রদান না করে। এই অনুস্মারকটি ব্যবহারকারীদের স্পষ্টভাবে বুঝতে সাহায্য করে যে কখন আপনার অ্যাপ সীমাবদ্ধ ডেটা অ্যাক্সেস করে বা সীমাবদ্ধ কাজ সম্পাদন করে।
সিস্টেম উপাদানগুলিতে অনুমতি
অনুমতি শুধু সিস্টেমের কার্যকারিতা অনুরোধ করার জন্যই নয়। আপনার অ্যাপের সিস্টেম উপাদানগুলো অন্য কোন অ্যাপ আপনার অ্যাপের সাথে যোগাযোগ করতে পারবে তা সীমাবদ্ধ করতে পারে, যেমনটি 'অন্যান্য অ্যাপের সাথে যোগাযোগ কীভাবে সীমাবদ্ধ করবেন ' শীর্ষক পৃষ্ঠায় বর্ণনা করা হয়েছে।