शुरू करना

खास जानकारी

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

डिजिटल एसेट लिंक के कुछ संभावित इस्तेमाल यहां दिए गए हैं:

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

मुख्य शब्द

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

झटपट इस्तेमाल करने का उदाहरण

www.example.com, डिजिटल एसेट लिंक का इस्तेमाल करके किस तरह से यह तय कर सकता है कि उस साइट के यूआरएल का कोई भी लिंक, ब्राउज़र के बजाय किसी तय ऐप्लिकेशन में खुलना चाहिए. यहां इसका एक आसान उदाहरण दिया गया है:

  1. 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 ऐप्लिकेशन के लिंक से जुड़े दस्तावेज़ में ज़्यादा जानकारी पाएं.
  2. ऊपर दिए गए विवरण में दिए गए Android ऐप्लिकेशन में ऐसा इंटेंट फ़िल्टर मौजूद है, जो उन यूआरएल के स्कीम, होस्ट और पाथ पैटर्न के बारे में बताता है जिन्हें वह हैंडल करना चाहता है: इस मामले में, https://www.example.com. इंटेंट फ़िल्टर में android:autoVerify, Android M का एक नया एट्रिब्यूट शामिल है, जो बताता है कि Android को ऐप्लिकेशन इंस्टॉल करने पर इंटेंट फ़िल्टर में बताई गई वेबसाइट पर मौजूद स्टेटमेंट की पुष्टि करनी चाहिए.
  3. उपयोगकर्ता, ऐप्लिकेशन इंस्टॉल करता है. Android, autoVerify एट्रिब्यूट के साथ इंटेंट फ़िल्टर को देखता है और बताई गई साइट पर स्टेटमेंट की सूची की मौजूदगी की जांच करता है. अगर मौजूद हो, तो Android यह जांच करता है कि क्या उस फ़ाइल में, ऐप्लिकेशन को लिंक हैंडल करने वाला स्टेटमेंट मौजूद है या नहीं. साथ ही, सर्टिफ़िकेट की मदद से इस स्टेटमेंट की पुष्टि करता है. अगर सब कुछ चेक आउट हो जाता है, तो Android हर https://www.example.com इंटेंट को example.com ऐप्लिकेशन पर फ़ॉरवर्ड कर देगा.
  4. उपयोगकर्ता अपने डिवाइस पर https://www.example.com/puppies के लिंक पर क्लिक करता है. यह लिंक कहीं पर भी हो सकता है: ब्राउज़र में, Google Search Appliance के सुझाव में, या कहीं और. Android, इंटेंट को example.com ऐप्लिकेशन पर फ़ॉरवर्ड कर देता है.
  5. example.com ऐप्लिकेशन को इंटेंट मिलता है और वह उसे हैंडल करना चुनता है, ऐप्लिकेशन में पिल्ले पेज खोल देता है. अगर किसी वजह से ऐप्लिकेशन ने लिंक को हैंडल करने से मना कर दिया है या अगर ऐप्लिकेशन डिवाइस पर नहीं है, तो हो सकता है कि लिंक उस इंटेंट पैटर्न (अक्सर ब्राउज़र) से मेल खाने वाले अगले डिफ़ॉल्ट हैंडलर को भेज दिया जाए.

ज़रूरी बातें और सीमाएं:

  • प्रोटोकॉल, पुष्टि करने वाले प्रिंसिपल की पुष्टि नहीं करता है, लेकिन स्टेटमेंट उस प्रिंसिपल की खास जगह पर मौजूद होता है जहां उसका ऐक्सेस दिया जाता है और यह उसके कंट्रोल में होता है.
  • इस प्रोटोकॉल से स्टेटमेंट टारगेट की पुष्टि नहीं होती है. हालांकि, इससे कॉल करने वाले (कॉलर) को टारगेट की पुष्टि करने की सुविधा मिलती है. उदाहरण के लिए, स्टेटमेंट में हैश हैश और पैकेज के नाम के आधार पर मोबाइल ऐप्लिकेशन के टारगेट की पहचान की जाती है.
  • प्रोटोकॉल मूल रूप से कोई भी स्टेटमेंट कार्रवाई नहीं करता है; बल्कि, यह स्टेटमेंट को सामने लाने की सुविधा देता है, जिसे इस्तेमाल करने वाले ऐप्लिकेशन को पुष्टि करनी होती है. इसके बाद, यह तय करना होता है कि उस पर कार्रवाई करनी है या नहीं. Android M में, नेटिव तौर पर आपके लिए ये तरीके अपनाए जाते हैं. उदाहरण के लिए, अगर कोई वेबसाइट किसी खास ऐप्लिकेशन को लिंक हैंडल करने का ऐक्सेस देती है, तो Android ऐप्लिकेशन उसके स्टेटमेंट को देखकर उसकी पुष्टि करता है और टारगेट ऐप्लिकेशन की पुष्टि करता है. इसके बाद, ऐप्लिकेशन को दिए गए लिंक को हैंडल करने का विकल्प देता है.
  • इस प्रोटोकॉल से दो तीसरे पक्षों के बारे में जानकारी नहीं मिल पाती है यानी वेबसाइट A, वेबसाइट B की जानकारी दे सकता है. हालांकि, वेबसाइट A, वेबसाइट C के साथ वेबसाइट B के संबंध के बारे में जानकारी नहीं दे सकती. हालांकि, अगर वेबसाइट B, वेबसाइट A पर भरोसा करती है, तो वह वेबसाइट A की जांच करके, वेबसाइट C को अनुमति देने वाला स्टेटमेंट देख सकती है. साथ ही, उसे लागू करने का फ़ैसला ले सकती है.

अगले चरण

  1. देखें कि आपके इस्तेमाल के उदाहरण के लिए, साफ़ तौर पर दस्तावेज़ दिए गए हैं या नहीं.
  2. स्टेटमेंट बनाने के बारे में जानें.