संवेदनशील डेटा को ऐक्सेस करने की ज़रूरतों का पता लगाना

ऐप्लिकेशन की अनुमतियां, उपयोगकर्ता की निजता को सुरक्षित रखने में मदद करती हैं. ऐसा, इन चीज़ों के ऐक्सेस को सुरक्षित रखकर किया जाता है:

  • प्रतिबंधित डेटा, जैसे कि सिस्टम की स्थिति और उपयोगकर्ताओं की संपर्क जानकारी
  • पाबंदी वाली कार्रवाइयां, जैसे कि जोड़े गए डिवाइस से कनेक्ट करना और ऑडियो रिकॉर्ड करना

इस पेज पर, Android अनुमतियों के काम करने के तरीके के बारे में खास जानकारी दी गई है. इसमें अनुमतियों का इस्तेमाल करने के लिए, हाई-लेवल वर्कफ़्लो, अलग-अलग तरह की अनुमतियों के बारे में जानकारी, और अपने ऐप्लिकेशन में अनुमतियों का इस्तेमाल करने के कुछ सबसे सही तरीके शामिल हैं. अन्य पेजों पर, अपने ऐप्लिकेशन के लिए अनुमतियों के अनुरोधों को कम करने, अनुमतियों का एलान करने, रनटाइम अनुमतियों का अनुरोध करने, और आपके ऐप्लिकेशन के कॉम्पोनेंट के साथ अन्य ऐप्लिकेशन के इंटरैक्ट करने के तरीके पर पाबंदी लगाने के तरीके के बारे में बताया गया है.

Android ऐप्लिकेशन की अनुमतियों की पूरी सूची देखने के लिए, अनुमतियों वाले एपीआई के रेफ़रंस पेज पर जाएं.

अनुमतियों के वर्कफ़्लो को दिखाने वाले कुछ सैंपल ऐप्लिकेशन देखने के लिए, GitHub पर Android अनुमतियों के सैंपल के लिए रिपॉज़िटरी पर जाएं.

अनुमतियों का इस्तेमाल करने के लिए वर्कफ़्लो

अगर आपका ऐप्लिकेशन ऐसा फ़ंक्शन उपलब्ध कराता है जिसके लिए पाबंदी वाले डेटा या पाबंदी वाली कार्रवाइयों का ऐक्सेस ज़रूरी हो सकता है, तो यह तय करें कि क्या अनुमतियों का एलान किए बिना जानकारी हासिल की जा सकती है या कार्रवाइयां की जा सकती हैं. इसकी मदद से, अपने ऐप्लिकेशन में कई काम किए जा सकते हैं. जैसे, फ़ोटो लेना, मीडिया चलाना रोकना, और काम के विज्ञापन दिखाना. इसके लिए, आपको किसी अनुमति का एलान करने की ज़रूरत नहीं है.

अगर आपको लगता है कि आपके ऐप्लिकेशन को किसी इस्तेमाल के उदाहरण को पूरा करने के लिए, पाबंदी वाला डेटा ऐक्सेस करना है या पाबंदी वाली कार्रवाइयां करनी हैं, तो ज़रूरी अनुमतियों का एलान करें. कुछ अनुमतियां, इंस्टॉल के समय मिलने वाली अनुमतियां कहलाती हैं. ये अनुमतियां, ऐप्लिकेशन इंस्टॉल होने पर अपने-आप मिल जाती हैं. अन्य अनुमतियों को रनटाइम की अनुमतियां कहा जाता है. इनके लिए, आपके ऐप्लिकेशन को एक कदम आगे बढ़कर, रनटाइम के दौरान अनुमति का अनुरोध करना होगा.

पहली इमेज में, ऐप्लिकेशन की अनुमतियों का इस्तेमाल करने के वर्कफ़्लो के बारे में बताया गया है:

पहली इमेज. Android पर अनुमतियों का इस्तेमाल करने के लिए, बेहतर वर्कफ़्लो.

अलग-अलग तरह की अनुमतियां

Android, अनुमतियों को अलग-अलग कैटगरी में बांटता है. इनमें इंस्टॉल के समय मांगी जाने वाली अनुमतियां, रनटाइम के दौरान मांगी जाने वाली अनुमतियां, और खास अनुमतियां शामिल हैं. हर अनुमति के टाइप से पता चलता है कि आपका ऐप्लिकेशन, पाबंदी वाले किस डेटा को ऐक्सेस कर सकता है. साथ ही, सिस्टम से अनुमति मिलने पर, आपका ऐप्लिकेशन पाबंदी वाली किन कार्रवाइयों को कर सकता है. हर अनुमति के लिए सुरक्षा का लेवल, उसके टाइप पर आधारित होता है. यह अनुमतियों वाले एपीआई के रेफ़रंस पेज पर दिखता है.

इंस्टॉल के समय मांगी जाने वाली अनुमतियां

बाईं ओर दी गई इमेज में, ऐप्लिकेशन इंस्टॉल करते समय दी गई अनुमतियों की सूची दिख रही है. दाईं ओर दी गई इमेज में, एक पॉप-अप डायलॉग दिखाया गया है. इसमें दो विकल्प हैं: अनुमति दें और अनुमति न दें.
दूसरी इमेज. ऐप्लिकेशन इंस्टॉल करने के समय मांगी जाने वाली अनुमतियों की सूची, जो ऐप स्टोर में दिखती है.

इंस्टॉल के समय दी गई अनुमतियां, आपके ऐप्लिकेशन को पाबंदी वाले डेटा का सीमित ऐक्सेस देती हैं या ऐप्लिकेशन को पाबंदी वाली ऐसी कार्रवाइयां करने की अनुमति देती हैं जिनसे सिस्टम या अन्य ऐप्लिकेशन पर कम से कम असर पड़ता है. जब आपके ऐप्लिकेशन में इंस्टॉल के समय मांगी जाने वाली अनुमतियों का एलान किया जाता है, तो ऐप्लिकेशन स्टोर, उपयोगकर्ता को ऐप्लिकेशन के ज़्यादा जानकारी वाले पेज पर, इंस्टॉल के समय मांगी जाने वाली अनुमतियों की सूचना दिखाता है. इसकी जानकारी, दूसरी इमेज में दी गई है. जब कोई उपयोगकर्ता आपका ऐप्लिकेशन इंस्टॉल करता है, तो सिस्टम अपने-आप आपके ऐप्लिकेशन को अनुमतियां देता है.

Android में इंस्टॉल के समय मांगी जाने वाली अनुमतियों के कई सब-टाइप शामिल होते हैं. इनमें सामान्य अनुमतियां और हस्ताक्षर की अनुमतियां शामिल हैं.

सामान्य अनुमतियां

इन अनुमतियों से, आपके ऐप्लिकेशन के सैंडबॉक्स से बाहर के डेटा और कार्रवाइयों को ऐक्सेस करने की अनुमति मिलती है. हालांकि, इनसे उपयोगकर्ता की निजता और अन्य ऐप्लिकेशन के काम करने पर बहुत कम जोखिम होता है.

सिस्टम, सामान्य अनुमतियों के लिए normal सुरक्षा लेवल असाइन करता है.

हस्ताक्षर की अनुमतियां

सिस्टम किसी ऐप्लिकेशन को सिग्नेचर की अनुमति सिर्फ़ तब देता है, जब उस ऐप्लिकेशन को साइन करने वाला सर्टिफ़िकेट, अनुमति तय करने वाले ऐप्लिकेशन या ओएस का हो.

ऑटोमैटिक जानकारी भरने या वीपीएन जैसी खास सेवाएं देने वाले ऐप्लिकेशन भी, हस्ताक्षर की अनुमतियों का इस्तेमाल करते हैं. इन ऐप्लिकेशन को, सेवाओं को बांधने के लिए सिग्नेचर की अनुमतियां चाहिए, ताकि सिर्फ़ सिस्टम ही सेवाओं से जुड़ सके.

सिस्टम, सिग्नेचर की अनुमतियों को सुरक्षा का signature लेवल असाइन करता है.

रनटाइम अनुमतियां

एक पॉप-अप डायलॉग, जिसमें दो विकल्प होते हैं: अनुमति दें और अनुमति न दें.
तीसरी इमेज. सिस्टम की अनुमति का अनुरोध करने पर दिखने वाला मैसेज. यह मैसेज तब दिखता है, जब आपका ऐप्लिकेशन रनटाइम की अनुमति का अनुरोध करता है.

रनटाइम की अनुमतियां, खतरनाक अनुमतियां भी कहलाती हैं. ये आपके ऐप्लिकेशन को पाबंदी वाले डेटा का ऐक्सेस देती हैं या उसे पाबंदी वाली ऐसी कार्रवाइयां करने की अनुमति देती हैं जिनका सिस्टम और अन्य ऐप्लिकेशन पर ज़्यादा असर पड़ता है. इसलिए, पाबंदी वाला डेटा ऐक्सेस करने या पाबंदी वाली कार्रवाइयां करने से पहले, आपको अपने ऐप्लिकेशन में रनटाइम अनुमतियों का अनुरोध करना होगा. यह मत मानें कि ये अनुमतियां पहले ही दी जा चुकी हैं. इन्हें देखें और ज़रूरत पड़ने पर, हर ऐक्सेस से पहले इनका अनुरोध करें.

जब आपका ऐप्लिकेशन रनटाइम की अनुमति का अनुरोध करता है, तो सिस्टम रनटाइम की अनुमति का प्रॉम्प्ट दिखाता है, जैसा कि तीसरे चित्र में दिखाया गया है.

कई रनटाइम अनुमतियां, उपयोगकर्ता का निजी डेटा ऐक्सेस करती हैं. यह एक खास तरह का पाबंदी वाला डेटा होता है, जिसमें संवेदनशील जानकारी शामिल हो सकती है. उपयोगकर्ता के निजी डेटा के उदाहरणों में, जगह की जानकारी और संपर्क जानकारी शामिल है.

माइक्रोफ़ोन और कैमरे से, खास तौर पर संवेदनशील जानकारी का ऐक्सेस मिलता है. इसलिए, यह सिस्टम आपको यह बताने में मदद करता है कि आपका ऐप्लिकेशन यह जानकारी क्यों ऐक्सेस करता है.

सिस्टम, रनटाइम की अनुमतियों को dangerous सुरक्षा लेवल असाइन करता है.

खास अनुमतियां

खास अनुमतियां, ऐप्लिकेशन के खास कामों से जुड़ी होती हैं. सिर्फ़ प्लैटफ़ॉर्म और OEM, खास अनुमतियां तय कर सकते हैं. इसके अलावा, जब प्लैटफ़ॉर्म और OEMs को खास तौर पर ज़्यादा असरदार कार्रवाइयों के ऐक्सेस को सुरक्षित रखना होता है, तो वे आम तौर पर खास अनुमतियां तय करते हैं. जैसे, अन्य ऐप्लिकेशन के ऊपर ड्रॉ करना.

सिस्टम सेटिंग में खास ऐप्लिकेशन ऐक्सेस पेज पर, उपयोगकर्ता के पास टॉगल करने की सुविधा वाले कई विकल्प होते हैं. इनमें से कई कार्रवाइयां, खास अनुमतियों के तौर पर लागू की जाती हैं.

खास अनुमतियों का अनुरोध करने के तरीके के बारे में ज़्यादा जानें.

सिस्टम, खास अनुमतियों को appop सुरक्षा लेवल असाइन करता है.

अनुमतियों के ग्रुप

अनुमतियां, अनुमति ग्रुप से जुड़ी हो सकती हैं. अनुमति ग्रुप में, लॉजिक के हिसाब से मिलती-जुलती अनुमतियां होती हैं. उदाहरण के लिए, एसएमएस भेजने और पाने की अनुमतियां एक ही ग्रुप से जुड़ी हो सकती हैं, क्योंकि दोनों एसएमएस के साथ ऐप्लिकेशन के इंटरैक्शन से जुड़ी हैं.

अनुमति के ग्रुप की मदद से, सिस्टम उन डायलॉग की संख्या को कम कर पाता है जो उपयोगकर्ता को तब दिखाए जाते हैं, जब कोई ऐप्लिकेशन मिलती-जुलती अनुमतियों का अनुरोध करता है. जब किसी उपयोगकर्ता को किसी ऐप्लिकेशन के लिए अनुमतियां देने का प्रॉम्प्ट दिखता है, तो एक ही ग्रुप की अनुमतियां एक ही इंटरफ़ेस में दिखती हैं. हालांकि, अनुमतियां बिना सूचना के ग्रुप में बदल सकती हैं. इसलिए, यह न मानें कि कोई खास अनुमति किसी अन्य अनुमति के साथ ग्रुप में है.

सबसे सही तरीके

ऐप्लिकेशन की अनुमतियां, सिस्टम की सुरक्षा से जुड़ी सुविधाओं पर आधारित होती हैं. साथ ही, ये Android को उपयोगकर्ता की निजता से जुड़े इन लक्ष्यों को हासिल करने में मदद करती हैं:

  • कंट्रोल: उपयोगकर्ता के पास, ऐप्लिकेशन के साथ शेयर किए जाने वाले डेटा का कंट्रोल होता है.
  • पारदर्शिता: उपयोगकर्ता को यह पता होता है कि ऐप्लिकेशन किस डेटा का इस्तेमाल करता है और वह इस डेटा को क्यों ऐक्सेस करता है.
  • ज़रूरत से ज़्यादा डेटा इकट्ठा न करना: ऐप्लिकेशन सिर्फ़ उस डेटा को ऐक्सेस और इस्तेमाल करता है जो उपयोगकर्ता के किसी खास टास्क या कार्रवाई के लिए ज़रूरी होता है.

इस सेक्शन में, आपके ऐप्लिकेशन में अनुमतियों का बेहतर तरीके से इस्तेमाल करने के लिए, सबसे सही तरीकों का एक सेट दिया गया है. Android पर अनुमतियों के साथ काम करने के तरीके के बारे में ज़्यादा जानने के लिए, ऐप्लिकेशन की अनुमतियों के सबसे सही तरीकों वाले पेज पर जाएं.

कम से कम अनुमतियों का अनुरोध करना

जब उपयोगकर्ता आपके ऐप्लिकेशन में किसी खास कार्रवाई का अनुरोध करता है, तो आपके ऐप्लिकेशन को सिर्फ़ उन अनुमतियों का अनुरोध करना चाहिए जिनकी ज़रूरत उस कार्रवाई को पूरा करने के लिए है. इस आधार पर कि आपने अनुमतियों का इस्तेमाल कैसे किया है, संवेदनशील जानकारी ऐक्सेस किए बिना भी अपने ऐप्लिकेशन के इस्तेमाल के उदाहरण को पूरा करने का कोई दूसरा तरीका हो सकता है.

रनटाइम की अनुमतियों को खास कार्रवाइयों से जोड़ना

अपने ऐप्लिकेशन के इस्तेमाल के उदाहरणों के फ़्लो में, अनुमतियों का अनुरोध ज़्यादा से ज़्यादा देर से करें. उदाहरण के लिए, अगर आपके ऐप्लिकेशन में उपयोगकर्ताओं को दूसरों को ऑडियो मैसेज भेजने की सुविधा मिलती है, तो तब तक इंतज़ार करें, जब तक उपयोगकर्ता मैसेजिंग स्क्रीन पर न पहुंच जाए और ऑडियो मैसेज भेजें बटन को न दबा दे. उपयोगकर्ता के बटन दबाने के बाद, आपका ऐप्लिकेशन माइक्रोफ़ोन का ऐक्सेस पाने का अनुरोध कर सकता है.

अपने ऐप्लिकेशन की डिपेंडेंसी पर विचार करना

लाइब्रेरी को शामिल करने पर, आपको उसकी अनुमति की शर्तों को भी पूरा करना पड़ेगा. यह जानें कि हर डिपेंडेंसी के लिए कौनसी अनुमतियां ज़रूरी हैं और उन अनुमतियों का इस्तेमाल कहां किया जाता है.

सही जानकारी दें

अनुमतियों के लिए अनुरोध करते समय, साफ़ तौर पर बताएं कि आपको क्या ऐक्सेस करना है और क्यों. साथ ही, यह भी बताएं कि अनुमतियों के अस्वीकार होने पर किन सुविधाओं पर असर पड़ेगा, ताकि उपयोगकर्ता सही फ़ैसले ले सकें.

सिस्टम के ऐक्सेस साफ़ तौर पर बताएं

अगर सिस्टम पहले से ही ये इंडिकेटर नहीं दिखाता, तो संवेदनशील डेटा या हार्डवेयर, जैसे कि कैमरा या माइक्रोफ़ोन को ऐक्सेस करने पर, अपने ऐप्लिकेशन में लगातार जानकारी दें. इस रिमाइंडर की मदद से, उपयोगकर्ता यह समझ पाते हैं कि आपका ऐप्लिकेशन, पाबंदी वाला डेटा कब ऐक्सेस करता है या पाबंदी वाली कार्रवाइयां कब करता है.

सिस्टम के कॉम्पोनेंट में अनुमतियां

अनुमतियां सिर्फ़ सिस्टम की सुविधाओं के लिए नहीं होती हैं. आपके ऐप्लिकेशन के सिस्टम कॉम्पोनेंट, यह तय कर सकते हैं कि कौनसे दूसरे ऐप्लिकेशन आपके ऐप्लिकेशन के साथ इंटरैक्ट कर सकते हैं. इस बारे में दूसरे ऐप्लिकेशन के साथ इंटरैक्ट करने पर पाबंदी लगाने के तरीके के पेज पर बताया गया है.