पब्लिश होने की तारीख: 3 अक्टूबर, 2025
हमें यह बताते हुए खुशी हो रही है कि Digital Credentials API अब Chrome 141 से डिफ़ॉल्ट रूप से चालू है. इसके अलावा, iOS 26 में Chrome और अन्य ब्राउज़र के लिए, Digital Credentials API के साथ काम करने की सुविधा जोड़ी गई है. यह एपीआई, वेब पर पहचान की पुष्टि करने की प्रोसेस को सुरक्षा और निजता के एक नए लेवल पर ले जाता है. इससे वेबसाइटों को, उपयोगकर्ताओं से पुष्टि की जा सकने वाली जानकारी का अनुरोध करने और उसे पाने का एक स्टैंडर्ड तरीका मिलता है.
ओरिजिन ट्रायल के सफल होने के बाद, Digital Credentials API अब Android पर एक ही डिवाइस से क्रेडेंशियल दिखाने और डेस्कटॉप Chrome पर अलग-अलग डिवाइसों से क्रेडेंशियल दिखाने की सुविधा देता है.
बैकग्राउंड
अब तक, ऑनलाइन पहचान की पुष्टि करना एक मुश्किल प्रोसेस रही है. इसमें अक्सर उपयोगकर्ताओं को अपने आईडी के स्कैन किए गए दस्तावेज़ अपलोड करने पड़ते हैं. इस तरह के तरीके में, अक्सर ज़रूरत से ज़्यादा डेटा शेयर किया जाता है. इससे उपयोगकर्ताओं की निजता से जुड़ी गंभीर समस्याएं पैदा होती हैं. डेवलपर के लिए भी यह जोखिम भरा हो सकता है, क्योंकि उन्हें यह पक्का करना होगा कि उनका समाधान, संवेदनशील डेटा को सुरक्षित तरीके से प्रोसेस और सेव कर सकता हो. साथ ही, यह भी पक्का करना होगा कि इससे निजता का उल्लंघन न हो.
साथ ही, eIDAS 2.0 जैसे नियमों के तहत, सरकारों के लिए यह ज़रूरी है कि वे लोगों को डिजिटल पहचान की सुविधा उपलब्ध कराएं. इन डिजिटल पहचान वालेट में, पहचान और उम्र के सबूत के साथ-साथ कई तरह के क्रेडेंशियल सेव किए जा सकते हैं. ऑनलाइन सेवा देने वाली कंपनियां, उपयोगकर्ता की पहचान की पुष्टि करने के लिए इन क्रेडेंशियल का अनुरोध कर सकती हैं.
उपयोगकर्ता की निजता से जुड़ी मांगों और उपयोगकर्ता के डेटा की पुष्टि करने से जुड़ी डेवलपर की ज़रूरतों को पूरा करने के लिए, डिजिटल क्रेडेंशियल की अहमियत को ध्यान में रखते हुए, W3C में वेब स्टैंडर्ड कम्यूनिटी ने एक समाधान तैयार किया है: Digital Credentials API. Digital Credentials API का मकसद इस समस्या को हल करना है. इसके लिए, यह उपयोगकर्ता की जानकारी की पुष्टि करने के लिए एक बिल्ट-इन इंटरफ़ेस उपलब्ध कराता है. इससे सुरक्षा, निजता, और उपयोगकर्ता अनुभव बेहतर होता है. इस एपीआई की मदद से, लोगों को आईडी स्कैन जैसे संवेदनशील दस्तावेज़ कई वेबसाइटों पर अपलोड करने की ज़रूरत नहीं पड़ती. इसके बजाय, वेबसाइटें अपने उपयोगकर्ताओं का भरोसा जीत सकती हैं. इसके लिए, वे सिर्फ़ उस डेटा का अनुरोध करती हैं जिसकी उन्हें ज़रूरत है. साथ ही, वे भरोसेमंद जारीकर्ताओं से क्रिप्टोग्राफ़िक तरीके से हस्ताक्षर किए गए डेटा का अनुरोध करती हैं.
मुख्य सुविधाएं
Digital Credentials API को तीन मुख्य सिद्धांतों के आधार पर बनाया गया है: निजता, क्रॉस-प्लैटफ़ॉर्म सपोर्ट, और स्टैंडर्डाइज़ेशन.
निजता
Digital Credentials API, ऑनलाइन निजता और सुरक्षा को बेहतर बनाता है. इससे उपयोगकर्ता, वेबसाइटों पर अपने मोबाइल वॉलेट से डिजिटल आईडी दिखा सकते हैं. इससे कुछ तथ्यों की पुष्टि की जा सकती है. हालांकि, इससे संवेदनशील डेटा ज़ाहिर नहीं होता. उदाहरण के लिए, एपीआई किसी व्यक्ति की पूरी जन्म तारीख बताए बिना यह पुष्टि कर सकता है कि वह 18 साल से ज़्यादा उम्र का है. "चुनिंदा जानकारी ज़ाहिर करना" सिद्धांत यह पक्का करता है कि वेबसाइटों को सिर्फ़ ज़रूरी जानकारी मिले.
Digital Credentials API, ज़ीरो नॉलेज प्रूफ़ (जेडकेपी) प्रोटोकॉल के साथ भी काम करता है. जैसे, Google का Longfellow ZK. यह प्रोटोकॉल, उपयोगकर्ता की निजता को सुरक्षित रखता है. इसके लिए, यह क्रिप्टोग्राफ़िक प्रूफ़ दिखाता है कि पहचान से जुड़ा कोई दावा सही है. हालांकि, इसमें कोई अन्य जानकारी ज़ाहिर नहीं की जाती.
क्रॉस-प्लैटफ़ॉर्म सहायता
Digital Credentials API का मकसद अलग-अलग प्लैटफ़ॉर्म के साथ काम करना है, ताकि उपयोगकर्ता अलग-अलग डिवाइसों पर आसानी से पुष्टि की गई जानकारी दिखा सकें.
Android पर: यह एक बिल्ट-इन यूज़र इंटरफ़ेस उपलब्ध कराता है. इससे लोग, इंस्टॉल किए गए वॉलेट ऐप्लिकेशन से क्रेडेंशियल चुन सकते हैं.
डेस्कटॉप पर: उपयोगकर्ता, डेस्कटॉप ब्राउज़र में किसी वेबसाइट पर अपने मोबाइल वॉलेट से क्रेडेंशियल दिखा सकते हैं. क्यूआर कोड स्कैन करने पर, सिस्टम डेस्कटॉप और फ़ोन या टैबलेट के बीच एक सुरक्षित कनेक्शन बनाता है. यह कनेक्शन एंड-टू-एंड एन्क्रिप्ट (सुरक्षित) होता है और फ़िशिंग से सुरक्षित होता है. यह कनेक्शन, CTAP प्रोटोकॉल का इस्तेमाल करके, बीएलई के ज़रिए उपयोगकर्ता की मौजूदगी की पुष्टि करता है. इससे यह पक्का होता है कि उपयोगकर्ता, दोनों डिवाइसों के साथ मौजूद है और उन्हें कंट्रोल कर रहा है.
मानकीकरण
इंटरऑपरेबिलिटी (दूसरे सिस्टम के साथ काम करने की सुविधा) बहुत ज़रूरी है. Chrome में, Digital Credentials API प्रोटोकॉल प्लैटफ़ॉर्म से अलग होता है. साथ ही, यह कई तरह के प्रज़ेंटेशन प्रोटोकॉल के साथ काम करता है. उदाहरण के लिए, OpenID4VP और ISO 18013-7 का Annex C. Apple ने Safari 26.0 में Digital Credentials API के लिए सहायता भी उपलब्ध कराई है.
इसके अलावा, Digital Credentials API, Android में क्रेडेंशियल मैनेज करने की सुविधा और इसके साथ काम करने वाले वॉलेट के बढ़ते नेटवर्क पर आधारित है. Google Wallet, इस सुविधा का इस्तेमाल करने वाले शुरुआती ऐप्लिकेशन में से एक है. Samsung Wallet और 1Password भी जल्द ही इस सुविधा का इस्तेमाल कर पाएंगे.
Origin trial के बाद से, क्या नया है?
जिन लोगों ने हमारे पिछले ऑरिजिन ट्रायल में हिस्सा लिया था उन्हें यह सूचना दी जाती है कि Digital Credentials API को navigator.identity.get()
से navigator.credentials.get()
पर ले जाया गया है. ऐसा इसलिए किया गया है, ताकि इसे Credential Management API के साथ पहचान को एक जैसा बनाने के लिए किए जा रहे बड़े बदलावों के साथ अलाइन किया जा सके.
इसके अलावा, providers
पैरामीटर का नाम बदलकर requests
कर दिया गया है. साथ ही, request
का नाम बदलकर data
कर दिया गया है.
लागू करना
Digital Credentials API को इंटिग्रेट करने के लिए, दो मुख्य चरण पूरे करने होते हैं: सुविधा की पहचान करना और क्रेडेंशियल का अनुरोध करना. डेवलपर को कस्टम लॉजिक भी लागू करना चाहिए, ताकि यह तय किया जा सके कि उनका ऐप्लिकेशन क्रेडेंशियल का इस्तेमाल कर सकता है या नहीं.
फ़ीचर का पता लगाने की सुविधा
"डिजिटल क्रेडेंशियल से पुष्टि करें" बटन दिखाने से पहले, यह जांच लें कि उपयोगकर्ता के ब्राउज़र में Digital Credentials API उपलब्ध है या नहीं.
if (typeof DigitalCredential !== "undefined") {
// Digital Credentials API is supported
} else {
// Digital Credentials API is not supported
}
क्रेडेंशियल का अनुरोध करना
क्रेडेंशियल का अनुरोध करने के लिए, digital
पैरामीटर के साथ navigator.credentials.get()
को कॉल करना होता है. डिजिटल क्रेडेंशियल टाइप में, requests
ऐरे जोड़ें. इसमें DigitalCredentialGetRequest शामिल हो. साथ ही, इसमें ये बुनियादी पैरामीटर शामिल हों:
protocol
: स्ट्रिंग की मदद से, एक्सचेंज प्रोटोकॉल तय करें. उदाहरण के लिए,"openid4vp"
या"org-iso-mdoc"
. यह पता लगाएं कि ब्राउज़र पर प्रोटोकॉल काम करता है या नहीं. इसके लिए, यह तरीका अपनाएं:if (DigitalCredential.userAgentAllowsProtocol("example-protocol")) { // Create a request with this protocol } else { // Protocol is not supported }
data
: यह एक ऑब्जेक्ट है. इसमें ऐसे पैरामीटर होते हैं जिन्हें डिजिटल वॉलेट ऐप्लिकेशन, तय किए गए प्रोटोकॉल के लिए स्वीकार करते हैं."openid4vp"
के लिए, W3C Digital Credentials API स्पेसिफ़िकेशन के लिए, OpenID for Verifiable Presentation (OID4VP) में पैरामीटर तय किए जाते हैं.try { const digitalCredential = await navigator.credentials.get({ digital: { requests: [{ protocol: "openid4vp-v1-unsigned", data: { response_type: "vp_token", nonce: "[some-nonce]", client_metadata: {...}, dcql_query: {...} } }] } }); // Decrypt payload respons and verify credentials on the backend const response = await fetch("/verify", { method: "POST", body: JSON.stringify(digitalCredential.data), headers: { 'Content-Type': 'application/json' } }); } catch (e) { // Handle errors, such as the user canceling the request console.error(e); }
उदाहरण के लिए, किसी उपयोगकर्ता के उपनाम, दिए गए नाम, और बूलियन वैल्यू का अनुरोध करने के लिए, यहां दिया गया पेलोड इस्तेमाल किया जा सकता है. बूलियन वैल्यू से यह पता चलता है कि उपयोगकर्ता की उम्र 21 साल से ज़्यादा है या नहीं:
{
protocol: 'openid4vp-v1-unsigned',
data: {
response_type: 'vp_token',
nonce: '[some-nonce]',
// Contains the Verifier metadata values, including supported credential formats and response encryption public key
client_metadata: {
// Supported credential formats. Refer to the documentation for specific values
vp_formats_supported: {...},
// Public key(s). Refer to the documentation for more detail.
jwks: {...}
},
dcql_query: {
// A wallet will try to find credentials it holds that match these definitions.
credentials: [
{
// A locally unique identifier for this credential definition within the query.
id: "cred_vc",
format: "dc+sd-jwt",
meta: {
// 'vct_values' specifies the Verifiable Credential allowed type.
// In this case, it's a European Digital Identity (EUDI) Personal Identification Data (PID) credential.
vct_values: [
"urn:eudi:pid:1"
]
},
// 'claims' is an array of specific data that's being requested.
claims: [
{
// The path ["age_equal_or_over", "18"] corresponds to accessing `credential.age_equal_or_over['18']`.
path: [
"age_equal_or_over",
"18"
]
}
]
}
]
}
}
}
इस उदाहरण में, client_metadata
को ऐसे फ़ॉर्मैट की सूची देनी होगी जिन्हें इस्तेमाल किया जा सकता है. इस्तेमाल की जा सकने वाली वैल्यू देखने के लिए, स्पेसिफ़िकेशन देखें. client_metadata
में सेट की गई jwks
वैल्यू (ज़रूरी नहीं है) में, जवाब को एन्क्रिप्ट करने के लिए इस्तेमाल की गई सार्वजनिक कुंजियां शामिल होनी चाहिए. ज़्यादा उदाहरणों के लिए, डेमो कोड भी देखा जा सकता है.
यहां DigitalCredential ऑब्जेक्ट के एन्क्रिप्ट (सुरक्षित) किए गए जवाब के पेलोड का उदाहरण दिया गया है:
{
// This is an example for a response using an OpenID4VP protocol.
// The format of the 'data' object will differ for other protocols.
"protocol": "openid4vp-v1-unsigned",
"data": {
// To decrypt this JWE payload, use the private key.
// The decrypted payload will be a JSON object containing the
// Verifiable Presentation in the 'vp_token' claim.
"response": "[jwe-token]"
}
}
इस उदाहरण में, सिस्टम openid4vp-v1-unsigned
प्रोटोकॉल के साथ क्रेडेंशियल का अनुरोध करता है. साथ ही, जवाब में data
प्रॉपर्टी में response
शामिल होता है.
जवाब को पार्स करने का सटीक तरीका, प्रोटोकॉल पर निर्भर करता है. आम तौर पर, आपको ये काम करने होते हैं:
- जवाब के पेलोड को डिक्रिप्ट करें. डिक्रिप्ट करने का तरीका, इस्तेमाल किए गए प्रोटोकॉल पर निर्भर करता है.
openid4vp
(JWE का इस्तेमाल करके) औरorg-iso-mdoc
(हाइब्रिड पब्लिक की एन्क्रिप्शन का इस्तेमाल करके) के लिए, पेलोड को डिक्रिप्ट करने का तरीका जानें. - हस्ताक्षर और जारी करने वाले की पुष्टि करें. ज़्यादा जानकारी के लिए, डिजिटल क्रेडेंशियल को ऑनलाइन स्वीकार करने से जुड़ा दस्तावेज़ देखें.
अलग-अलग प्रोटोकॉल के लिए कोड के सैंपल देखने के लिए, डेमो के लिए कोड या लाइव होस्ट किया गया वर्शन देखें.
आईडी जारी करने वाले पर भरोसा करने की पुष्टि करना
डिजिटल क्रेडेंशियल के क्रिप्टोग्राफ़िक हस्ताक्षर से यह साबित होता है कि क्रेडेंशियल असली है. हालांकि, डेवलपर को यह पुष्टि करनी होगी कि जारी करने वाली इकाई, उनके इस्तेमाल के उदाहरण के लिए सही और भरोसेमंद है. उदाहरण के लिए, किसी यूनिवर्सिटी के छात्र-छात्रा को छूट देने के लिए, ई-कॉमर्स साइट को मान्यता प्राप्त यूनिवर्सिटी से जारी किया गया क्रेडेंशियल चाहिए होगा. साथ ही, वह किसी अन्य इकाई के हस्ताक्षर वाले क्रेडेंशियल को अस्वीकार कर देगी. सर्टिफ़िकेट जारी करने वाले व्यक्ति या कंपनी पर भरोसा करने की पुष्टि करने का एक सामान्य तरीका यह है कि मंज़ूरी पा चुके लोगों या कंपनियों की सूची बनाए रखें. साथ ही, सूची में शामिल न होने वाले किसी भी व्यक्ति या कंपनी को अस्वीकार कर दें.
अपनी प्रोफ़ाइल बनाना शुरू करें
क्या आप इंटिग्रेट करने के लिए तैयार हैं? इसके बारे में आपको ये बातें ज़रूर जाननी चाहिए.
- उपलब्धता: Chrome 141 या उसके बाद के वर्शन में, Digital Credentials API डिफ़ॉल्ट रूप से चालू होता है. यह अलग-अलग प्लैटफ़ॉर्म पर काम करता है.
- ज़रूरी शर्तें: उपयोगकर्ताओं के पास, इस सुविधा के साथ काम करने वाला डिवाइस होना चाहिए. उदाहरण के लिए, Google Play services के 24.0 या इसके बाद के वर्शन पर काम करने वाला Android डिवाइस या 26 या इसके बाद के वर्शन पर काम करने वाला iOS डिवाइस. डिवाइस में, Digital Credentials API के साथ काम करने वाला डिजिटल वॉलेट ऐप्लिकेशन इंस्टॉल होना चाहिए. उदाहरण के लिए, Google Wallet या डेमो वॉलेट.
- डेमो आज़माएं: उपयोगकर्ता अनुभव को समझने और लागू करने के तरीके को टेस्ट करने का सबसे अच्छा तरीका है कि आप Chrome 141 या इसके बाद के वर्शन पर, https://verifier.multipaz.org पर जाकर लाइव डेमो आज़माएं.
संसाधन
ज़्यादा जानकारी के लिए, यहां दिए गए संसाधन देखें:
- डेवलपर गाइड: Digital Credentials API
- स्पेसिफ़िकेशन: W3C डिजिटल क्रेडेंशियल
- Android के लिए सहायता: Android पर डिजिटल क्रेडेंशियल इस्तेमाल करने की सुविधा
सुझाव/राय दें या शिकायत करें
Digital Credentials API अब उपलब्ध है. इसलिए, हम जानना चाहते हैं कि इसे इस्तेमाल करने का आपका अनुभव कैसा रहा. सुझाव/राय देने या किसी गड़बड़ी की शिकायत करने के लिए, समस्या की शिकायत करें.