ज़रूरी शर्तें

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

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

नीचे दिए गए स्ट्रक्चर के हिसाब से, assetlinks.json नाम की फ़ाइल बनाएं:

[
    {
    "relation" : [
        "<array_of_permissions_granted_to_app>"
    ],
    "target" : {
        "namespace" : "android_app",
        "package_name" : "<android_application_package_name>",
        "sha256_cert_fingerprints" : [
            "<sha256_certificate_fingerprint_of_signing_key>"
]
    }
}
]
  • relation: एक या उससे ज़्यादा स्ट्रिंग का कलेक्शन. इससे, बताई जा रही रिलेशनशिप के बारे में जानकारी मिलती है. यह एलान करने के लिए कि ऐप्लिकेशन और साइटें, साइन-इन करने के क्रेडेंशियल शेयर करती हैं, कलेक्शन में यहां दिए गए संबंध बताएं:

    • delegate_permission/common.handle_all_urls: इस संबंध से Android ऐप्लिकेशन लिंक चालू हो जाते हैं. इससे आपका Android ऐप्लिकेशन, किसी खास डोमेन के सभी वेब यूआरएल को मैनेज कर पाता है.

    • delegate_permission/common.get_login_creds: इस संबंध की वजह से, आपकी वेबसाइट और Android ऐप्लिकेशन के बीच क्रेडेंशियल शेयर किए जा सकते हैं.

  • target: यह एक ऐसा ऑब्जेक्ट होता है जो उस ऐसेट के बारे में बताता है जिस पर कानूनी समझौते का एलान लागू होता है.

    • target.namespace: इसे android_app पर सेट करें.
    • target.package_name: इसे ऐप्लिकेशन के मेनिफ़ेस्ट में बताए गए पैकेज के नाम पर सेट करें. उदाहरण के लिए, com.example.android.
  • sha256_cert_fingerprints: यह आपके ऐप्लिकेशन के साइनिंग सर्टिफ़िकेट का SHA256 फ़िंगरप्रिंट होता है. अपने ऐप्लिकेशन के लिए SHA256 फ़िंगरप्रिंट पाने के लिए, वेबसाइटों के साथ ऐप्लिकेशन के असोसिएशन के बारे में जानकारी देना लेख पढ़ें.

किसी ऐप्लिकेशन के लिए टारगेट का उदाहरण यहां दिया गया है:

[
  {
    "relation" : [
      "delegate_permission/common.handle_all_urls",
      "delegate_permission/common.get_login_creds"
    ],
    "target" : {
      "namespace" : "android_app",
      "package_name" : "com.example.android",
      "sha256_cert_fingerprints" : [
        SHA_HEX_VALUE
      ]
    }
  }
]

अपनी वेबसाइट के साइन-इन डोमेन पर, डिजिटल ऐसेट लिंक फ़ाइल को यहां होस्ट करें:

```none
https://domain[:optional_port]/.well-known/assetlinks.json
```

उदाहरण के लिए, अगर आपका साइन-इन डोमेन signin.example.com है, तो फ़ाइल को यहां होस्ट करें: https://signin.example.com/.well-known/assetlinks.json.

डिजिटल ऐसेट लिंक फ़ाइल के लिए MIME टाइप JSON होना चाहिए. पक्का करें कि सर्वर, जवाब में Content-Type: application/json हेडर भेजे. साथ ही, एचटीटीपी स्टेटस को 200 पर सेट करे.

3. डिजिटल ऐसेट लिंक फ़ाइल को वापस पाने की अनुमति दें

अपने होस्ट को अपडेट करें, ताकि Google आपकी डिजिटल ऐसेट लिंक फ़ाइल को वापस पा सके. ज़्यादातर वेबसाइटें, किसी भी ऑटोमेटेड एजेंट को /.well-known/ पाथ में मौजूद फ़ाइलें वापस पाने की अनुमति देती हैं. इससे अन्य सेवाएं, उन फ़ाइलों में मौजूद मेटाडेटा को ऐक्सेस कर सकती हैं.

अगर आपके पास robots.txt फ़ाइल है, तो वेब क्रॉलर को /.well-known/assetlinks.json फ़ाइल को वापस पाने की अनुमति दें. इसके लिए, robots.txt फ़ाइल को इस तरह अपडेट करें:

User-agent: *
Allow: /.well-known/

4. ऐप्लिकेशन के मेनिफ़ेस्ट को अपडेट करना

अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में, <application> के नीचे ये लाइनें जोड़ें:

<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />

5. पासवर्ड के लिए डिजिटल ऐसेट लिंक कॉन्फ़िगर करना

अगर पासवर्ड के लिए Credential Manager का इस्तेमाल किया जा रहा है, तो आपको डिजिटल ऐसेट लिंक कॉन्फ़िगर करने के लिए, एक और चरण पूरा करना होगा.

एक ऐसा ऑब्जेक्ट जोड़ें जो मेनिफ़ेस्ट फ़ाइल में लोड की जाने वाली assetlinks.json फ़ाइलों के बारे में बताता हो. आपको स्ट्रिंग में इस्तेमाल किए गए सभी ऐस्ट्रॉफ़ी और कोटेशन मार्क को एस्केप करना होगा. इसके लिए, यहां दिया गया उदाहरण देखें:

<string name="asset_statements" translatable="false">
[{
  \"include\": \"https://signin.example.com/.well-known/assetlinks.json\"
}]
</string>

https://signin.example.com/.well-known/assetlinks.json लिंक से HTTP 200 रिस्पॉन्स मिलना चाहिए. साथ ही, इसमें application/json का Content-Type हेडर होना चाहिए. अगर रिस्पॉन्स में 301 या 302 एचटीटीपी रीडायरेक्ट या Content-Type नॉन-JSON है, तो पुष्टि नहीं हो पाएगी.

यहां अनुरोध का एक उदाहरण और जवाब के अनुमानित हेडर दिए गए हैं:

> GET /.well-known/assetlinks.json HTTP/1.1
> User-Agent: curl/7.35.0
> Host: signin.example.com

< HTTP/1.1 200 OK
< Content-Type: application/json

अगले चरण

ज़रूरी डिपेंडेंसी जोड़ने और पासकी के लिए Digital Asset Links को कॉन्फ़िगर करने के बाद, Credential Manager का इस्तेमाल करके, पुष्टि करने के इन तरीकों को लागू किया जा सकता है: पासकी और 'Google से साइन इन करें'. शुरू करने के लिए, डेवलपर के लिए बनी ये गाइड देखें: