API اعتبارنامه‌های دیجیتال برای صدور اعتبارنامه

ناتالیا مارکوبورودووا
Natalia Markoborodova

منتشر شده: ۲۶ نوامبر ۲۰۲۵

شما می‌توانید از نسخه ۱۴۳ کروم به نسخه آزمایشی اولیه برای صدور API اعتبارنامه‌های دیجیتال بپیوندید. این API جدید، ارائه اعتبارنامه‌های دیجیتال به کیف پول مورد نظر کاربر را برای وب‌سایت‌ها آسان‌تر می‌کند.

پس‌زمینه

در اکوسیستم هویت دیجیتال سه‌جانبه شامل صادرکنندگان، تأییدکنندگان (طرف‌های وابسته) و دارندگان (کیف پول‌ها)، معمولاً کاربر از طریق ارائه سریع، یک شناسه دیجیتال را در کیف پول خود ارائه می‌دهد. در طول این فرآیند، کاربر فرآیند صدور شناسه را مستقیماً از وب‌سایت یا برنامه صادرکننده آغاز می‌کند. به عنوان مثال، کاربری که از وب‌سایت اداره وسایل نقلیه موتوری یک ایالت (صادرکننده) بازدید می‌کند، می‌تواند فرآیند ذخیره گواهینامه دیجیتال خود را در برنامه کیف پول مورد نظر خود (دارنده) در دستگاه خود آغاز کند.

برای موفقیت این مدل، صادرکننده به یک روش امن و قابل اعتماد برای اتصال به برنامه کیف پول و صدور شناسه نیاز دارد. این فرآیند چندپاره شده است، زیرا هر صادرکننده مجبور بود برای هر برنامه کیف پولی که با آن همکاری می‌کند، اتصالات خود را بسازد که معمولاً با تکیه بر طرح‌های URI سفارشی انجام می‌شد. این رویکرد باعث ایجاد اصطکاک قابل توجهی در پیاده‌سازی شد و صادرکنندگان را مجبور کرد تا از یک اکوسیستم چندپاره از ادغام‌های کیف پول مختلف پشتیبانی کنند.

صدور API اعتبارنامه‌های دیجیتال

برای ساده‌سازی این فرآیند، کروم در حال گسترش پشتیبانی از API اعتبارنامه‌های دیجیتال W3C است و به قابلیت‌های ارائه‌شده‌ی اخیر اضافه می‌کند. متد navigator.credentials.create() به وب‌سایت‌های صادرکننده اجازه می‌دهد تا به‌طور ایمن برنامه‌های کیف پول را برای صدور اعتبارنامه فراخوانی کنند. هنگامی که یک وب‌سایت صادرکننده navigator.credentials.create() را با یک عضو digital فراخوانی می‌کند، مرورگر جریان را به پلتفرم واگذار می‌کند که از کروم ۱۴۳ به اندروید محدود شده است. پلتفرم لیستی از کیف پول‌های سازگار نصب‌شده روی دستگاه را نمایش می‌دهد. سپس کاربر می‌تواند یک کیف پول را انتخاب کند و رضایت خود را برای افزودن اعتبارنامه اعلام کند.

صدور API اعتبارنامه‌های دیجیتال برای هر دو سناریوی دستگاه یکسان (روی موبایل) و بین دستگاهی (روی دسکتاپ) کار می‌کند. در سناریوی بین دستگاهی، مرورگر دسکتاپ یک کد QR را نمایش می‌دهد. هنگامی که کاربر کد را روی دستگاه موبایل خود اسکن می‌کند، اگر هر دو دستگاه در نزدیکی هم باشند، جریان واسطه‌گری پلتفرم آغاز می‌شود.

نحوه استفاده از API

این API مستقل از پروتکل است و برای کار با استانداردهای باز، به عنوان مثال، استاندارد OpenID برای صدور اعتبارنامه‌های قابل تأیید (OpenID4VCI) طراحی شده است.

برای شروع جریان صدور، وب‌سایت صادرکننده باید navigator.credentials.create() را فراخوانی کند و درخواست‌های صدور را درون یک شیء digital ارسال کند، برای مثال:

// Check if the browser supports Digital Credentials issuance and the protocol.
if (window.DigitalCredential && DigitalCredential.userAgentAllowsProtocol('openid4vci-v1')) {

  // Construct a credential offer according to the OpenID4VCI specification.
  // Note: The API is in an active development stage. Always consult the
  // specification and documentation for the most recent implementation details
  const credentialOffer = {
    credential_issuer: 'https://digital-credentials.dev',
    credential_configuration_ids: [
      'org.iso.18013.5.1.mDL'
    ],
    authorization_server_metadata: {
      issuer: 'https://digital-credentials.dev',
      token_endpoint: 'https://digital-credentials.dev/openid4vci/token',
      authorization_endpoint: 'https://digital-credentials.dev/openid4vci/auth',
      grant_types_supported: [
        'authorization_code',
        'urn:ietf:params:oauth:grant-type:pre-authorized_code'
      ],
      response_types_supported: ['code','token']
    },
    // Metadata details to help the wallet display the credential correctly.
    credential_issuer_metadata: {
      credential_endpoint: 'https://digital-credentials.dev/openid4vci/credential',
      credential_configurations_supported: {
        'org.iso.18013.5.1.mDL': {
          format: 'mso_mdoc',
          display: [{
            name: 'Driving License',
            locale: 'en-US',
            description: 'Mobile Driving License'
          }],
          // The claims that this document contains.
          // For a full list of standard mDL claims, see the ISO/IEC 18013-5 specification.
          claims: [{
            path: ['org.iso.18013.5.1', 'family_name'],
            display: [{ name: 'Family Name', locale: 'en-US' }]
          }
          // ... Add any other claims for your document here.
          ]
        }
      }
    }
  };

  // This call is made from the issuer's frontend, likely inside a button's click handler.
  try {
    await navigator.credentials.create({
      digital: {
        requests: [{
          // The protocol identifier for this version of OpenID4VCI.
          protocol: 'openid4vci-v1',
          data: credentialOffer
          }
        }]
      }
    });
    console.log('Credential issuance handoff to OS was successful.');
  } catch (e) {
    console.error('Error starting the credential issuance flow:', e);
  }

} else {
  // The API is not supported. Provide an alternative issuance method.
  console.log('Digital Credential Issuance API is not supported in this browser.');
}

امتحانش کن.

قبل از اینکه API اعتبارنامه‌های دیجیتال را در مرورگر و دستگاه اندروید خود آزمایش کنید:

  • مرورگر کروم خود را در دسکتاپ به نسخه ۱۴۳ یا بالاتر به‌روزرسانی کنید و سرویس‌های گوگل پلی را در دستگاه اندروید خود به نسخه ۲۴.۰ یا بالاتر ارتقا دهید.
  • پرچم را در chrome://flags/#web-identity-digital-credentials-creation در مرورگر خود فعال کنید.
  • یک برنامه کیف پول پشتیبانی شده را روی دستگاه اندروید خود نصب کنید، به عنوان مثال، نسخه آزمایشی CMWallet .

برای آزمایش جریان بین دستگاهی برای صدور اعتبارنامه‌های دیجیتال:

  1. در دسکتاپ به آدرس https://digital-credentials.dev/dmv بروید.
  2. برای شروع فرآیند صدور، دکمه افزودن را فشار دهید.
  3. کد QR را با دستگاه اندروید خود اسکن کنید و دستورالعمل‌ها را دنبال کنید.

پس از طی کردن این مراحل، یک اعتبارنامه جدید برای کیف پول روی دستگاه اندروید شما صادر شده است.

برای فعال کردن این ویژگی در وب‌سایت خود برای کاربران، به نسخه آزمایشی صدور مجوز مبدا (issue origin) API دیجیتال کردنشالز (Digital Credentials API) بپیوندید. برای اطلاعات بیشتر، مقاله شروع به کار با نسخه آزمایشی مبدا را بررسی کنید.

بازخورد خود را به اشتراک بگذارید

بازخورد شما در ادامه‌ی تکامل پلتفرم بسیار مهم است. هرگونه اشکال یا درخواست ویژگی را در ردیاب اشکال کرومیوم ثبت کنید.