مجوزها در اندروید

مجوزهای برنامه با محافظت از دسترسی به موارد زیر، به حفظ حریم خصوصی کاربر کمک می‌کنند:

  • داده‌های محدود ، مانند وضعیت سیستم و اطلاعات تماس کاربران
  • اقدامات محدود ، مانند اتصال به دستگاه جفت‌شده و ضبط صدا

این صفحه مروری بر نحوه عملکرد مجوزهای اندروید، از جمله گردش کار سطح بالا برای استفاده از مجوزها، شرح انواع مختلف مجوزها و برخی از بهترین شیوه‌ها برای استفاده از مجوزها در برنامه شما ارائه می‌دهد. صفحات دیگر نحوه به حداقل رساندن درخواست‌های برنامه شما برای مجوزها ، اعلام مجوزها ، درخواست مجوزهای زمان اجرا و محدود کردن نحوه تعامل سایر برنامه‌ها با اجزای برنامه شما را توضیح می‌دهند.

برای مشاهده لیست کامل مجوزهای برنامه‌های اندروید، به صفحه مرجع API مجوزها مراجعه کنید.

برای مشاهده برخی از برنامه‌های نمونه که گردش کار مجوزها را نشان می‌دهند، از مخزن نمونه‌های مجوز اندروید در GitHub دیدن کنید.

گردش کار برای استفاده از مجوزها

اگر برنامه شما قابلیت‌هایی ارائه می‌دهد که ممکن است نیاز به دسترسی به داده‌های محدود یا اقدامات محدود داشته باشد، مشخص کنید که آیا می‌توانید اطلاعات را دریافت کنید یا اقدامات را بدون نیاز به اعلام مجوز انجام دهید. می‌توانید موارد استفاده زیادی را در برنامه خود، مانند گرفتن عکس، توقف پخش رسانه و نمایش تبلیغات مرتبط، بدون نیاز به اعلام هیچ مجوزی، انجام دهید.

اگر تصمیم دارید که برنامه شما برای انجام یک مورد استفاده، به داده‌های محدود شده دسترسی داشته باشد یا اقدامات محدودی را انجام دهد، مجوزهای مناسب را اعلام کنید. برخی از مجوزها، که به عنوان مجوزهای زمان نصب شناخته می‌شوند، به طور خودکار هنگام نصب برنامه شما اعطا می‌شوند. سایر مجوزها، که به عنوان مجوزهای زمان اجرا شناخته می‌شوند، از برنامه شما می‌خواهند که یک قدم جلوتر برود و در زمان اجرا درخواست مجوز کند.

شکل ۱ گردش کار استفاده از مجوزهای برنامه را نشان می‌دهد:

شکل ۱. گردش کار سطح بالا برای استفاده از مجوزها در اندروید.

انواع مجوزها

اندروید مجوزها را به انواع مختلفی طبقه‌بندی می‌کند، از جمله مجوزهای زمان نصب، مجوزهای زمان اجرا و مجوزهای ویژه. نوع هر مجوز، دامنه داده‌های محدودی را که برنامه شما می‌تواند به آنها دسترسی داشته باشد و دامنه اقدامات محدودی را که برنامه شما می‌تواند انجام دهد، هنگامی که سیستم آن مجوز را به برنامه شما اعطا می‌کند، نشان می‌دهد. سطح حفاظت برای هر مجوز بر اساس نوع آن است و در صفحه مرجع API مجوزها نشان داده شده است.

مجوزهای زمان نصب

تصویر سمت چپ فهرستی از مجوزهای زمان نصب یک برنامه را نشان می‌دهد. تصویر سمت راست یک پنجره‌ی بازشو را نشان می‌دهد که شامل دو گزینه است: اجازه دادن و رد کردن.
شکل ۲. فهرست مجوزهای زمان نصب یک برنامه که در فروشگاه برنامه نمایش داده می‌شود.

مجوزهای زمان نصب، به برنامه شما دسترسی محدودی به داده‌های محدود شده می‌دهند یا به برنامه شما اجازه می‌دهند اقدامات محدودی را انجام دهد که حداقل تأثیر را بر سیستم یا سایر برنامه‌ها داشته باشد. وقتی مجوزهای زمان نصب را در برنامه خود اعلام می‌کنید، فروشگاه برنامه هنگام مشاهده صفحه جزئیات برنامه، همانطور که در شکل 2 نشان داده شده است، یک اعلان مجوز زمان نصب را به کاربر نشان می‌دهد. سیستم به طور خودکار هنگام نصب برنامه توسط کاربر، این مجوزها را به برنامه شما اعطا می‌کند.

اندروید شامل چندین زیرگروه از مجوزهای زمان نصب، از جمله مجوزهای عادی و مجوزهای امضا، است.

مجوزهای عادی

این مجوزها امکان دسترسی به داده‌ها و اقداماتی را فراهم می‌کنند که فراتر از سندباکس برنامه شما هستند، اما خطر بسیار کمی برای حریم خصوصی کاربر و عملکرد سایر برنامه‌ها دارند.

سیستم سطح حفاظت normal را به مجوزهای عادی اختصاص می‌دهد.

مجوزهای امضا

سیستم فقط زمانی به یک برنامه اجازه امضا می‌دهد که آن برنامه توسط همان گواهی امضا شده باشد که برنامه یا سیستم عاملی که مجوز را تعریف می‌کند، امضا کرده است.

برنامه‌هایی که سرویس‌های ممتاز مانند سرویس‌های تکمیل خودکار یا VPN را پیاده‌سازی می‌کنند، نیز از مجوزهای امضا استفاده می‌کنند. این برنامه‌ها به مجوزهای امضای اتصال سرویس نیاز دارند تا فقط سیستم بتواند به سرویس‌ها متصل شود.

سیستم، سطح حفاظت signature را به مجوزهای امضا اختصاص می‌دهد.

مجوزهای زمان اجرا

یک پنجره‌ی محاوره‌ای باز می‌شود که شامل دو گزینه است: اجازه دادن و رد کردن.
شکل ۳. اعلان مجوز سیستم که هنگام درخواست مجوز زمان اجرا توسط برنامه شما ظاهر می‌شود.

مجوزهای زمان اجرا، که به عنوان مجوزهای خطرناک نیز شناخته می‌شوند، به برنامه شما دسترسی اضافی به داده‌های محدود شده می‌دهند یا به برنامه شما اجازه می‌دهند اقدامات محدودی را انجام دهد که تأثیر قابل توجهی بر سیستم و سایر برنامه‌ها دارد. بنابراین، قبل از اینکه بتوانید به داده‌های محدود شده دسترسی پیدا کنید یا اقدامات محدود شده را انجام دهید، باید مجوزهای زمان اجرا را در برنامه خود درخواست کنید . فرض نکنید که این مجوزها قبلاً اعطا شده‌اند - آنها را بررسی کنید و در صورت نیاز، قبل از هر دسترسی، آنها را درخواست کنید.

وقتی برنامه شما درخواست مجوز اجرا می‌کند، سیستم همانطور که در شکل ۳ نشان داده شده است، یک اعلان مجوز اجرا ارائه می‌دهد.

بسیاری از مجوزهای زمان اجرا به داده‌های خصوصی کاربر ، نوع خاصی از داده‌های محدود که شامل اطلاعات بالقوه حساس است، دسترسی دارند. نمونه‌هایی از داده‌های خصوصی کاربر شامل اطلاعات مکان و تماس است.

میکروفون و دوربین دسترسی به اطلاعات بسیار حساس را فراهم می‌کنند. بنابراین، سیستم به شما کمک می‌کند تا توضیح دهید که چرا برنامه شما به این اطلاعات دسترسی دارد .

سیستم سطح حفاظت dangerous را به مجوزهای زمان اجرا اختصاص می‌دهد.

مجوزهای ویژه

مجوزهای ویژه مربوط به عملیات خاص برنامه هستند. فقط پلتفرم و تولیدکنندگان اصلی تجهیزات (OEM) می‌توانند مجوزهای ویژه را تعریف کنند. علاوه بر این، پلتفرم و تولیدکنندگان اصلی تجهیزات معمولاً مجوزهای ویژه را زمانی تعریف می‌کنند که می‌خواهند از دسترسی به اقدامات بسیار قدرتمندی مانند ترسیم روی برنامه‌های دیگر محافظت کنند.

صفحه دسترسی ویژه به برنامه‌ها در تنظیمات سیستم شامل مجموعه‌ای از عملیات قابل تغییر توسط کاربر است. بسیاری از این عملیات‌ها به صورت مجوزهای ویژه پیاده‌سازی شده‌اند.

درباره نحوه درخواست مجوزهای ویژه بیشتر بدانید.

سیستم سطح حفاظت appop را به مجوزهای ویژه اختصاص می‌دهد.

گروه‌های مجوز

مجوزها می‌توانند به گروه‌های مجوز تعلق داشته باشند. گروه‌های مجوز شامل مجموعه‌ای از مجوزهای مرتبط با منطق هستند. برای مثال، مجوزهای ارسال و دریافت پیامک ممکن است به یک گروه تعلق داشته باشند، زیرا هر دو به تعامل برنامه با پیامک مربوط می‌شوند.

گروه‌های مجوز به سیستم کمک می‌کنند تا تعداد پنجره‌های محاوره‌ای سیستم که هنگام درخواست مجوزهای نزدیک به هم توسط یک برنامه به کاربر نمایش داده می‌شوند را به حداقل برساند. هنگامی که به کاربر درخواستی برای اعطای مجوز برای یک برنامه ارائه می‌شود، مجوزهای متعلق به همان گروه در همان رابط کاربری نمایش داده می‌شوند. با این حال، مجوزها می‌توانند بدون اطلاع قبلی گروه‌ها را تغییر دهند، بنابراین فرض نکنید که یک مجوز خاص با هر مجوز دیگری گروه‌بندی شده است.

بهترین شیوه‌ها

مجوزهای برنامه بر اساس ویژگی‌های امنیتی سیستم ساخته می‌شوند و به اندروید کمک می‌کنند تا از اهداف زیر در رابطه با حریم خصوصی کاربر پشتیبانی کند:

  • کنترل: کاربر بر داده‌هایی که با برنامه‌ها به اشتراک می‌گذارد، کنترل دارد.
  • شفافیت: کاربر متوجه می‌شود که یک برنامه از چه داده‌هایی استفاده می‌کند و چرا برنامه به این داده‌ها دسترسی دارد.
  • به حداقل رساندن داده‌ها: یک برنامه فقط به داده‌هایی دسترسی پیدا می‌کند و از آنها استفاده می‌کند که برای یک کار یا اقدام خاص که کاربر فراخوانی می‌کند، مورد نیاز است.

این بخش مجموعه‌ای از بهترین شیوه‌های اصلی برای استفاده مؤثر از مجوزها در برنامه شما را ارائه می‌دهد. برای جزئیات بیشتر در مورد نحوه کار با مجوزها در اندروید، به صفحه بهترین شیوه‌های مجوزهای برنامه مراجعه کنید.

درخواست حداقل تعداد مجوزها

وقتی کاربر درخواست یک اقدام خاص را در برنامه شما می‌دهد، برنامه شما باید فقط مجوزهایی را که برای انجام آن اقدام نیاز دارد، درخواست کند. بسته به نحوه استفاده شما از مجوزها، ممکن است روش جایگزینی برای انجام مورد استفاده برنامه شما بدون نیاز به دسترسی به اطلاعات حساس وجود داشته باشد.

مرتبط کردن مجوزهای زمان اجرا با اقدامات خاص

تا حد امکان درخواست مجوز را در مراحل پایانی جریان موارد استفاده برنامه خود قرار دهید. برای مثال، اگر برنامه شما به کاربران اجازه می‌دهد پیام‌های صوتی برای دیگران ارسال کنند، صبر کنید تا کاربر به صفحه پیام‌رسانی برود و دکمه ارسال پیام صوتی را فشار دهد. پس از اینکه کاربر دکمه را فشار داد، برنامه شما می‌تواند درخواست دسترسی به میکروفون را بدهد.

وابستگی‌های برنامه خود را در نظر بگیرید

وقتی یک کتابخانه را اضافه می‌کنید، الزامات مجوز آن را نیز به ارث می‌برید. از مجوزهایی که هر وابستگی نیاز دارد و اینکه این مجوزها برای چه مواردی استفاده می‌شوند، آگاه باشید.

شفاف باشید

وقتی درخواست مجوز می‌کنید، در مورد آنچه به آن دسترسی دارید، دلیل آن و اینکه در صورت رد مجوزها، چه عملکردهایی تحت تأثیر قرار می‌گیرند، شفاف باشید تا کاربران بتوانند تصمیمات آگاهانه‌ای بگیرند.

دسترسی‌های سیستم را صریح کنید

وقتی به داده‌ها یا سخت‌افزار حساسی مانند دوربین یا میکروفون دسترسی پیدا می‌کنید، اگر سیستم از قبل این نشانگرها را ارائه نمی‌دهد، به‌طور مداوم در برنامه خود این نشانگرها را ارائه دهید. این یادآوری به کاربران کمک می‌کند تا دقیقاً بدانند چه زمانی برنامه شما به داده‌های محدود شده دسترسی پیدا می‌کند یا اقدامات محدودی را انجام می‌دهد.

مجوزها در اجزای سیستم

مجوزها فقط برای درخواست عملکرد سیستم نیستند. اجزای سیستم برنامه شما می‌توانند تعامل سایر برنامه‌ها با برنامه شما را محدود کنند، همانطور که در صفحه مربوط به نحوه محدود کردن تعامل با سایر برنامه‌ها توضیح داده شده است.