الأذونات على Android

تساعد أذونات التطبيقات في دعم خصوصية المستخدم من خلال حماية الوصول إلى ما يلي:

  • البيانات المحظورة، مثل حالة النظام ومعلومات الاتصال بالمستخدمين
  • الإجراءات المحظورة، مثل الاتصال بجهاز مقترن وتسجيل صوت

تقدّم هذه الصفحة نظرة عامة حول آلية عمل أذونات Android، بما في ذلك سير عمل عالي المستوى لاستخدام الأذونات، وأوصاف أنواع مختلفة من الأذونات، وبعض أفضل الممارسات لاستخدام الأذونات في تطبيقك. توضّح صفحات أخرى كيفية تقليل طلبات تطبيقك للحصول على أذونات وتحديد الأذونات وطلب أذونات التشغيل وتقييد كيفية تفاعل التطبيقات الأخرى مع مكوِّنات تطبيقك.

لعرض قائمة كاملة بأذونات تطبيقات Android، يمكنك الانتقال إلى صفحة مرجع واجهة برمجة تطبيقات الأذونات.

للاطّلاع على بعض نماذج التطبيقات التي تعرض سير عمل الأذونات، يُرجى زيارة مستودع نماذج أذونات Android على GitHub.

سير عمل استخدام الأذونات

إذا كان تطبيقك يوفّر وظائف قد تتطلب الوصول إلى بيانات محظورة أو إجراءات محظورة، عليك تحديد ما إذا كان بإمكانك الحصول على المعلومات أو تنفيذ الإجراءات بدون الحاجة إلى توضيح الأذونات. يمكنك استيفاء العديد من حالات الاستخدام في تطبيقك، مثل التقاط الصور وإيقاف تشغيل الوسائط مؤقتًا وعرض إعلانات ذات صلة بدون الحاجة إلى تقديم بيان أي أذونات.

إذا قررت أنّ تطبيقك يجب أن يصل إلى بيانات محظورة أو اتّخاذ إجراءات محدودة لتلبية حالة استخدام، يُرجى توضيح الأذونات المناسبة. يتم تلقائيًا منح بعض الأذونات المعروفة باسم أذونات وقت التثبيت عند تثبيت تطبيقك. أمّا الأذونات الأخرى، المعروفة باسم أذونات وقت التشغيل، فتتطلب من تطبيقك التقدم بطلب للحصول على تلك الأذونات في وقت التشغيل.

يوضِّح الشكل 1 سير العمل لاستخدام أذونات التطبيقات:

الشكل 1. سير عمل رفيع المستوى لاستخدام الأذونات على Android.

أنواع الأذونات

يصنف Android الأذونات إلى أنواع مختلفة، بما في ذلك أذونات وقت التثبيت وأذونات التشغيل والأذونات الخاصة. يشير نوع كل إذن إلى نطاق البيانات المحظورة التي يمكن لتطبيقك الوصول إليها، إلى جانب نطاق الإجراءات المحظورة التي يمكن لتطبيقك تنفيذها، عندما يمنحها النظام ذلك الإذن. يستند مستوى الحماية لكل إذن إلى نوعه ويتم عرضه في صفحة مرجع واجهة برمجة تطبيقات الأذونات.

أذونات وقت التثبيت

تعرض الصورة اليمنى قائمة بأذونات وقت تثبيت التطبيق. تعرض الصورة اليسرى مربّع حوار منبثق يتضمّن خيارَين: السماح والرفض.
الشكل 2. قائمة أذونات وقت تثبيت التطبيق، والتي تظهر في متجر التطبيقات.

إنّ أذونات وقت التثبيت تمنح تطبيقك إمكانية وصول محدودة إلى بيانات محظورة، أو تسمح لتطبيقك بتنفيذ إجراءات محدودة لا تؤثر سلبًا في النظام أو التطبيقات الأخرى. عندما تُعلن عن أذونات وقت التثبيت في تطبيقك، يقدّم متجر التطبيقات إشعارًا بإذن وقت التثبيت للمستخدم عند الاطّلاع على صفحة تفاصيل التطبيق، كما هو موضّح في الشكل 2. يمنح النظام تلقائيًا تطبيقك الأذونات عندما يثبّت المستخدم تطبيقك.

يتضمن Android عدة أنواع فرعية من أذونات وقت التثبيت، بما في ذلك الأذونات العادية وأذونات التوقيع.

الأذونات العادية

تسمح هذه الأذونات بالوصول إلى البيانات والإجراءات التي تتجاوز نطاق وضع الحماية في تطبيقك، ولكنها لا تشكّل خطرًا كبيرًا على خصوصية المستخدم وعمل التطبيقات الأخرى.

يضبط النظام مستوى حماية "normal" على الأذونات العادية.

أذونات التوقيع

يمنح النظام إذن التوقيع إلى تطبيق فقط عندما يتم توقيعه من خلال الشهادة نفسها مثل التطبيق أو نظام التشغيل الذي يحدّد الإذن.

كذلك، تستفيد التطبيقات التي تستخدم خدمات مميزة، مثل الملء التلقائي أو خدمات الشبكة الافتراضية الخاصة، من أذونات التوقيع. تتطلّب هذه التطبيقات أذونات توقيع ربط الخدمة حتى يمكن للنظام فقط الربط بالخدمات.

يخصِّص النظام مستوى حماية signature لأذونات التوقيع.

أذونات وقت التشغيل

مربّع حوار منبثق يحتوي على خيارَين: السماح والرفض.
الشكل 3. رسالة المطالبة بإذن النظام التي تظهر عندما يطلب تطبيقك إذن التشغيل.

إنّ أذونات وقت التشغيل، المعروفة أيضًا باسم الأذونات الخطيرة، تمنح تطبيقك إمكانية وصول إضافية إلى بيانات محظورة أو تسمح لتطبيقك بتنفيذ إجراءات محظورة تؤثر بشكل كبير في النظام والتطبيقات الأخرى. ولذلك، يجب طلب أذونات التشغيل في تطبيقك قبل أن تتمكّن من الوصول إلى البيانات المشروطة أو تنفيذ إجراءات محظورة. لا تفترض أنه تم منح هذه الأذونات في وقت سابق، ولكن تحقَّق منها واطلبها قبل كل عملية وصول، إذا لزم الأمر.

عندما يطلب تطبيقك إذن وقت تشغيل، يعرض النظام رسالة مطالبة بإذن التشغيل، كما هو موضّح في الشكل 3.

تصل العديد من أذونات التشغيل إلى بيانات المستخدمين الخاصة، وهو نوع خاص من البيانات المشروطة التي قد تتضمّن معلومات حساسة. تتضمن أمثلة بيانات المستخدم الخاصة معلومات الموقع ومعلومات الاتصال.

ويتيح الميكروفون والكاميرا الوصول إلى معلومات حساسة بشكل خاص. وبالتالي، يساعدك النظام في توضيح سبب وصول تطبيقك إلى هذه المعلومات.

يضبط النظام مستوى حماية "dangerous" لأذونات التشغيل.

الأذونات الخاصة

تتوافق الأذونات الخاصة مع عمليات تطبيق معينة. يمكن فقط للمنصة والمصنّعين الأصليين للأجهزة تحديد أذونات خاصة. بالإضافة إلى ذلك، تحدّد المنصّة والمصنّعون الأصليون للأجهزة عادةً أذونات خاصة عندما يريدون حماية إمكانية الوصول إلى إجراءات معيّنة فعّالة بشكلٍ خاص، مثل الظهور أمام التطبيقات الأخرى.

تحتوي صفحة الوصول الخاص إلى التطبيقات في إعدادات النظام على مجموعة من العمليات التي يمكن للمستخدمين تبديلها. يتم تنفيذ العديد من هذه العمليات كأذونات خاصة.

مزيد من المعلومات حول كيفية طلب أذونات خاصة.

يضبط النظام مستوى حماية "appop" على أذونات خاصة.

مجموعات أذونات

يمكن أن تنتمي الأذونات إلى مجموعات الأذونات. تتألف مجموعات الأذونات من مجموعة من الأذونات ذات الصلة المنطقية. على سبيل المثال، قد تنتمي أذونات إرسال رسائل SMS وتلقيها إلى نفس المجموعة، حيث يرتبط كلاهما بتفاعل التطبيق مع الرسائل القصيرة SMS.

تساعد مجموعات الأذونات النظام على تقليل عدد مربعات حوار النظام التي يتم عرضها للمستخدم عندما يطلب التطبيق أذونات وثيقة الصلة. عندما تظهر للمستخدم رسالة تطلب منه منح أذونات لأحد التطبيقات، يتم عرض الأذونات التي تنتمي إلى المجموعة نفسها في الواجهة نفسها. ومع ذلك، يمكن أن تغيّر الأذونات المجموعات بدون إشعار، لذا لا تفترض أنّ إذنًا معيّنًا قد تم جمعه مع أي إذن آخر.

أفضل الممارسات

تستند أذونات التطبيقات إلى ميزات أمان النظام وتساعد Android في تحقيق الأهداف التالية المتعلّقة بخصوصية المستخدم:

  • التحكّم: يتحكّم المستخدم في البيانات التي يشاركها مع التطبيقات.
  • الشفافية: يفهم المستخدم البيانات التي يستخدمها التطبيق وسبب وصوله إلى هذه البيانات.
  • تصغير البيانات: يصل التطبيق إلى البيانات المطلوبة أو يستخدمها فقط لمهمة أو إجراء محدّد يستدعي المستخدم.

يعرض هذا القسم مجموعة من أفضل الممارسات الأساسية لاستخدام الأذونات بشكل فعّال في تطبيقك. لمزيد من التفاصيل حول كيفية التعامل مع الأذونات على Android، انتقِل إلى صفحة أفضل ممارسات أذونات التطبيق.

طلب حد أدنى لعدد الأذونات

عندما يطلب المستخدم إجراءً معينًا في تطبيقك، يجب أن يطلب تطبيقك الأذونات اللازمة فقط لإكمال هذا الإجراء. وبناءً على كيفية استخدامك للأذونات، قد تكون هناك طريقة بديلة لتلبية حالة استخدام تطبيقك بدون الاعتماد على الوصول إلى المعلومات الحساسة.

ربط أذونات وقت التشغيل بإجراءات محدّدة

يجب طلب الأذونات في وقت متأخر من مسار حالات استخدام تطبيقك قدر الإمكان. على سبيل المثال، إذا كان تطبيقك يسمح للمستخدمين بإرسال رسائل صوتية إلى الآخرين، انتظِر حتى ينتقل المستخدم إلى شاشة المراسلة ويضغط على الزر إرسال رسالة صوتية. بعد أن يضغط المستخدم على الزر، يمكن لتطبيقك طلب الوصول إلى الميكروفون.

مراعاة تبعيات تطبيقك

عند تضمين مكتبة، تكتسب أيضًا متطلبات الأذونات الخاصة بها. كن على دراية بالأذونات التي تتطلبها كل تبعية وما تُستخدَم هذه الأذونات من أجله.

التحلّي بالشفافية

عند تقديم طلب الحصول على أذونات، يجب توفير معلومات واضحة بشأن العناصر التي تصل إليها وأسبابها والوظائف المتأثرة في حال تم رفض الأذونات، حتى يتمكّن المستخدمون من اتخاذ قرارات مدروسة.

جعل عمليات وصول النظام فاضحة

عند الوصول إلى بيانات أو أجهزة حساسة، مثل الكاميرا أو الميكروفون، قدِّم مؤشرًا مستمرًا في تطبيقك إذا لم يكن النظام يوفّر هذه المؤشرات. يساعد هذا التذكير المستخدمين على معرفة متى يصل تطبيقك إلى بيانات محدودة أو ينفّذ إجراءات محظورة.

الأذونات في مكوّنات النظام

لا تُستخدم الأذونات لطلب وظائف النظام فقط. يمكن لمكوّنات النظام في تطبيقك فرض قيود على التطبيقات الأخرى التي يمكنها التفاعل مع تطبيقك، كما هو موضّح في الصفحة حول كيفية تقييد التفاعلات مع التطبيقات الأخرى.