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