पेश है Digital Credentials API का ऑरिजिन ट्रायल

Digital Credentials API के लिए ऑरिजिन ट्रायल, Chrome 128 से शुरू हो रहा है. Digital Credentials API एक नया वेब प्लैटफ़ॉर्म एपीआई है. इसकी मदद से, वेबसाइटें ड्राइविंग लाइसेंस या डिजिटल वॉलेट में सेव किए गए किसी राष्ट्रीय आईडी कार्ड जैसे डिजिटल क्रेडेंशियल के ज़रिए, उपयोगकर्ता की पुष्टि की जा सकने वाली जानकारी को चुनकर अनुरोध कर सकती हैं.

बैकग्राउंड

असल दुनिया में डिजिटल पहचान की सुविधा, एक हकीकत बन रही है. इसमें कई सार्वजनिक और निजी इकाइयां, डिवाइस के लिए ज़रूरी डिजिटल क्रेडेंशियल जारी करने लगी हैं. उदाहरण के लिए, अमेरिका के चुनिंदा राज्यों (जैसे, ऐरिज़ोना, कैलिफ़ोर्निया, कोलोराडो, जॉर्जिया, और मैरीलैंड) में मोबाइल ड्राइविंग लाइसेंस और आईडी का प्रावधान अब मोबाइल डिवाइस पर Google Wallet जैसे डिजिटल वॉलेट ऐप्लिकेशन में किया जा सकता है. कुछ ऑनलाइन पुष्टि के लिए डिजिटल क्रेडेंशियल स्वीकार करने से जुड़े कानून भी सामने आ रहे हैं और eIDAS 2.0 इसका एक उदाहरण है.

Google वॉलेट में मोबाइल ड्राइविंग लाइसेंस
Google वॉलेट में मोबाइल ड्राइविंग लाइसेंस.

डिजिटल क्रेडेंशियल की सुविधाएं उसके फ़ॉर्मैट के हिसाब से काम करती हैं. हालांकि, आम तौर पर इनमें ये सुविधाएं शामिल होती हैं:

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

डिजिटल क्रेडेंशियल की वजह से' वे इस तरह के इस्तेमाल के उदाहरण तैयार कर सकते हैं:

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

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

पेश है Digital Credentials API

डिजिटल क्रेडेंशियल एपीआई एक नया वेब प्लैटफ़ॉर्म एपीआई है. इसकी मदद से आरपी वेबसाइटें, वॉलेट ऐप्लिकेशन से डिजिटल क्रेडेंशियल दिखाने का अनुरोध कर सकती हैं. यह एपीआई, Chrome में ऑरिजिन ट्रायल के तौर पर उपलब्ध है. Chrome 128 और इसके बाद के वर्शन में.

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

ब्राउज़र, वॉलेट, और भरोसेमंद पक्ष के बीच बातचीत का डायग्राम.

Chrome, एक ही डिवाइस पर वॉलेट ऐप्लिकेशन से क्रेडेंशियल का अनुरोध करने के लिए, सबसे पहले Android पर Chrome में एपीआई का इस्तेमाल करेगा. आने वाले समय में, हम Chrome डेस्कटॉप के लिए यह सुविधा उपलब्ध कराने की योजना बना रहे हैं, ताकि किसी अन्य मोबाइल डिवाइस से क्रॉस-डिवाइस क्रेडेंशियल का अनुरोध किया जा सके.

लॉन्च के समय Google Wallet, Digital Credentials API के साथ इंटिग्रेट हो जाएगा. इससे चुनिंदा कारोबारों और संगठनों को, Android पर Chrome की मदद से उपयोगकर्ताओं के आईडी को ऑनलाइन दिखाने का अनुरोध करने में मदद मिलेगी. साथ ही, क्रिप्टोग्राफ़िक हस्ताक्षर की जांच करके, ट्रांसमिट किए गए डेटा की पुष्टि करने की सुविधा मिलेगी. इसमें हिस्सा लेने के लिए, Google Wallet से डिजिटल आईडी स्वीकार करने में दिलचस्पी दिखाने के लिए, यह फ़ॉर्म भरें.

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

इसे आज़माएं

Digital Credentials API को आज़माने के लिए इन निर्देशों का पालन करें:

  1. इस पेज में दिए गए निर्देशों का पालन करके, डेमो वॉलेट ऐप्लिकेशन इंस्टॉल करें.
    • अपने Android डिवाइस पर डेमो वॉलेट ऐप्लिकेशन डाउनलोड करें.
    • ऐप्लिकेशन इंस्टॉल करने के लिए, adb install -t <path-to-apk> निर्देश दें.
  2. IC Wallet ऐप्लिकेशन लॉन्च करें और डेमो मोबाइल ड्राइविंग लाइसेंस (mDL) का प्रावधान करें.
    • मेन्यू बटन पर टैप करें और खुद से हस्ताक्षर किया गया दस्तावेज़ जोड़ें को चुनें.
  3. Chrome 128 या इसके बाद के वर्शन में https://digital-credentials.dev पर जाएं.
  4. क्रेडेंशियल का अनुरोध करें (OpenID4VP) दबाएं.

https://digital-credentials.dev का इस्तेमाल करके डेमो देखें. इस वेबसाइट की मदद से डेवलपर, अलग-अलग एट्रिब्यूट के लिए क्रेडेंशियल के अनुरोध जनरेट कर सकते हैं:

यहां डेमो के काम करने का सिलसिलेवार तरीका बताया गया है:

1. उपयोगकर्ता, भरोसा करने वाले पक्ष की वेबसाइट पर जाता है. वहां से उसे अपने परिवार का पुष्टि किया हुआ नाम, बताए गए नाम, और 21 साल से ज़्यादा उम्र होने का आश्वासन देने वाला दस्तावेज़ देने के लिए कहा जाता है.
2. ब्राउज़र यह पुष्टि करता है कि उपयोगकर्ता इस वेबसाइट के साथ कोई डिजिटल क्रेडेंशियल शेयर करना चाहता है या नहीं.
3. ऑपरेटिंग सिस्टम, अनुरोध की गई जानकारी और ज़रूरी शर्तें पूरी करने वाले क्रेडेंशियल दिखाता है. ये क्रेडेंशियल, उपयोगकर्ता के अनुरोध को चुनने और उसे पूरा करने के लिए, एक-दूसरे से मेल खा सकते हैं.
4. Wallet, स्क्रीन अनलॉक करने की सुविधा की मदद से उपयोगकर्ता की स्थानीय तौर पर पुष्टि करता है.

5. अनुरोध किया गया डिजिटल क्रेडेंशियल, अब भरोसेमंद पक्ष की वेबसाइट पर भेज दिया गया है.

एपीआई कैसे काम करता है

Digital Credentials API को क्रेडेंशियल मैनेजमेंट एपीआई के आधार पर बनाया गया है. हालांकि, इसे एक इंडिपेंडेंट एपीआई प्लैटफ़ॉर्म navigator.identity से बनाया गया है. navigator.identity.get() पर कॉल करने का मतलब है कि वेबसाइट, मोबाइल वॉलेट ऐप्लिकेशन पर सेव किए गए डिजिटल क्रेडेंशियल के लिए अनुरोध कर सकती है. को अपनाएं.

// Gets a CBOR with specific fields out of mobile driver's license as an mdoc
const controller = new AbortController();
const {protocol, data} = await navigator.identity.get({
  signal: controller.signal,
  digital: {
    providers: [{
      protocol: "openid4vp",
      request: {
        response_type: "vp_token",
        nonce: "n-0S6_WzA2Mj",
        client_metadata: {...},
        presentation_definition: {...}
      }
    }],
  }
});

एपीआई का बेसिक प्लैटफ़ॉर्म, navigator.credentials.get() की तरह ही है. हालांकि, यह सिर्फ़ "digital" क्रेडेंशियल टाइप को स्वीकार करता है. डिजिटल क्रेडेंशियल टाइप में, providers कलेक्शन जोड़ें. इसमें इन बेसिक पैरामीटर के साथ IdentityRequestProvider शामिल है:

OID4VP का इस्तेमाल करके डिजिटल क्रेडेंशियल टाइप पर पेलोड का उदाहरण:

{
  protocol: 'openid4vp',
  request: {
    response_type: 'vp_token',
    nonce: 'gf69kepV+m5tGxUIsFtLi6pwg=',
    client_metadata: {},
    presentation_definition: {     
      id: 'mDL-request-demo',
      input_descriptors: [{
        id: "org.iso.18013.5.1.mDL",
        format: {
          mso_mdoc: {
            alg: ["ES256"]
          }
        },
        constraints: {
          limit_disclosure: "required",
          fields: [
            {
              path: ["$['org.iso.18013.5.1']['family_name']"],
              intent_to_retain: false
            }, {
              path: ["$['org.iso.18013.5.1']['given_name']"],
              intent_to_retain: false
            }, {
              path: ["$['org.iso.18013.5.1']['age_over_21']"],
              intent_to_retain: false
            }
          ]
        }
      }],
    }
  }
}

इस अनुरोध के बाद, डिवाइस पर एमडीएल की सुविधा देने वाले वॉलेट में क्रेडेंशियल का ऐसा सेट उपलब्ध होगा जिसकी पुष्टि की जा सके. इसमें ये चीज़ें शामिल होंगी:

  • उपयोगकर्ता का फ़ैमिली नाम.
  • उपयोगकर्ता का दिया गया नाम.
  • एक बूलियन वैल्यू, जिससे पता चलता है कि उपयोगकर्ता की उम्र 21 साल से ज़्यादा है या नहीं.

यहां रिस्पॉन्स पेलोड का एक उदाहरण दिया गया है:

{
  data: '{\n  "vp_token": "o2d2ZXJzaW9uYz..."\n}'
  id: '',
  protocol: 'openid4vp',
  type: 'digital'
}

इस उदाहरण में, "openid4vp" प्रोटोकॉल के साथ क्रेडेंशियल का अनुरोध किया गया था और data प्रॉपर्टी में इसके रिस्पॉन्स में "vp_token" शामिल है. रिस्पॉन्स को पार्स करने और क्रेडेंशियल की पुष्टि करने का तरीका जानने के लिए, कृपया W3C Digital Credentials API के लिए, पुष्टि किए जा सकने वाले प्रज़ेंटेशन (OID4VP) के लिए OpenID (OID4VP) देखें.

Android पर Chrome में Digital Credentials API की सुविधा, ऑरिजिन ट्रायल के तौर पर काम करती है. फ़िलहाल, डेस्कटॉप और iOS पर Chrome पर यह सुविधा काम नहीं करती. अन्य ब्राउज़र इंजन के लिए, W3C Web Incubator Community Group की मदद से, ऐक्टिव तौर पर बातचीत करने की सुविधा दी जा रही है.

ऑरिजिन ट्रायल में हिस्सा लें

डेवलपमेंट के लिए, Chrome 128 या उसके बाद के वर्शन में Chrome फ़्लैग chrome://flags#web-identity-digital-credentials को चालू करके, Digital Credentials API को स्थानीय तौर पर चालू किया जा सकता है.

यह सुविधा, ऑरिजिन ट्रायल के तौर पर भी उपलब्ध है. ऑरिजिन ट्रायल की मदद से, नई सुविधाएं आज़माई जा सकती हैं. साथ ही, उनकी उपयोगिता, व्यावहारिकता, और उनके असर के बारे में वेब स्टैंडर्ड कम्यूनिटी को सुझाव दिए जा सकते हैं. ज़्यादा जानकारी के लिए, ऑरिजिन ट्रायल का इस्तेमाल शुरू करना लेख पढ़ें. अगर आपको इस सुविधा या किसी अन्य ऑरिजिन ट्रायल के लिए साइन अप करना है, तो रजिस्ट्रेशन पेज पर जाएं.

  1. अपनी साइट के ऑरिजिन के लिए टोकन का अनुरोध करें.
  2. अपने पेजों पर टोकन जोड़ें. ऐसा करने के दो तरीके हैं:
    • हर पेज के हेडर पर origin-trial <meta> टैग जोड़ें. उदाहरण के लिए, यह कुछ ऐसा दिख सकता है: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">.
    • अगर आपके पास अपने सर्वर को कॉन्फ़िगर करने का विकल्प है, तो Origin-Trial एचटीटीपी हेडर का इस्तेमाल करके भी टोकन जोड़ा जा सकता है. मिलने वाला रिस्पॉन्स हेडर कुछ ऐसा दिखना चाहिए:Origin-Trial: TOKEN_GOES_HERE.

सुझाव, शिकायत या राय दें

अगर आपको Digital Credentials API के बारे में कोई सुझाव/राय देनी है या शिकायत करनी है, तो उसे Chromium से जुड़ी समस्या को ट्रैक करने वाले टूल पर सबमिट करें.