اجازههای برنامه با محافظت از دسترسی به موارد زیر به پشتیبانی از حریم خصوصی کاربر کمک میکند:
- دادههای محدودشده، مثل وضعیت سیستم و اطلاعات تماس کاربران
- کنشهای محدودشده، مثل متصل شدن به دستگاه جفتشده و ضبط کردن صدا
این صفحه نمای کلی از نحوه عملکرد اجازههای Android ارائه میدهد، ازجمله گردش کار سطح بالا برای استفاده از اجازهها، شرح انواع مختلف اجازهها، و برخیاز روالهای مطلوب برای استفاده از اجازهها در برنامهتان. صفحات دیگر توضیح میدهند که چگونه درخواستهای برنامهتان برای اجازهها را بهحداقل برسانید، اجازهها را اعلام کنید، اجازههای زمان اجرا را درخواست کنید، و نحوه تعامل سایر برنامهها با مؤلفههای برنامهتان را محدود کنید.
برای مشاهده فهرست کامل اجازههای برنامه Android، به صفحه مرجع میانای برنامهسازی کاربردی اجازهها مراجعه کنید.
برای مشاهده چند برنامه نمونه که گردش کار اجازهها را نشان میدهند، به نمونههای اجازههای Android مخزن در GitHub مراجعه کنید.
گردش کار برای استفاده از اجازهها
اگر برنامهتان عملکردی ارائه میدهد که ممکن است به دسترسی به دادههای محدودشده یا کنشهای محدودشده نیاز داشته باشد، تعیین کنید که آیا میتوانید اطلاعات را دریافت کنید یا کنشها را بدون نیاز به اعلام اجازهها انجام دهید. میتوانید موارد استفاده زیادی را در برنامهتان برآورده کنید، مانند گرفتن عکس، توقف موقت بازپخش رسانه، و نمایش آگهیهای مرتبط، بدون اینکه نیاز باشد اجازهای را اعلام کنید.
اگر تصمیم گرفتید که برنامهتان باید به دادههای محدودشده دسترسی داشته باشد یا کنشهای محدودشدهای را برای برآورده کردن مورد استفاده انجام دهد، اجازههای مناسب را اعلام کنید. برخیاز اجازهها، که بهعنوان اجازههای زمان نصب شناخته میشوند، بهطور خودکار هنگام نصب برنامه اعطا میشوند. اجازههای دیگر، که بهعنوان اجازههای زمان اجرا شناخته میشوند، نیاز دارند که برنامه شما یک گام فراتر برود و اجازه را در زمان اجرا درخواست کند.
شکل ۱ گردش کار استفاده از اجازههای برنامه را نشان میدهد:
انواع اجازه
Android اجازهها را به انواع مختلفی دستهبندی میکند، ازجمله اجازههای زمان نصب، اجازههای زمان اجرا، و اجازههای ویژه. نوع هر اجازه نشاندهنده گستره دادههای محدودشدهای است که برنامهتان میتواند به آنها دسترسی داشته باشد و گستره کنشهای محدودشدهای که برنامهتان میتواند انجام دهد، وقتی سیستم آن اجازه را به برنامهتان اعطا میکند. سطح محافظت برای هر اجازه براساس نوع آن است و در صفحه مرجع میانای برنامهسازی کاربردی اجازهها نشان داده میشود.
اجازههای زمان نصب
اجازههای زمان نصب به برنامه شما دسترسی محدودی به دادههای محدودشده میدهد یا به برنامه شما اجازه میدهد کنشهای محدودشدهای را انجام دهد که کمترین تأثیر را بر سیستم یا برنامههای دیگر دارد. وقتی اجازههای زمان نصب را در برنامهتان اعلام میکنید، فروشگاه برنامهها هنگام مشاهده صفحه جزئیات برنامه توسط کاربر، اعلان اجازه زمان نصب را به او نشان میدهد (همانطور که در شکل ۲ نشان داده شده است). وقتی کاربر برنامهتان را نصب میکند، سیستم بهطور خودکار اجازهها را به برنامهتان اعطا میکند.
Android شامل چندین نوع فرعی از اجازههای زمان نصب است، ازجمله اجازههای معمول و اجازههای امضا.
اجازههای معمول
این اجازهها امکان دسترسی به دادهها و کنشهایی را فراهم میکنند که فراتر از جعبه امن برنامه شما هستند اما خطر بسیار کمی برای حریم خصوصی کاربر و عملکرد برنامههای دیگر دارند.
سیستم سطح محافظت normal را به اجازههای معمول اختصاص میدهد.
اجازههای امضا
سیستم فقط زمانی اجازه امضا را به برنامه اعطا میکند که برنامه با همان گواهی برنامه یا سیستمعاملی که اجازه را تعریف میکند امضا شده باشد.
برنامههایی که سرویسهای ممتاز را پیادهسازی میکنند، مانند تکمیل خودکار یا سرویسهای VPN، نیز از اجازههای امضا استفاده میکنند. این برنامهها به اجازههای امضای اتصال سرویس نیاز دارند تا فقط سیستم بتواند به سرویسها متصل شود.
سیستم سطح محافظت signature را به اجازههای امضا اختصاص میدهد.
اجازههای زمان اجرا
اجازههای زمان اجرا، که بهعنوان اجازههای خطرناک نیز شناخته میشوند، به برنامه شما دسترسی بیشتری به دادههای محدودشده میدهند یا به برنامه شما اجازه میدهند کنشهای محدودشدهای را انجام دهد که بهطور قابلتوجهی بر سیستم و برنامههای دیگر تأثیر میگذارند. بنابراین، قبلاز اینکه بتوانید به دادههای محدودشده دسترسی پیدا کنید یا کنشهای محدودشده را انجام دهید، باید در برنامهتان اجازههای زمان اجرا را درخواست کنید. فرض نکنید که این اجازهها قبلاً اعطا شدهاند—آنها را بررسی کنید و درصورت نیاز، قبلاز هر دسترسی آنها را درخواست کنید.
وقتی برنامه شما درخواست اجازه زمان اجرا میکند، سیستم پیامواره اجازه زمان اجرا را نشان میدهد، همانطور که در شکل ۳ نشان داده شده است.
بسیاری از اجازههای زمان اجرا به دادههای خصوصی کاربر دسترسی دارند، نوع خاصی از دادههای محدودشده که شامل اطلاعات بالقوه حساس است. نمونههایی از دادههای خصوصی کاربر شامل مکان و اطلاعات تماس است.
میکروفون و دوربین دسترسی به اطلاعات بسیار حساس را فراهم میکنند. بنابراین، سیستم به شما کمک میکند توضیح دهید چرا برنامهتان به این اطلاعات دسترسی دارد.
سیستم سطح محافظت dangerous را به اجازههای زمان اجرا اختصاص میدهد.
اجازههای ویژه
اجازههای ویژه با عملیات خاص برنامه مطابقت دارد. فقط پلاتفرم و سازندگان تجهیزات اصلی میتوانند اجازههای ویژه را تعریف کنند. علاوهبراین، پلاتفرم و سازندگان تجهیزات اصلی معمولاً وقتی میخواهند از دسترسی به کنشهای بسیار قدرتمند، مثل ترسیم روی برنامههای دیگر، محافظت کنند، اجازههای ویژهای تعریف میکنند.
صفحه دسترسی ویژه برنامه در تنظیمات سیستم حاوی مجموعهای از عملیات قابلتغییر توسط کاربر است. بسیاری از این عملیاتها بهعنوان اجازههای ویژه پیادهسازی میشوند.
درباره نحوه درخواست اجازههای ویژه بیشتر بدانید.
سیستم سطح محافظت appop را به اجازههای ویژه اختصاص میدهد.
گروههای اجازه
اجازهها میتوانند به گروههای اجازه تعلق داشته باشند. گروههای اجازه از مجموعهای از اجازههای مرتبط منطقی تشکیل شدهاند. برای مثال، اجازههای ارسال و دریافت پیامک ممکن است به یک گروه تعلق داشته باشند، زیرا هر دو به تعامل برنامه با پیامک مربوط میشوند.
گروههای اجازه به سیستم کمک میکنند تعداد کادرهای گفتگوی سیستمی را که هنگام درخواست اجازههای بسیار مرتبط توسط برنامه به کاربر نشان داده میشود بهحداقل برساند. وقتی پیاموارهای به کاربر نشان داده میشود تا اجازههایی را به برنامهای اعطا کند، اجازههای متعلق به یک گروه در یک میانای یکسان نشان داده میشوند. بااینحال، اجازهها میتوانند بدون اطلاع قبلی گروهها را تغییر دهند، بنابراین فرض نکنید که یک اجازه خاص با هر اجازه دیگری گروهبندی شده است.
روالهای مطلوب
اجازههای برنامه براساس ویژگیهای امنیتی سیستم ساخته شدهاند و به Android کمک میکنند تا از اهداف زیر دررابطهبا حریم خصوصی کاربر پشتیبانی کند:
- کنترل: کاربر بر دادههایی که با برنامهها همرسانی میکند کنترل دارد.
- شفافیت: کاربر متوجه میشود که برنامه از چه دادههایی استفاده میکند و چرا برنامه به این دادهها دسترسی دارد.
- کمینهسازی جمعآوری داده: برنامه فقط به دادههایی دسترسی پیدا میکند و از آنها استفاده میکند که برای تکلیف یا کنش خاصی که کاربر فراخوانی میکند لازم است.
این بخش مجموعهای از روالهای مطلوب اصلی را برای استفاده مؤثر از اجازهها در برنامهتان ارائه میدهد. برای جزئیات بیشتر درباره نحوه کار با اجازهها در Android، به صفحه روالهای مطلوب اجازههای برنامه مراجعه کنید.
درخواست حداقل تعداد اجازهها
وقتی کاربر کنش خاصی را در برنامهتان درخواست میکند، برنامهتان باید فقط اجازههایی را درخواست کند که برای تکمیل آن کنش نیاز دارد. بسته به نحوه استفاده شما از اجازهها، ممکن است روش جایگزینی برای برآورده کردن مورد استفاده برنامهتان بدون تکیه بر دسترسی به اطلاعات حساس وجود داشته باشد.
مرتبط کردن اجازههای زمان اجرا با کنشهای خاص
تا جایی که ممکن است اجازهها را در مراحل پایانی جریان موارد استفاده برنامهتان درخواست کنید. برای مثال، اگر برنامهتان به کاربران اجازه میدهد پیام صوتی به دیگران ارسال کنند، صبر کنید تا کاربر به صفحه پیامرسانی برود و دکمه ارسال پیام صوتی را فشار دهد. پساز اینکه کاربر دکمه را فشار داد، برنامهتان میتواند دسترسی به میکروفون را درخواست کند.
وابستگیهای برنامهتان را درنظر بگیرید
وقتی کتابخانهای را اضافه میکنید، الزامات اجازه آن را نیز به ارث میبرید. از اجازههایی که هر وابستگی نیاز دارد و اینکه آن اجازهها برای چه استفاده میشوند مطلع باشید.
شفاف باشید
وقتی درخواست اجازه میکنید، بهطور واضح مشخص کنید به چه چیزی دسترسی پیدا میکنید، چرا، و اگر اجازهها رد شوند چه عملکردهایی تحتتأثیر قرار میگیرند، تا کاربران بتوانند تصمیمات آگاهانه بگیرند.
دسترسیهای سیستم را صریح کنید
وقتی به دادهها یا سختافزار حساس، مثل دوربین یا میکروفون، دسترسی پیدا میکنید، اگر سیستم ازقبل این نشانگرها را ارائه نمیدهد، در برنامهتان نشانگر مداومی ارائه دهید. این یادآوری به کاربران کمک میکند دقیقاً متوجه شوند برنامه شما چه زمانی به دادههای محدودشده دسترسی پیدا میکند یا کنشهای محدودشده را انجام میدهد.
اجازهها در مؤلفههای سیستم
اجازهها فقط برای درخواست عملکرد سیستم نیستند. همانطور که در صفحه مربوط به نحوه محدود کردن تعامل با برنامههای دیگر شرح داده شده است، مؤلفههای سیستم برنامهتان میتوانند برنامههای دیگری را که میتوانند با برنامهتان تعامل داشته باشند محدود کنند.