ডিজিটাল শংসাপত্র API: ওয়েবে সুরক্ষিত এবং ব্যক্তিগত পরিচয়

নাটালিয়া মার্কোবোরোডোভা
Natalia Markoborodova

প্রকাশিত: 3 অক্টোবর, 2025

আমরা ঘোষণা করতে পেরে আনন্দিত যে ডিজিটাল শংসাপত্র API এখন Chrome 141 থেকে ডিফল্টরূপে সক্ষম করা হয়েছে৷ উপরন্তু, iOS 26 Chrome এবং অন্যান্য ব্রাউজারগুলিতে ডিজিটাল শংসাপত্র API-এর জন্য সমর্থন যোগ করে৷ এই API ওয়েবে পরিচয় যাচাইকরণে নিরাপত্তা এবং গোপনীয়তার একটি নতুন স্তর নিয়ে আসে, ওয়েবসাইটগুলিকে ব্যবহারকারীদের কাছ থেকে যাচাইযোগ্য তথ্যের অনুরোধ এবং গ্রহণ করার জন্য একটি মানসম্মত উপায় সক্ষম করে৷

একটি সফল অরিজিন ট্রায়ালের পরে, ডিজিটাল শংসাপত্র API এখন Android-এ একই-ডিভাইস শংসাপত্র উপস্থাপনা এবং ডেস্কটপ Chrome-এ ক্রস-ডিভাইস উপস্থাপনা উভয়কেই সমর্থন করে।

পটভূমি

অনলাইনে পরিচয় যাচাই করা এখন পর্যন্ত একটি জটিল প্রক্রিয়া, প্রায়ই ব্যবহারকারীদের তাদের আইডি স্ক্যান আপলোড করতে হয়। এই অনুশীলনটি প্রায়শই প্রয়োজনের চেয়ে বেশি ডেটা ভাগ করে নেওয়ার অর্থ হয়, যা ব্যবহারকারীদের জন্য গুরুত্বপূর্ণ গোপনীয়তা উদ্বেগ তৈরি করে। বিকাশকারীদের জন্য, এটি ঝুঁকিও তৈরি করে, কারণ তাদের অবশ্যই নিশ্চিত করতে হবে যে তাদের সমাধানটি একটি নিরাপদ এবং গোপনীয়তা-সংরক্ষণের উপায়ে প্রায়শই নন-ইউনিফর্ম সংবেদনশীল ডেটা প্রক্রিয়াকরণ এবং সংরক্ষণ করতে সক্ষম।

একই সময়ে, eIDAS 2.0 এর মতো প্রবিধানগুলি বাধ্যতামূলক করে যে সরকারগুলি জনসাধারণকে ডিজিটাল সনাক্তকরণের উপায় সরবরাহ করে। এই ডিজিটাল আইডেন্টিটি ওয়ালেটগুলি অবশ্যই পরিচয় এবং বয়সের প্রমাণ সহ বিভিন্ন শংসাপত্র ধারণ করতে সক্ষম হবে। অনলাইন পরিষেবা প্রদানকারীরা ব্যবহারকারীর পরিচয় যাচাই করার জন্য এই শংসাপত্রগুলির অনুরোধ করতে পারে।

গোপনীয়তার জন্য ব্যবহারকারীর চাহিদা এবং বিকাশকারীকে ব্যবহারকারীর ডেটা যাচাই করার প্রয়োজন উভয়ই মেটাতে ডিজিটাল শংসাপত্রের সম্ভাব্যতা স্বীকার করে, W3C-এর ওয়েব স্ট্যান্ডার্ড সম্প্রদায় একটি সমাধান তৈরি করেছে: The Digital Credentials API । ডিজিটাল শংসাপত্র API এর লক্ষ্য ব্যবহারকারীর তথ্য যাচাই করার জন্য একটি অন্তর্নির্মিত ইন্টারফেস প্রবর্তন করে সমস্যা সমাধান করা, যা বিকল্পগুলির তুলনায় নিরাপত্তা, গোপনীয়তা এবং ব্যবহারকারীর অভিজ্ঞতা উন্নত করে। এই API এর সাথে, ব্যবহারকারীদের আর একাধিক ওয়েবসাইটে আইডি স্ক্যানের মতো সংবেদনশীল নথি আপলোড করতে হবে না। পরিবর্তে, ওয়েবসাইটগুলি বিশ্বস্ত ইস্যুকারীদের কাছ থেকে তাদের প্রয়োজনীয় নির্দিষ্ট, ক্রিপ্টোগ্রাফিকভাবে স্বাক্ষরিত ডেটার অনুরোধ করে তাদের ব্যবহারকারীদের সাথে বিশ্বাস তৈরি করতে পারে।

মূল বৈশিষ্ট্য

ডিজিটাল শংসাপত্র API তিনটি মূল নীতির উপর নির্মিত: গোপনীয়তা, ক্রস-প্ল্যাটফর্ম সমর্থন এবং মানককরণ।

গোপনীয়তা

ডিজিটাল শংসাপত্র API অনলাইন গোপনীয়তা এবং নিরাপত্তা বাড়ায়। এটি ব্যবহারকারীদের অন্তর্নিহিত সংবেদনশীল ডেটা প্রকাশ না করে নির্দিষ্ট তথ্য যাচাই করতে তাদের মোবাইল ওয়ালেট থেকে ওয়েবসাইটগুলিতে একটি ডিজিটাল আইডি উপস্থাপন করার অনুমতি দেয়। উদাহরণ স্বরূপ, এপিআই একজন ব্যবহারকারীর সম্পূর্ণ জন্ম তারিখ প্রকাশ না করেই তার বয়স ১৮ বছরের বেশি তা যাচাই করতে পারে। "সিলেক্টিভ ডিসক্লোজার" এর এই নীতি নিশ্চিত করে যে ওয়েবসাইটগুলি শুধুমাত্র প্রয়োজনীয় ন্যূনতম তথ্য পাবে।

ডিজিটাল শংসাপত্র API জিরো নলেজ প্রুফ (ZKPs) প্রোটোকলের সাথেও সামঞ্জস্যপূর্ণ, যেমন Google এর Longfellow ZK, যা একটি ক্রিপ্টোগ্রাফিক প্রমাণ ফেরত দিয়ে ব্যবহারকারীর গোপনীয়তা নিশ্চিত করে যে একটি নির্দিষ্ট পরিচয় দাবী অন্য কোনো তথ্য প্রকাশ না করেই সত্য।

ক্রস-প্ল্যাটফর্ম সমর্থন

ডিজিটাল শংসাপত্র API এর লক্ষ্য বিভিন্ন প্ল্যাটফর্মকে সমর্থন করা, যাতে ব্যবহারকারীরা সহজেই ডিভাইস জুড়ে যাচাইকৃত তথ্য উপস্থাপন করতে পারেন।

অ্যান্ড্রয়েডে: একটি অন্তর্নির্মিত ব্যবহারকারী ইন্টারফেস প্রদান করে, ব্যবহারকারীদের তাদের ইনস্টল করা ওয়ালেট অ্যাপ থেকে শংসাপত্র নির্বাচন করতে দেয়।

ডেস্কটপে: ব্যবহারকারীরা তাদের মোবাইল ওয়ালেট থেকে তাদের ডেস্কটপ ব্রাউজারে একটি ওয়েবসাইটে শংসাপত্র উপস্থাপন করতে পারে। একটি QR কোড স্ক্যান করার মাধ্যমে, সিস্টেমটি ডেস্কটপ এবং মোবাইল ডিভাইসের মধ্যে একটি নিরাপদ, এন্ড-টু-এন্ড এনক্রিপ্টেড এবং ফিশিং-প্রতিরোধী সংযোগ স্থাপন করে। এই সংযোগটি BLE এর মাধ্যমে ব্যবহারকারীর নৈকট্য যাচাই করতে CTAP প্রোটোকল ব্যবহার করে, নিশ্চিত করে যে তারা শারীরিকভাবে উপস্থিত এবং উভয় ডিভাইসের নিয়ন্ত্রণে রয়েছে।

প্রমিতকরণ

ইন্টারঅপারেবিলিটি গুরুত্বপূর্ণ। ক্রোমে, ডিজিটাল শংসাপত্র API প্রোটোকল প্ল্যাটফর্ম-স্বাধীন এবং বিভিন্ন উপস্থাপনা প্রোটোকলের সাথে সামঞ্জস্যপূর্ণ, উদাহরণস্বরূপ, ISO 18013-7 এর OpenID4VP এবং Annex C। Apple Safari 26.0 থেকে ডিজিটাল শংসাপত্র API-এর জন্য সমর্থনও চালু করেছে।

উপরন্তু, ডিজিটাল শংসাপত্র API অ্যান্ড্রয়েডে অন্তর্নির্মিত শংসাপত্র ব্যবস্থাপনা সমর্থন এবং সামঞ্জস্যপূর্ণ ওয়ালেটগুলির একটি ক্রমবর্ধমান ইকোসিস্টেমের উপর তৈরি করে। স্যামসাং ওয়ালেট এবং 1পাসওয়ার্ডের সমর্থন সহ Google Wallet একটি প্রাথমিক গ্রহণকারী।

অরিজিন ট্রায়াল থেকে নতুন কি?

যারা আমাদের পূর্বের অরিজিন ট্রায়ালে অংশগ্রহণ করেছেন, আপনি লক্ষ্য করবেন ডিজিটাল ক্রেডেনশিয়াল API navigator.identity.get() থেকে navigator.credentials.get() এ সরানো হয়েছে, এটিকে ক্রেডেনশিয়াল ম্যানেজমেন্ট API-এর সাথে বৃহত্তর পরিচয় একীকরণ প্রচেষ্টার সাথে সারিবদ্ধ করে। উপরন্তু, providers প্যারামিটারের নামকরণ করা হয়েছে requests , এবং request নামকরণ করা হয়েছে data

বাস্তবায়ন

ডিজিটাল শংসাপত্র API একত্রিত করার দুটি প্রধান পদক্ষেপ জড়িত: বৈশিষ্ট্য সনাক্তকরণ, এবং শংসাপত্রের অনুরোধ করা। তাদের অ্যাপ্লিকেশন শংসাপত্রগুলি ব্যবহার করতে পারে কিনা তা নির্ধারণ করতে বিকাশকারীদেরও কাস্টম যুক্তি প্রয়োগ করা উচিত।

বৈশিষ্ট্য সনাক্তকরণ

আপনি "ডিজিটাল শংসাপত্রের সাথে যাচাই করুন" বোতামটি দেখানোর আগে, ব্যবহারকারীর ব্রাউজারে ডিজিটাল শংসাপত্র API উপলব্ধ কিনা তা পরীক্ষা করে দেখুন।

if (typeof DigitalCredential !== "undefined") {
  // Digital Credentials API is supported
} else {
  // Digital Credentials API is not supported
}

একটি শংসাপত্রের অনুরোধ করুন

একটি শংসাপত্রের অনুরোধ করার সাথে একটি digital প্যারামিটার সহ navigator.credentials.get() এ একটি কল জড়িত৷ ডিজিটাল শংসাপত্রের প্রকারের মধ্যে, নিম্নলিখিত মৌলিক পরামিতিগুলির সাথে DigitalCredentialGetRequest ধারণ করে এমন একটি requests অ্যারে যুক্ত করুন:

  • protocol : একটি স্ট্রিং সহ একটি বিনিময় প্রোটোকল নির্দিষ্ট করুন। উদাহরণস্বরূপ, "openid4vp" বা "org-iso-mdoc" নিম্নরূপ ব্রাউজার দ্বারা প্রোটোকল সমর্থিত কিনা তা সনাক্ত করুন:

    if (DigitalCredential.userAgentAllowsProtocol("example-protocol")) {
        // Create a request with this protocol
      } else {
        // Protocol is not supported
    }
    
  • data : ডিজিটাল ওয়ালেট অ্যাপগুলি নির্দিষ্ট প্রোটোকলের জন্য গ্রহণ করে এমন প্যারামিটার সহ একটি বস্তু"openid4vp" এর জন্য, W3C ডিজিটাল শংসাপত্র API স্পেসিফিকেশনের জন্য যাচাইযোগ্য উপস্থাপনা (OID4VP) এর জন্য OpenID- এ পরামিতিগুলি সংজ্ঞায়িত করা হয়েছে।

    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 রয়েছে।

প্রতিক্রিয়া পার্স করার সঠিক উপায় প্রোটোকলের উপর নির্ভর করে। আপনি সাধারণত প্রয়োজন:

  1. প্রতিক্রিয়া পেলোড ডিক্রিপ্ট করুন । ডিক্রিপশন পদ্ধতি ব্যবহৃত প্রোটোকলের উপর নির্ভর করে। কিভাবে openid4vp (JWE ব্যবহার করে) এবং org-iso-mdoc (হাইব্রিড পাবলিক কী এনক্রিপশন ব্যবহার করে) এর জন্য পেলোড ডিক্রিপ্ট করতে হয় তা দেখুন।
  2. স্বাক্ষর এবং ইস্যুকারী যাচাই করুন । আরও বিস্তারিত জানার জন্য ডিজিটাল শংসাপত্রের ডকুমেন্টেশনের অনলাইন স্বীকৃতি দেখুন।

বিভিন্ন প্রোটোকলের কোড নমুনা দেখতে, ডেমো বা লাইভ হোস্ট করা সংস্করণের কোডটি দেখুন।

ইস্যুকারীর উপর আস্থা যাচাই করুন

ডিজিটাল শংসাপত্রের ক্রিপ্টোগ্রাফিক স্বাক্ষর প্রমাণ করে যে প্রমাণপত্রটি খাঁটি। যাইহোক, ডেভেলপারদের অবশ্যই যাচাই করতে হবে যে ইস্যুকারী তাদের নির্দিষ্ট ব্যবহারের ক্ষেত্রে উপযুক্ত এবং বিশ্বস্ত। উদাহরণস্বরূপ, একটি বিশ্ববিদ্যালয়ের ছাত্রদের ছাড় দেওয়ার জন্য, একটি ইকমার্স সাইটের জন্য একটি স্বীকৃত বিশ্ববিদ্যালয় দ্বারা জারি করা একটি শংসাপত্রের প্রয়োজন হবে এবং অন্য কোনো সংস্থার দ্বারা স্বাক্ষরিত একটি শংসাপত্র প্রত্যাখ্যান করবে৷ ইস্যুকারীর উপর আস্থা যাচাই করার একটি সাধারণ উপায় হল অনুমোদিত ইস্যুকারীদের একটি তালিকা বজায় রাখা এবং মেলে না এমন কোনো ইস্যুকারীকে প্রত্যাখ্যান করা।

শুরু করুন

বিল্ডিং শুরু করতে প্রস্তুত? আপনার যা জানা দরকার তা এখানে।

  • উপলভ্যতা: Chrome 141 বা নতুনতর বিভিন্ন প্ল্যাটফর্ম জুড়ে ডিফল্টরূপে ডিজিটাল শংসাপত্র API সক্ষম করে।
  • পূর্বশর্ত: ব্যবহারকারীদের একটি সামঞ্জস্যপূর্ণ ডিভাইস প্রয়োজন, উদাহরণস্বরূপ, Android চলমান Google Play পরিষেবার সংস্করণ 24.0 বা উচ্চতর, অথবা একটি iOS ডিভাইস চলমান সংস্করণ 26 বা তার পরে৷ ডিভাইসটিতে অবশ্যই একটি ইনস্টল করা ডিজিটাল ওয়ালেট অ্যাপ্লিকেশন থাকতে হবে যা ডিজিটাল শংসাপত্র API সমর্থন করে, উদাহরণস্বরূপ, Google Wallet বা একটি ডেমো ওয়ালেট
  • ডেমো ব্যবহার করে দেখুন: ব্যবহারকারীর অভিজ্ঞতা বোঝার এবং আপনার বাস্তবায়ন পরীক্ষা করার সর্বোত্তম উপায় হল https://verifier.multipaz.org- এ Chrome 141 বা নতুনটির সাথে লাইভ ডেমো চেষ্টা করা।

সম্পদ

আরও তথ্যের জন্য, নিম্নলিখিত সংস্থানগুলি দেখুন:

আপনার মতামত শেয়ার করুন

এখন যেহেতু ডিজিটাল শংসাপত্র API পাঠানো হয়েছে, আমরা এটির সাথে আপনার অভিজ্ঞতা তৈরির বিষয়ে শুনতে চাই। আপনার প্রতিক্রিয়া শেয়ার করতে বা কোনো বাগ রিপোর্ট করতে একটি সমস্যা ফাইল করুন