खास जानकारी
डिजिटल ऐसेट लिंक प्रोटोकॉल और एपीआई की मदद से, ऐप्लिकेशन या वेबसाइट अन्य ऐप्लिकेशन या वेबसाइटों के बारे में ऐसे स्टेटमेंट सार्वजनिक कर सकती है जिनकी पुष्टि की जा सकती है. उदाहरण के लिए, कोई वेबसाइट यह एलान कर सकती है कि वह किसी खास Android ऐप्लिकेशन से जुड़ी है या वह यह एलान कर सकती है कि वह किसी दूसरी वेबसाइट के साथ उपयोगकर्ता के क्रेडेंशियल शेयर करना चाहती है.
डिजिटल ऐसेट लिंक के इस्तेमाल के कुछ संभावित तरीके यहां दिए गए हैं:
- वेबसाइट A यह एलान करती है कि अगर ऐप्लिकेशन इंस्टॉल हो, तो मोबाइल डिवाइस पर उसकी साइट के लिंक, उनके लिए तय किए गए ऐप्लिकेशन में खुले होने चाहिए.
- वेबसाइट A एलान करती है कि वह अपने Chrome उपयोगकर्ता क्रेडेंशियल, वेबसाइट B के साथ शेयर कर सकती है, ताकि उपयोगकर्ता को वेबसाइट A में लॉग इन करने पर, वेबसाइट B में लॉग इन न करना पड़े.
- ऐप्लिकेशन A एलान करता है कि वह वेबसाइट B के साथ डिवाइस की सेटिंग शेयर कर सकता है, जैसे कि जगह की जानकारी.
मुख्य शब्द
- प्रिंसिपल: मुख्य खाता, स्टेटमेंट बनाने वाला ऐप्लिकेशन या वेबसाइट होता है. डिजिटल ऐसेट लिंक में, स्टेटमेंट की सूची को होस्ट करने वाले ऐप्लिकेशन या वेबसाइट का मुख्य खाता हमेशा होता है.
- स्टेटमेंट सूची: स्टेटमेंट ऐसे स्टेटमेंट सूची में शामिल होते हैं जिनमें एक या एक से ज़्यादा स्टेटमेंट होते हैं. स्टेटमेंट लिस्ट आसानी से समझ में आने वाली होती है और सार्वजनिक रूप से उपलब्ध होती है. यह ऐसी जगह पर उपलब्ध होती है जिसे मुख्य खाते का कंट्रोल होता है. साथ ही, स्टेटमेंट की सूची में छेड़छाड़ करना या उसके साथ छेड़छाड़ करना मुश्किल होता है. यह कोई फ़्री-स्टैंडिंग फ़ाइल या किसी दूसरे बड़े आइटम का कोई सेक्शन हो सकता है. उदाहरण के लिए, किसी वेबसाइट पर यह एक पूरी फ़ाइल होती है; Android ऐप्लिकेशन में, यह ऐप्लिकेशन मेनिफ़ेस्ट का एक सेक्शन होता है. गैर-मालिकाना हक वाले तरीकों का इस्तेमाल करके, कोई भी व्यक्ति स्टेटमेंट देख सकता है और उसकी पुष्टि कर सकता है. ज़्यादा जानकारी के लिए स्टेटमेंट की सूची का दस्तावेज़ देखें.
- स्टेटमेंट: स्टेटमेंट बेहतर तरीके से स्ट्रक्चर किया गया JSON होता है. इसमें relation (वह जानकारी जिसके बारे में जानकारी दी जाती है, जैसे कि: क्रेडेंशियल शेयर करना चालू करना) और relation (वह वेबसाइट या ऐप्लिकेशन जिस पर संबंध लागू होता है) शामिल होता है. इसलिए, हर स्टेटमेंट एक वाक्य की तरह होता है, जहां प्रिंसिपल टारगेट के बारे में रिलेशन बताता है.
- स्टेटमेंट उपभोक्ता: कोई स्टेटमेंट उपभोक्ता, मुख्य खाते से स्टेटमेंट की सूची का अनुरोध करता है, दिए गए मूलधन के ख़िलाफ़ स्टेटमेंट की मौजूदगी की जांच करता है और अगर वह मौजूद है, तो बताई गई कार्रवाई कर सकता है. ज़्यादा जानकारी के लिए, दस्तावेज़ से जुड़ा स्टेटमेंट देखें.
फटाफट इस्तेमाल के उदाहरण
यहां दिए गए उदाहरण में बताया गया है कि वेबसाइट www.example.com, डिजिटल ऐसेट लिंक का इस्तेमाल कैसे करती है. इससे यह तय किया जाता है कि साइट के यूआरएल के सभी लिंक, ब्राउज़र के बजाय किसी खास ऐप्लिकेशन में खुलने चाहिए:
- www.example.com वेबसाइट,
https://www.example.com/.well-known/assetlinks.json पर स्टेटमेंट की सूची पब्लिश करती है. यह किसी साइट पर स्टेटमेंट की सूची के लिए आधिकारिक नाम और जगह है; किसी दूसरी जगह के स्टेटमेंट या किसी दूसरे नाम के साथ दी गई स्टेटमेंट सूची इस साइट के लिए मान्य नहीं हैं. हमारे
उदाहरण में, स्टेटमेंट की सूची में एक स्टेटमेंट है, जो उसके Android ऐप्लिकेशन को उसकी साइट पर लिंक खोलने की अनुमति देता है:
[{ "relation": ["delegate_permission/common.handle_all_urls"], "target" : { "namespace": "android_app", "package_name": "com.example.app", "sha256_cert_fingerprints": ["hash_of_app_certificate"] } }]
स्टेटमेंट सूची में [ ] मार्क के अंदर स्टेटमेंट के कलेक्शन काम करते हैं, लेकिन हमारी उदाहरण फ़ाइल में सिर्फ़ एक स्टेटमेंट होता है.sha256_cert_fingerprints
, आपके ऐप्लिकेशन के साइनिंग सर्टिफ़िकेट का SHA256 फ़िंगरप्रिंट है. ज़्यादा जानकारी के लिए, Android ऐप्लिकेशन के लिंक वाले दस्तावेज़ देखें. - ऊपर दिए गए स्टेटमेंट में, Android ऐप्लिकेशन में एक इंटेंट फ़िल्टर है. यह उन यूआरएल की स्कीम, होस्ट, और पाथ पैटर्न के बारे में बताता है जिन्हें वह हैंडल करना चाहता है: इस मामले में, https://www.example.com. इंटेंट फ़िल्टर में एक खास एट्रिब्यूट
android:autoVerify
शामिल होता है. यह एट्रिब्यूट Android M का नया वर्शन है. इससे पता चलता है कि Android को ऐप्लिकेशन इंस्टॉल होने के बाद, इंटेंट फ़िल्टर में बताई गई वेबसाइट पर स्टेटमेंट की पुष्टि करनी चाहिए. - जब कोई उपयोगकर्ता ऐप्लिकेशन इंस्टॉल करता है. Android,
autoVerify
एट्रिब्यूट वाला इंटेंट फ़िल्टर देखता है और तय की गई साइट पर स्टेटमेंट सूची की मौजूदगी की जांच करता है. अगर यह सूची मौजूद है, तो Android जांच करता है कि उस फ़ाइल में ऐप्लिकेशन के लिए लिंक हैंडलिंग की जानकारी देने वाला स्टेटमेंट शामिल है या नहीं. इसके बाद, वह सर्टिफ़िकेट हैश के ज़रिए स्टेटमेंट से ऐप्लिकेशन की पुष्टि करता है. अगर सभी जांच पूरे हो जाती हैं, तो Android किसी भी https://www.example.com इंटेंट को example.com ऐप्लिकेशन पर फ़ॉरवर्ड कर देगा. - उपयोगकर्ता अपने डिवाइस पर https://www.example.com/puppies के लिंक पर क्लिक करता है. यह लिंक कहीं भी हो सकता है: किसी ब्राउज़र में, Google Search Appliance के सुझाव में या किसी और जगह पर. Android, इस इंटेंट को example.com ऐप्लिकेशन पर भेजता है.
- example.com ऐप्लिकेशन, इंटेंट हासिल करता है और उसे मैनेज करने का विकल्प चुनता है, ताकि ऐप्लिकेशन में पिल्ले पेज खोला जा सके. अगर किसी वजह से ऐप्लिकेशन ने लिंक को हैंडल करने से मना कर दिया हो या ऐप्लिकेशन डिवाइस पर नहीं था, तो लिंक उस इंटेंट पैटर्न (अक्सर ब्राउज़र) से मेल खाने वाले अगले डिफ़ॉल्ट इंटेंट हैंडलर को भेजा जाता.
ज़रूरी बातें और सीमाएं:
- प्रोटोकॉल, स्टेटमेंट में शामिल करने वाले मुख्य व्यक्ति की पुष्टि नहीं करता. हालांकि, स्टेटमेंट एक ऐसी खास जगह पर मौजूद होता है जो मुख्य खाते से पूरी तरह जुड़ी होती है और प्रिंसिपल के कंट्रोल में होती है.
- प्रोटोकॉल, स्टेटमेंट टारगेट की पुष्टि नहीं करता है. हालांकि, यह कॉलर को टारगेट की पुष्टि करने का तरीका उपलब्ध कराता है. उदाहरण के लिए, स्टेटमेंट मोबाइल ऐप्लिकेशन टारगेट की पहचान, सर्टिफ़िकेट हैश और पैकेज के नाम से करता है.
- प्रोटोकॉल, मूल रूप से स्टेटमेंट से जुड़ी कोई कार्रवाई नहीं करता है. इसके बजाय, यह स्टेटमेंट को सार्वजनिक करने की सुविधा देता है, जिसे इस्तेमाल करने वाले ऐप्लिकेशन को उसकी पुष्टि करनी होती है. इसके बाद, यह तय करना होता है कि उस पर कार्रवाई करनी है या नहीं. Android M मूल रूप से आपके लिए ये चरण पूरे करता है; उदाहरण के लिए, अगर कोई वेबसाइट किसी खास ऐप्लिकेशन के लिंक मैनेज करने का काम करती है, तो Android स्टेटमेंट की जांच करता है और उसकी पुष्टि करता है. इसके बाद, वह टारगेट किए गए ऐप्लिकेशन की पुष्टि करता है. इसके बाद, ऐप्लिकेशन को दिए गए लिंक को मैनेज करने का विकल्प देता है.
- प्रोटोकॉल दो तीसरे पक्षों के बारे में स्टेटमेंट देने की अनुमति नहीं देता: इसका मतलब है कि वेबसाइट A, वेबसाइट B के बारे में स्टेटमेंट दे सकती है, लेकिन वेबसाइट A, वेबसाइट C के साथ वेबसाइट B के संबंध के बारे में स्टेटमेंट नहीं दे सकती. हालांकि, अगर वेबसाइट B, वेबसाइट A पर भरोसा करती है, तो वह वेबसाइट A की जांच करके वेबसाइट C को अनुमति देने वाले स्टेटमेंट देख सकती है. इसके बाद, उसे लागू करने का फ़ैसला ले सकती है.