1. खास जानकारी
क्या आपके उपयोगकर्ता, आपकी सेवा को वेबसाइटों और Android ऐप्लिकेशन, दोनों पर ऐक्सेस करते हैं? हर प्लैटफ़ॉर्म पर अलग से साइन इन करने के लिए कहने से, लोगों को परेशानी होती है. इससे वे साइन इन करने की प्रोसेस को बीच में ही छोड़ सकते हैं.
डिजिटल ऐसेट लिंक (डीएएल) इस समस्या को हल करता है. इससे आपको अपनी वेबसाइटों और ऐप्लिकेशन के बीच के कनेक्शन के बारे में बताने की अनुमति मिलती है. इससे Google Password Manager जैसे पासवर्ड मैनेजर, सेव किए गए पासवर्ड और पासकी को एक-दूसरे के साथ शेयर कर पाते हैं.
खास तौर पर, डिजिटल ऐसेट लिंक फ़ाइल को कॉन्फ़िगर करने के लिए, अलग-अलग संबंधों की ज़रूरत होती है. यह इस बात पर निर्भर करता है कि आपको क्या शेयर करना है:
- पासवर्ड के लिए:
delegate_permission/common.get_login_credsको शामिल करने से, पासवर्ड मैनेजर आपकी वेबसाइट और ऐप्लिकेशन के बीच सेव किए गए पासवर्ड शेयर कर पाते हैं. - पासकी के लिए: पासकी, किसी वेब डोमेन से जुड़ी होती हैं. इसलिए, Android को डोमेन के मालिकाना हक का सबूत चाहिए होता है. इसलिए, आपको
delegate_permission/common.handle_all_urlsको शामिल करना होगा. आपको यह अनुमति, Android ऐप्लिकेशन लिंक (डीप लिंकिंग) के लिए इस्तेमाल की जाने वाली अनुमति के तौर पर दिख सकती है. हालांकि, यह एक ज़रूरी शर्त भी है. इससे एक प्लैटफ़ॉर्म पर बनाई गई पासकी को दूसरे प्लैटफ़ॉर्म पर इस्तेमाल करने की अनुमति दी जा सकती है.
परिणाम? उपयोगकर्ता, आपके अफ़िलिएटेड प्लैटफ़ॉर्म पर आसानी से साइन इन कर सकते हैं. इसके लिए, उन्हें सिर्फ़ एक प्लैटफ़ॉर्म के लिए सेव किए गए पासवर्ड या पासकी का इस्तेमाल करना होगा.

आसानी से क्रेडेंशियल शेयर करने की सुविधा लागू करने से, उपयोगकर्ता अनुभव को बेहतर बनाया जा सकता है. उदाहरण के लिए, eBay ने क्रेडेंशियल शेयर करने के लिए DAL लागू किया. इसके बाद, साइन-इन करने वाले लोगों की संख्या में 10% की बढ़ोतरी हुई.
इस कोडलैब में, आपको डिजिटल ऐसेट लिंक का इस्तेमाल करके, अपनी वेबसाइट और Android ऐप्लिकेशन के बीच क्रेडेंशियल शेयर करने की सुविधा चालू करने का तरीका बताया जाएगा.
ज़रूरी शर्तें
- JSON और Android डेवलपमेंट की बुनियादी जानकारी.
- Android Credential Manager की ज़रूरी शर्तों के बारे में जानकारी होना.
आपको क्या सीखने को मिलेगा
- Google Play Console का इस्तेमाल करके, क्रेडेंशियल शेयर करने की सुविधा सेट अप करने का तरीका (सुझाया गया).
assetlinks.jsonफ़ाइल को मैन्युअल तरीके से बनाने का तरीका.- Android ऐप्लिकेशन को मैन्युअल तरीके से जोड़ने के लिए कॉन्फ़िगर करने का तरीका.
- किसी Android ऐप्लिकेशन को वेबसाइट डोमेन से जोड़कर, उस पर पासकी की सुविधा चालू करने का तरीका.
- अपने सेटअप को जनरेट और उसकी पुष्टि करने के लिए टूल इस्तेमाल करने का तरीका.
आपको किन चीज़ों की ज़रूरत होगी
- वेबसाइट:
https://{your-domain}/.well-known/assetlinks.jsonपर JSON फ़ाइल होस्ट करने की सुविधा. - Android ऐप्लिकेशन:
- Play Console के तरीके के लिए: Google Play पर पब्लिश किया गया ऐप्लिकेशन.
- मैन्युअल तरीके के लिए: एक ऐसा Android प्रोजेक्ट जिसमें बदलाव किया जा सकता है और जिसे बनाया जा सकता है. ध्यान दें कि Google Password Manager के साथ क्रेडेंशियल शेयर करने की सुविधा काम करने के लिए, ऐप्लिकेशन को Google Play पर पब्लिश किया जाना चाहिए.
यह कैसे काम करता है
क्रेडेंशियल शेयर करने की सुविधा काम करे, इसके लिए, आपको दोनों पक्षों के बीच भरोसा कायम करना होगा:
- वेब -> ऐप्लिकेशन: आपकी वेबसाइट पर एक
assetlinks.jsonफ़ाइल होस्ट की जानी चाहिए. इसमें यह बताया गया हो कि वह आपके Android ऐप्लिकेशन पर भरोसा करती है. - ऐप्लिकेशन -> वेब: आपका Android ऐप्लिकेशन, आपकी वेबसाइट पर भरोसा करने के लिए कॉन्फ़िगर किया गया होना चाहिए.
हम इसे करने के दो तरीके बताएंगे: Google Play Console का इस्तेमाल करके अपने-आप होने वाला तरीका (सुझाया गया) और सीधे तौर पर Digital Asset Links का इस्तेमाल करके मैन्युअल तरीका.
2. Google Play Console का इस्तेमाल करके सेट अप करना (सुझाया गया)
Google Play Console की मदद से, अपनी वेबसाइट और Android ऐप्लिकेशन के बीच क्रेडेंशियल शेयर करने की सुविधा को आसानी से चालू किया जा सकता है. इस तरीके से, अपने ऐप्लिकेशन को अपनी वेबसाइट से जोड़ा जा सकता है. इसके लिए, आपको अपने ऐप्लिकेशन के मेनिफ़ेस्ट में बदलाव करने या ऐप्लिकेशन का नया वर्शन पब्लिश करने की ज़रूरत नहीं होती. Google Play, ऐप्लिकेशन के लिए वेबसाइट से जुड़ाव को मैनेज करता है.
ज़रूरी शर्तें
- डीप लिंक पेज को ऐक्सेस करने के लिए, Play Console की अनुमतियां.
- आपके पास अपने डोमेन पर
/.well-known/assetlinks.jsonफ़ाइल पब्लिश करने का विकल्प होना चाहिए.
डीप लिंक के बारे में ज़्यादा जानने के लिए, Android ऐप्लिकेशन के लिंक देखें.
चरण
- Play Console में, आगे बढ़ाएं > डीप लिंक पर जाएं.
- अगर आपका डोमेन सूची में नहीं है, तो ऐप्लिकेशन का कॉन्फ़िगरेशन में जाकर, डोमेन जोड़ें पर क्लिक करें.
- अपना डोमेन ढूंढें और क्रेडेंशियल शेयर करने की सेटिंग कॉलम पर जाएं. चालू करें पर क्लिक करें. इसके अलावा, यह भी पक्का करें कि नए डोमेन के लिए, क्रेडेंशियल शेयर करने की सेटिंग चालू करें टॉगल चालू हो.
- Play Console से जनरेट किया गया JSON स्निपेट कॉपी करें.
- इस JSON कॉन्टेंट को
https://{your-domain}/.well-known/assetlinks.jsonपर पब्लिश करें. (अगर आपके पास यह फ़ाइल पहले से मौजूद है, तो इसमें नया स्टेटमेंट जोड़ें). - Play Console में वापस जाकर, वेबसाइट का कनेक्शन बनाएं या क्रेडेंशियल शेयर करने की सुविधा चालू करें पर क्लिक करें.
अब Play Console, होस्टिंग सेटअप की पुष्टि करेगा.

क्रेडेंशियल शेयर करने की सुविधा काम करे, इसके लिए आपकी वेबसाइट होस्ट को ये ज़रूरी शर्तें पूरी करनी होंगी:
- यूआरएल को HTTPS पर ऐक्सेस किया जा सकता है.
- सर्वर ने
Content-Type: application/jsonके साथ जवाब दिया. - यूआरएल को बिना रीडायरेक्ट किए ऐक्सेस किया जा सकता हो.
पुष्टि हो जाने के बाद, क्रेडेंशियल शेयर करने की सुविधा चालू हो जाती है! कॉन्फ़िगरेशन में किए गए बदलावों को लागू होने में, एक से दो हफ़्ते लग सकते हैं.
3. डिजिटल ऐसेट लिंक का इस्तेमाल करके मैन्युअल तरीके से सेट अप करना
ज़्यादा नियंत्रण की आवश्यकता है? या आपके पास Play Console का ऐक्सेस नहीं है? अपनी वेबसाइट और Android ऐप्लिकेशन के बीच क्रेडेंशियल शेयर करने की सुविधा को मैन्युअल तरीके से कॉन्फ़िगर किया जा सकता है. इसमें दो मुख्य टास्क शामिल हैं: JSON फ़ाइल को अपनी साइट पर होस्ट करना और अपने Android ऐप्लिकेशन मेनिफ़ेस्ट को अपडेट करना.
1. अपने ऐप्लिकेशन का डिजिटल फ़िंगरप्रिंट पाना
आसानी से क्रेडेंशियल शेयर करने की सुविधा को सेट अप करने से पहले, पक्का करें कि आपके पास हर प्लैटफ़ॉर्म के लिए ये चीज़ें हों:
हर Android ऐप्लिकेशन के लिए:
- ऐप्लिकेशन की
build.gradleफ़ाइल में बताया गया Android ऐप्लिकेशन आईडी. - साइनिंग सर्टिफ़िकेट के SHA256 फ़िंगरप्रिंट.
- (सुझाया गया) उपयोगकर्ता के साइन-इन करने की सुविधा, Credential Manager API की मदद से लागू की गई हो.
2. असोसिएशन फ़ाइल बनाना
आपको एक assetlinks.json फ़ाइल बनानी होगी. इससे आपकी वेबसाइट और ऐप्लिकेशन के बीच के संबंध के बारे में पता चलेगा. पासवर्ड शेयर करने की अनुमति देने के लिए delegate_permission/common.get_login_creds का इस्तेमाल करें. साथ ही, डीप लिंकिंग की सुविधा चालू करने और पासकी शेयर करने के लिए delegate_permission/common.handle_all_urls का इस्तेमाल करें.
यहां दिए गए कॉन्टेंट के साथ assetlinks.json नाम की फ़ाइल बनाएं. उदाहरण के तौर पर दी गई वैल्यू को अपनी साइट के यूआरएल, पैकेज के नाम, और फ़िंगरप्रिंट से बदलें:
[{
"relation": [
"delegate_permission/common.handle_all_urls",
"delegate_permission/common.get_login_creds"
],
"target": {
"namespace": "android_app",
"package_name": "com.example.app",
"sha256_cert_fingerprints":
["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]
}
}]
3. फ़ाइल होस्ट करना
अपनी assetlinks.json फ़ाइल को अपने डोमेन के रूट में मौजूद .well-known डायरेक्ट्री में अपलोड करें.
जगह: https://{your-domain}/.well-known/assetlinks.json
क्रेडेंशियल शेयर करने की सुविधा काम करे, इसके लिए आपकी वेबसाइट होस्ट को ये ज़रूरी शर्तें पूरी करनी होंगी:
- यूआरएल को HTTPS पर ऐक्सेस किया जा सकता है.
- सर्वर ने
Content-Type: application/jsonके साथ जवाब दिया. - यूआरएल को बिना रीडायरेक्ट किए ऐक्सेस किया जा सकता हो.

4. अपने Android ऐप्लिकेशन को कॉन्फ़िगर करना
अब अपने Android ऐप्लिकेशन को वेबसाइट पर भरोसा करने के लिए कहें. आपको मेनिफ़ेस्ट में एक ऐसा रेफ़रंस जोड़ना होगा जो आपकी assetlinks.json यूआरएल वाली संसाधन फ़ाइल की ओर ले जाता हो.
1. स्ट्रिंग रिसॉर्स जोड़ना
res/values/strings.xml में, नई स्ट्रिंग asset_statements जोड़ें. ध्यान दें कि कोटेशन मार्क को एस्केप किया गया है!
<resources>
<string name="asset_statements" translatable="false">
[{
\"include\": \"https://www.example.com/.well-known/assetlinks.json\"
}]
</string>
</resources>
2. मेनिफ़ेस्ट में मेटाडेटा जोड़ना
AndroidManifest.xml में, <application> एलिमेंट के अंदर एक <meta-data> टैग जोड़ें. यह टैग इस स्ट्रिंग रिसॉर्स को रेफ़र करता है:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<meta-data
android:name="asset_statements"
android:resource="@string/asset_statements" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
इन चरणों को पूरा करने और अपने Android ऐप्लिकेशन का नया वर्शन पब्लिश करने के बाद, डिजिटल ऐसेट लिंक (जैसे कि Google Password Manager) के साथ काम करने वाले पासवर्ड मैनेजर, www.example.com के लिए सेव किए गए क्रेडेंशियल का सुझाव दे पाएंगे. ऐसा तब होगा, जब उपयोगकर्ता www.example.com में साइन इन करने की कोशिश करेगा. इसके उलट, www.example.com के लिए सेव किए गए क्रेडेंशियल का सुझाव तब दिया जाएगा, जब उपयोगकर्ता www.example.com में साइन इन करने की कोशिश करेगा.com.example.app
4. अपने सेटअप की पुष्टि करें
शिपिंग से पहले, डिजिटल ऐसेट लिंक के कॉन्फ़िगरेशन की पुष्टि करना ज़रूरी है. गलत JSON या ऐसी फ़ाइलों को चुपचाप अस्वीकार कर दिया जाएगा जिन्हें ऐक्सेस नहीं किया जा सकता.
आधिकारिक स्टेटमेंट जनरेट करने और पुष्टि करने वाले टूल का इस्तेमाल करें.

- अपनी साइट का डोमेन और ऐप्लिकेशन पैकेज का नाम डालें.
- टेस्ट स्टेटमेंट पर क्लिक करें.
- यह टूल, यह जांच करेगा कि
assetlinks.jsonफ़ाइल सही तरीके से होस्ट की गई है या नहीं. साथ ही, यह भी जांच करेगा कि इसमें मान्य असोसिएशन मौजूद है या नहीं.
5. कई वेबसाइटों के बीच क्रेडेंशियल शेयर करना

अगर आपके पास एक ही लॉगिन सिस्टम का इस्तेमाल करने वाली कई वेबसाइटें हैं (उदाहरण के लिए, example.com और example.co.uk), तो उन्हें अफ़िलिएट के तौर पर सेट किया जा सकता है. इससे उनके बीच क्रेडेंशियल शेयर किए जा सकते हैं.
एक से ज़्यादा वेबसाइटों के बीच पासवर्ड शेयर करना
वेबसाइटों के बीच पासवर्ड शेयर करने के लिए, delegate_permission/common.get_login_creds का इस्तेमाल करके web और web के बीच संबंध का एलान किया जा सकता है.
उदाहरण के लिए, अगर example.com को example.co.uk के साथ पासवर्ड शेयर करने हैं, तो https://example.com/.well-known/assetlinks.json पर होस्ट की गई assetlinks.json फ़ाइल में example.co.uk को टारगेट करने वाला स्टेटमेंट शामिल होना चाहिए:
[{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://example.co.uk"
}
}]
इसी तरह, https://example.co.uk/.well-known/assetlinks.json में example.com को टारगेट करने वाला स्टेटमेंट शामिल होना चाहिए.
एक से ज़्यादा वेबसाइटों के बीच पासकी शेयर करना
अगर आपको एक से ज़्यादा वेबसाइटों को एक ही पासकी शेयर करने की अनुमति देनी है, तो उन्हें एक ही आरपी आईडी (भरोसेमंद पक्ष का आईडी) का इस्तेमाल करना होगा. WebAuthn और पासकी में, आरपी आईडी, डोमेन के नाम के हिसाब से क्रेडेंशियल का स्कोप तय करता है. पासकी बनाते समय, उसे किसी आरपी आईडी से लिंक किया जाता है. इसका इस्तेमाल सिर्फ़ उन डोमेन पर किया जा सकता है जो उस आईडी के दायरे में आते हैं. आरपी आईडी को सही तरीके से तय करने से, यह पक्का होता है कि सभी सबडोमेन, क्रॉस-साइट ऑरिजिन, और पहले पक्ष (ग्राहक) के मोबाइल ऐप्लिकेशन पर पासकी का इस्तेमाल आसानी से किया जा सके. रिलाइंग पार्टी आईडी (आरपी आईडी) के बारे में जानकारी लेख में, आरपी आईडी सेट करने के बारे में ज़्यादा जानें. मिलते-जुलते ऑरिजिन के अनुरोध की सुविधा की मदद से, कोई वेबसाइट ऐसे अन्य ऑरिजिन तय कर सकती है जिन्हें उसके आरपी आईडी का इस्तेमाल करने की अनुमति है. इससे उपयोगकर्ता, आपकी अलग-अलग साइटों पर एक ही पासकी का दोबारा इस्तेमाल कर सकते हैं. ध्यान दें कि यह, किसी वेबसाइट और Android ऐप्लिकेशन के बीच पासकी शेयर करने से अलग है. इसके लिए, डिजिटल ऐसेट लिंक में delegate_permission/common.handle_all_urls का इस्तेमाल किया जाता है.
उदाहरण के लिए, अगर आपको example.com और example.co.uk के लिए पासकी शेयर करनी हैं, तो यह तय किया जा सकता है कि example.com कैननिकल आरपी आईडी होगा. इसके लिए, example.co.uk को WebAuthn API कॉल में rpId: 'example.com' का इस्तेमाल करना होगा. साथ ही, example.com को https://example.com/.well-known/webauthn पर एक फ़ाइल होस्ट करनी होगी, ताकि example.co.uk को अनुमति दी जा सके:
{
"origins": [
"https://example.co.uk"
]
}
इससे example.co.uk को example.com से जुड़ी पासकी बनाने और इस्तेमाल करने की अनुमति मिलती है.
6. नतीजा
बधाई हो! आपने आसानी से क्रेडेंशियल शेयर करने की सुविधा सेट अप कर ली है.
आपके उपयोगकर्ता अब आपकी वेबसाइट पर पासवर्ड और पासकी सेव कर सकते हैं. साथ ही, इसका इस्तेमाल एक टैप करके आपके Android ऐप्लिकेशन में साइन इन करने के लिए कर सकते हैं. इसके उलट, वे Android ऐप्लिकेशन पर पासवर्ड और पासकी सेव करके, एक टैप करके वेबसाइट पर साइन इन कर सकते हैं. इस आसान बदलाव से, साइन-इन कन्वर्ज़न रेट और उपयोगकर्ता संतुष्टि को काफ़ी हद तक बढ़ाया जा सकता है.
आगे क्या करना है?
- डिजिटल ऐसेट लिंक का आधिकारिक दस्तावेज़ देखें.
- क्रेडेंशियल शेयर करने की बुनियादी बातों के बारे में ज़्यादा जानें.
- असर देखने के लिए, eBay की केस स्टडी पढ़ें.