अपने सभी ऐप्लिकेशन और वेबसाइटों पर, क्रेडेंशियल को आसानी से शेयर करने की सुविधा चालू करके, उपयोगकर्ताओं को ज़्यादा से ज़्यादा सुविधाएं दें. जब कई वेबसाइटें और Android ऐप्लिकेशन, एक ही खाता मैनेजमेंट बैकएंड शेयर करते हैं, तो इस सुविधा की मदद से उपयोगकर्ता, क्रेडेंशियल को एक बार सेव कर सकते हैं. साथ ही, लिंक की गई किसी भी वेबसाइट या Android ऐप्लिकेशन पर, उन्हें अपने-आप सुझाव के तौर पर दिखाया जा सकता है.
सबसे सही तरीके
उपयोगकर्ताओं को बेहतर अनुभव और सुरक्षा मिले, इसके लिए इन टचपॉइंट पर क्रेडेंशियल शेयर करने की सुविधा लागू करें:
- साइन-इन फ़ॉर्म: क्रेडेंशियल अपने-आप भरने की सुविधा चालू करें.
- साइन-अप फ़ॉर्म: सभी प्लैटफ़ॉर्म पर इस्तेमाल करने के लिए, नए क्रेडेंशियल सुरक्षित तरीके से सेव करें.
- पासवर्ड बदलने का फ़ॉर्म: सभी प्लैटफ़ॉर्म पर पासवर्ड अपडेट सिंक करें.
- पासवर्ड रीसेट करने का फ़ॉर्म: सभी प्लैटफ़ॉर्म पर पासवर्ड रीसेट करने की अनुमति दें.
- वेबव्यू डोमेन: अपने ऐप्लिकेशन में, खाता मैनेज करने वाले वेबव्यू डोमेन के साथ क्रेडेंशियल शेयर करने की सुविधा जोड़ें. जैसे, होस्ट साइन इन, साइन अप, पासवर्ड बदलना या पासवर्ड रीसेट करने के फ़ॉर्म.
- Android ऐप्लिकेशन
इस तरीके से, क्रेडेंशियल मैनेजमेंट का एक यूनिफ़ाइड सिस्टम बनता है. इससे उपयोगकर्ताओं को आसानी होती है और सुरक्षा भी बेहतर होती है.
हमारा सुझाव है कि खाता मैनेज करने वाली वेबसाइटें डिज़ाइन करते समय, आप खाता मैनेज करने वाली साइटों के लिए इन सबसे सही तरीकों को अपनाएं:
- अपने साइन-अप फ़ॉर्म को सबसे सही तरीकों के हिसाब से डिज़ाइन करें
- अपना साइन-इन फ़ॉर्म, सबसे सही तरीकों के हिसाब से डिज़ाइन करें
- पासवर्ड बदलने के लिए, कोई जाना-पहचाना यूआरएल जोड़ना
हमारा सुझाव है कि Android ऐप्लिकेशन डिज़ाइन करते समय, अपने ऐप्लिकेशन को Android क्रेडेंशियल मैनेजर के साथ इंटिग्रेट करें.
ज़रूरी शर्तें
आसानी से क्रेडेंशियल शेयर करने की सुविधा सेट अप करने से पहले, पक्का करें कि आपके पास हर प्लैटफ़ॉर्म के लिए ये चीज़ें हों:
हर Android ऐप्लिकेशन के लिए:
- ऐप्लिकेशन की
build.gradle
फ़ाइल में बताया गया Android ऐप्लिकेशन आईडी. - साइनिंग सर्टिफ़िकेट के SHA256 फ़िंगरप्रिंट.
- (सुझाया गया) Credential Manager API की मदद से, उपयोगकर्ता के साइन इन करने की सुविधा लागू की गई हो.
हर वेबसाइट के लिए:
- डिजिटल एसेट लिंक (डीएल) सिंटैक्स का पालन करके, हर डोमेन पर
/.well-known/assetlinks.json
फ़ाइल पब्लिश करने की सुविधा. - खाता मैनेज करने वाले सभी डोमेन (साइन इन, साइन अप, पासवर्ड बदलना या पासवर्ड रीसेट करने वाले फ़ॉर्म) को एचटीटीपीएस से ऐक्सेस किया जा सकता हो.
Android ऐप्लिकेशन और वेबसाइटों पर क्रेडेंशियल आसानी से शेयर करने की सुविधा चालू करना
सभी ऐप्लिकेशन और वेबसाइटों पर क्रेडेंशियल शेयर करने की सुविधा को आसानी से कॉन्फ़िगर करने के लिए, डिजिटल एसेट लिंक स्टेटमेंट की सूचियां बनाई और पब्लिश की जाती हैं. इन सूचियों में यह बताया जाता है कि किन इकाइयों (वेबसाइटों या Android ऐप्लिकेशन) को क्रेडेंशियल शेयर करने की अनुमति है.
क्रेडेंशियल शेयर करने के संबंध का एलान करने के लिए:
डीएल के स्टेटमेंट की सूची के सिंटैक्स का पालन करके, वेबसाइट और Android ऐप्लिकेशन से लिंक करने वाले स्टेटमेंट के साथ
assetlinks.json
फ़ाइल बनाएं:[ { "relation":[ "delegate_permission/common.get_login_creds" ], "target":{ "namespace":"web", "site":URL } }, { "relation":[ "delegate_permission/common.get_login_creds" ], "target":{ "namespace":"android_app", "package_name":"APP_ID", "sha256_cert_fingerprints":[ "SHA_HEX_VALUE" ] } } ]
यहां
URL
आपकी साइट का यूआरएल है,APP_ID
आपका Android ऐप्लिकेशन आईडी है, औरSHA_HEX_VALUE
आपके Android ऐप्लिकेशन के साइनिंग सर्टिफ़िकेट का SHA256 फ़िंगरप्रिंट है.relation
फ़ील्ड में, उस संबंध की जानकारी दी जाती है जिसका एलान किया जा रहा है. यह बताने के लिए कि ऐप्लिकेशन और साइटें, साइन-इन करने के लिए इस्तेमाल किए जाने वाले क्रेडेंशियल शेयर करते हैं, संबंधों की जानकारीdelegate_permission/common.get_login_creds
के तौर पर दें. डीएल में रिलेशन स्ट्रिंग के बारे में ज़्यादा जानें.target
फ़ील्ड एक ऑब्जेक्ट है, जो उस एसेट के बारे में बताता है जिस पर एलान लागू होता है.ये फ़ील्ड किसी वेबसाइट की पहचान करते हैं:
namespace
web
site
वेबसाइट का यूआरएल,
https://domain[:optional_port
] फ़ॉर्मैट में होना चाहिए. उदाहरण के लिए, https://www.example.com.domain
एट्रिब्यूट के लिए, पूरी तरह क्वालिफ़ाइड डोमेन नेम का इस्तेमाल करना ज़रूरी है. साथ ही, एचटीटीपीएस के लिए पोर्ट 443 का इस्तेमाल करते समय,optional_port
एट्रिब्यूट को हटाना होगा.site
टारगेट सिर्फ़ रूट डोमेन हो सकता है: किसी ऐप्लिकेशन असोसिएशन को किसी खास सबडायरेक्ट्री तक सीमित नहीं किया जा सकता. यूआरएल में पाथ शामिल न करें, जैसे कि आखिर में स्लैश.सबडोमेन को मैच नहीं माना जाता: इसका मतलब है कि अगर आपने
domain
को www.example.com के तौर पर सेट किया है, तो डोमेन www.counter.example.com आपके ऐप्लिकेशन से नहीं जुड़ा है.इन फ़ील्ड से किसी Android ऐप्लिकेशन की पहचान की जाती है:
नाम स्थान
android_app
package_name
ऐप्लिकेशन के मेनिफ़ेस्ट में बताया गया पैकेज का नाम. उदाहरण के लिए, com.example.android
sha256_cert_fingerprints
आपके ऐप्लिकेशन के साइनिंग सर्टिफ़िकेट के SHA256 फ़िंगरप्रिंट.
डिजिटल ऐसेट लिंक JSON फ़ाइल को, साइन-इन करने वाले डोमेन पर इस लोकेशन पर होस्ट करें:
https://DOMAIN[:OPTIONAL_PORT]/.well-known/assetlinks.json
इसमेंDOMAIN
पूरी तरह क्वालिफ़ाइड है, और एचटीटीपीएस के लिए पोर्ट 443 का इस्तेमाल करते समयOPTIONAL_PORT
को नहीं हटाना चाहिए.Android ऐप्लिकेशन में असोसिएशन का एलान करने के लिए, अपने Android ऐप्लिकेशन की
res/values/strings.xml
फ़ाइल में एक स्टेटमेंट जोड़ें. यह स्टेटमेंट, पहले चरण में बनाई गई स्टेटमेंट की सूची से जुड़ा होना चाहिए. ऐसा ऑब्जेक्ट जोड़ें जिसमेंassetlinks.json
फ़ाइलों के बारे में जानकारी हो, जिन्हें लोड करना है. उदाहरण के लिए:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://DOMAIN[:OPTIONAL_PORT]/.well-known/assetlinks.json\" }] </string>
DOMAIN
औरOPTIONAL_PORT
को बदलें (एचटीटीपीएस के लिए पोर्ट 443 का इस्तेमाल करते समय, इसे हटाना होगा)—उदाहरण के लिए,https://www.example.com
. स्ट्रिंग में इस्तेमाल किए गए सभी अपॉस्ट्रफ़ और कोटेशन मार्क को एस्केप करें.strings.xml
फ़ाइल में JSON स्निपेट भी जोड़ा जा सकता है, जैसा कि डीएल के दस्तावेज़ में दिखाया गया है. हालांकि,include
स्टेटमेंट का इस्तेमाल करके, अपने ऐप्लिकेशन का नया वर्शन पब्लिश किए बिना स्टेटमेंट में बदलाव किया जा सकता है.<application>
के तहत अपने ऐप्लिकेशन कीAndroidManifest.xml
फ़ाइल में यह लाइन जोड़कर, मेनिफ़ेस्ट में दिए गए स्टेटमेंट का रेफ़रंस लें:<meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>
Google Play Console में अपने Android ऐप्लिकेशन का नया वर्शन पब्लिश करना
यह तरीका अपनाने के बाद, आपने अपनी वेबसाइट और Android ऐप्लिकेशन के बीच क्रेडेंशियल शेयर करने की सुविधा सेट अप कर ली है.
ध्यान दें कि क्रेडेंशियल शेयर करने के लिए डीएल सेट अप करने का यह एकमात्र मान्य तरीका नहीं है. हालांकि, इस तरीके से क्रेडेंशियल शेयर करने वाले नेटवर्क में नई इकाइयों को जोड़ने की प्रोसेस को आसान बनाया जा सकता है. साथ ही, कोड को फिर से इस्तेमाल करने में मदद मिलती है और अपडेट के दौरान गड़बड़ियों की संभावना कम हो जाती है.