معرفی نسخه آزمایشی مبدا Digital Credentials API

تاریخ انتشار: 4 سپتامبر 2024

یک آزمایش اولیه برای Digital Credentials API از Chrome 128 شروع می‌شود. Digital Credentials API یک API پلتفرم وب جدید است که به وب‌سایت‌ها اجازه می‌دهد به طور انتخابی اطلاعات قابل تأییدی درباره کاربر از طریق اعتبارنامه‌های دیجیتالی مانند گواهینامه رانندگی یا کارت شناسایی ملی ذخیره شده در کیف پول دیجیتالی درخواست کنند.

پس زمینه

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

گواهینامه رانندگی موبایل در Google Wallet
گواهینامه رانندگی موبایل در Google Wallet.

ویژگی‌های یک اعتبار دیجیتال به فرمت آن بستگی دارد، اگرچه معمولاً عبارتند از:

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

به دلیل ماهیت قابل تأیید اعتبارنامه های دیجیتال، آنها می توانند موارد استفاده مانند موارد زیر را فعال کنند:

  • تأیید سن: قبل از ارائه محتوای دارای محدودیت سنی یا خرید موارد دارای محدودیت سنی، سن فرد را برای تأیید سن درخواست کنید.
  • تأیید هویت: درخواست نام و نشانی برای تأیید هویت یک شخص برای مطابقت قانونی یا جلوگیری از تقلب.
  • بررسی امتیازات رانندگی: واجد شرایط بودن یک فرد برای رانندگی را تأیید کنید (مثلاً هنگام اجاره ماشین).

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

معرفی Digital Credentials API

Digital Credentials API یک API پلتفرم وب جدید است که به وب‌سایت‌های RP اجازه می‌دهد تا از برنامه‌های کیف پول ارائه اعتبار دیجیتال را درخواست کنند. API در کروم به‌عنوان نسخه آزمایشی اصلی از Chrome 128 در دسترس است.

API آگنوستیک پروتکل است و به RP اجازه می دهد تا پروتکلی را بر اساس الزامات خود مشخص کند. هنگامی که یک RP درخواستی را ارائه می کند، مرورگر درخواست را به سیستم عامل تلفن همراه می فرستد که اعتبار منطبق را در برنامه های کیف پول نصب شده جستجو می کند. اگر موردی پیدا شد، سیستم عامل موبایل از کاربر می خواهد یکی را انتخاب کند و درخواست را به کیف پول انتخاب شده توسط کاربر ارسال می کند. پس از احراز هویت محلی، کیف پول پاسخی حاوی اطلاعات اعتبار درخواستی را برمی‌گرداند.

نمودار ارتباط بین مرورگر، کیف پول و طرف متکی.

Chrome ابتدا از API در Chrome در Android برای درخواست اعتبار از برنامه های کیف پول در همان دستگاه پشتیبانی می کند. در آینده، ما قصد داریم از دسک‌تاپ Chrome پشتیبانی کنیم تا اعتبارنامه‌های بین دستگاهی را از یک دستگاه تلفن همراه دیگر درخواست کنیم.

در زمان راه‌اندازی، Google Wallet با Digital Credentials API یکپارچه می‌شود و به کسب‌وکارها و سازمان‌های منتخب این امکان را می‌دهد تا درخواستی را برای کاربران ارائه کنند تا شناسه خود را به صورت آنلاین از طریق Chrome در Android ارائه کنند و صحت داده‌های ارسال‌شده را با بررسی امضای رمزنگاری تأیید کنند. برای شرکت، این فرم را برای ابراز علاقه به پذیرش شناسه های دیجیتال از Google Wallet پر کنید.

این API همچنین به زودی توسط حساب‌های Google برای تأیید تاریخ تولد برخی از کاربران استفاده خواهد شد. کاربرانی که در یک ایالت پشتیبانی‌شده ایالات متحده زندگی می‌کنند، می‌توانند از شناسه ایالتی یا گواهینامه رانندگی خود که در برنامه‌های کیف پول موجود (از جمله Google Wallet) ارائه شده است استفاده کنند تا فقط تاریخ تولد خود را بدون به اشتراک گذاشتن سایر جزئیات هویت خود با Google به اشتراک بگذارند. این به کاربران این امکان را می‌دهد تا با حفظ حریم خصوصی به Google نشان دهند که شرایط سنی مرتبط با حساب را برآورده می‌کنند.

آن را امتحان کنید

الزامات:

  • خدمات Google Play 23.40 یا بالاتر
  • کروم 128 یا جدیدتر
  • پرچم را در chrome://flags#web-identity-digital-credentials فعال کنید

برای امتحان Digital Credentials API دستورالعمل ها را دنبال کنید:

  1. برنامه کیف پول دمو را طبق دستورالعمل ها نصب کنید.
  2. برنامه IC Wallet را راه اندازی کنید و یک گواهینامه رانندگی تلفن همراه (mDL) دمو ارائه کنید.
    • روی دکمه منو ضربه بزنید و Add Self Signed Document را انتخاب کنید.
  3. با Chrome 128 یا جدیدتر به https://digital-credentials.dev بروید.
  4. درخواست اعتبارنامه (OpenID4VP) را فشار دهید.

نسخه ی نمایشی را که از https://digital-credentials.dev استفاده می کند، یک وب سایت آزمایشی برای توسعه دهندگان برای ایجاد درخواست های اعتبار برای ویژگی های مختلف، بررسی کنید:

در اینجا نحوه عملکرد نسخه ی نمایشی مرحله به مرحله آمده است:

1. کاربر در وب‌سایت طرف متکی قرار می‌گیرد و از او خواسته می‌شود نام خانوادگی، نام داده شده و تضمین سن بالای 21 سال خود را ارائه دهد.
2. مرورگر تأیید می کند که آیا کاربر قصد دارد هر گونه اعتبار دیجیتالی را با این وب سایت به اشتراک بگذارد.
3. سیستم عامل اطلاعات مورد درخواست و اعتبارنامه های واجد شرایط را نشان می دهد که می تواند با درخواست کاربر برای انتخاب و تکمیل درخواست مطابقت داشته باشد.
4. کیف پول به صورت محلی کاربر را با باز کردن قفل صفحه تأیید می کند.

5. اعتبار دیجیتال درخواستی اکنون به وب سایت طرف متکی ارسال می شود.

نحوه عملکرد API

Digital Credentials API بر اساس Credential Management API ساخته شده است، اما از یک سطح 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: {...}
      }
    }],
  }
});

سطح پایه API شبیه به 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
            }
          ]
        }
      }],
    }
  }
}

با این درخواست، کیف‌پول‌هایی که دارای mDL در دستگاه هستند، مجموعه‌ای از اعتبارنامه‌های قابل تأیید را ارائه می‌کنند که حاوی:

  • نام خانوادگی کاربر
  • نام داده شده کاربر
  • یک مقدار بولی که نشان می دهد کاربر بالای 21 سال سن دارد یا خیر.

در اینجا یک نمونه بار پاسخ است:

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

در این مثال، اعتبار با پروتکل "openid4vp" درخواست شد و پاسخ حاوی "vp_token" در ویژگی data است. لطفاً OpenID for Verifiable Presentation (OID4VP) را برای مشخصات API Digital Credentials W3C ببینید تا نحوه تجزیه پاسخ و تأیید اعتبار را بیاموزید.

Digital Credentials API در Chrome در Android به عنوان نسخه آزمایشی اصلی پشتیبانی می‌شود. Chrome روی دسک‌تاپ و iOS در حال حاضر از آن پشتیبانی نمی‌کند. برای سایر موتورهای مرورگر، مکالمات فعال از طریق گروه جامعه انکوباتور وب W3C تسهیل می شود.

در آزمایش مبدا شرکت کنید

برای توسعه، می‌توانید با روشن کردن پرچم Chrome chrome://flags#web-identity-digital-credentials در Chrome 128 یا جدیدتر، Digital Credentials API را به صورت محلی فعال کنید.

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

  1. برای مبدا خود یک نشانه درخواست کنید .
  2. توکن را به صفحات خود اضافه کنید. دو راه برای انجام آن وجود دارد:
    • یک تگ origin-trial <meta> به سر هر صفحه اضافه کنید. برای مثال، ممکن است چیزی شبیه به این باشد: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">.
    • اگر می‌توانید سرور خود را پیکربندی کنید، می‌توانید با استفاده از سرآیند Origin-Trial HTTP، توکن را نیز اضافه کنید. سرصفحه پاسخ حاصل باید چیزی شبیه به این باشد: Origin-Trial: TOKEN_GOES_HERE.

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

اگر بازخوردی درباره Digital Credentials API دارید، آن را به ردیاب اختصاصی مشکل Chromium ارسال کنید.

،

تاریخ انتشار: 4 سپتامبر 2024

یک آزمایش اولیه برای Digital Credentials API از Chrome 128 شروع می‌شود. Digital Credentials API یک API پلتفرم وب جدید است که به وب‌سایت‌ها اجازه می‌دهد به طور انتخابی اطلاعات قابل تأییدی درباره کاربر از طریق اعتبارنامه‌های دیجیتالی مانند گواهینامه رانندگی یا کارت شناسایی ملی ذخیره شده در کیف پول دیجیتالی درخواست کنند.

پس زمینه

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

گواهینامه رانندگی موبایل در Google Wallet
گواهینامه رانندگی موبایل در Google Wallet.

ویژگی‌های یک اعتبار دیجیتال به فرمت آن بستگی دارد، اگرچه معمولاً عبارتند از:

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

به دلیل ماهیت قابل تأیید اعتبارنامه های دیجیتال، آنها می توانند موارد استفاده مانند موارد زیر را فعال کنند:

  • تأیید سن: قبل از ارائه محتوای دارای محدودیت سنی یا خرید موارد دارای محدودیت سنی، سن فرد را برای تأیید سن درخواست کنید.
  • تأیید هویت: درخواست نام و نشانی برای تأیید هویت یک شخص برای مطابقت قانونی یا جلوگیری از تقلب.
  • بررسی امتیازات رانندگی: واجد شرایط بودن یک فرد برای رانندگی را تأیید کنید (مثلاً هنگام اجاره ماشین).

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

معرفی Digital Credentials API

Digital Credentials API یک API پلتفرم وب جدید است که به وب‌سایت‌های RP اجازه می‌دهد تا از برنامه‌های کیف پول ارائه اعتبار دیجیتال را درخواست کنند. API در کروم به‌عنوان نسخه آزمایشی اصلی از Chrome 128 در دسترس است.

API آگنوستیک پروتکل است و به RP اجازه می دهد تا پروتکلی را بر اساس الزامات خود مشخص کند. هنگامی که یک RP درخواستی را ارائه می کند، مرورگر درخواست را به سیستم عامل تلفن همراه می فرستد که اعتبار منطبق را در برنامه های کیف پول نصب شده جستجو می کند. اگر موردی پیدا شد، سیستم عامل موبایل از کاربر می خواهد یکی را انتخاب کند و درخواست را به کیف پول انتخاب شده توسط کاربر ارسال می کند. پس از احراز هویت محلی، کیف پول پاسخی حاوی اطلاعات اعتبار درخواستی را برمی‌گرداند.

نمودار ارتباط بین مرورگر، کیف پول و طرف متکی.

Chrome ابتدا از API در Chrome در Android برای درخواست اعتبار از برنامه های کیف پول در همان دستگاه پشتیبانی می کند. در آینده، ما قصد داریم از دسک‌تاپ Chrome پشتیبانی کنیم تا اعتبارنامه‌های بین دستگاهی را از یک دستگاه تلفن همراه دیگر درخواست کنیم.

در زمان راه‌اندازی، Google Wallet با Digital Credentials API یکپارچه می‌شود و به کسب‌وکارها و سازمان‌های منتخب این امکان را می‌دهد تا درخواستی را برای کاربران ارائه کنند تا شناسه خود را به صورت آنلاین از طریق Chrome در Android ارائه کنند و صحت داده‌های ارسال‌شده را با بررسی امضای رمزنگاری تأیید کنند. برای شرکت، این فرم را برای ابراز علاقه به پذیرش شناسه های دیجیتال از Google Wallet پر کنید.

این API همچنین به زودی توسط حساب‌های Google برای تأیید تاریخ تولد برخی از کاربران استفاده خواهد شد. کاربرانی که در یک ایالت پشتیبانی‌شده ایالات متحده زندگی می‌کنند، می‌توانند از شناسه ایالتی یا گواهینامه رانندگی خود که در برنامه‌های کیف پول موجود (از جمله Google Wallet) ارائه شده است استفاده کنند تا فقط تاریخ تولد خود را بدون به اشتراک گذاشتن سایر جزئیات هویت خود با Google به اشتراک بگذارند. این به کاربران این امکان را می‌دهد تا با حفظ حریم خصوصی به Google نشان دهند که شرایط سنی مرتبط با حساب را برآورده می‌کنند.

آن را امتحان کنید

الزامات:

  • خدمات Google Play 23.40 یا بالاتر
  • کروم 128 یا جدیدتر
  • پرچم را در chrome://flags#web-identity-digital-credentials فعال کنید

برای امتحان Digital Credentials API دستورالعمل ها را دنبال کنید:

  1. برنامه کیف پول دمو را طبق دستورالعمل ها نصب کنید.
  2. برنامه IC Wallet را راه اندازی کنید و یک گواهینامه رانندگی تلفن همراه (mDL) دمو ارائه کنید.
    • روی دکمه منو ضربه بزنید و Add Self Signed Document را انتخاب کنید.
  3. با Chrome 128 یا جدیدتر به https://digital-credentials.dev بروید.
  4. درخواست اعتبارنامه (OpenID4VP) را فشار دهید.

نسخه ی نمایشی را که از https://digital-credentials.dev استفاده می کند، یک وب سایت آزمایشی برای توسعه دهندگان برای ایجاد درخواست های اعتبار برای ویژگی های مختلف، بررسی کنید:

در اینجا نحوه عملکرد نسخه ی نمایشی مرحله به مرحله آمده است:

1. کاربر در وب‌سایت طرف متکی قرار می‌گیرد و از او خواسته می‌شود نام خانوادگی، نام داده شده و تضمین سن بالای 21 سال خود را ارائه دهد.
2. مرورگر تأیید می کند که آیا کاربر قصد دارد هر گونه اعتبار دیجیتالی را با این وب سایت به اشتراک بگذارد.
3. سیستم عامل اطلاعات مورد درخواست و اعتبارنامه های واجد شرایط را نشان می دهد که می تواند با درخواست کاربر برای انتخاب و تکمیل درخواست مطابقت داشته باشد.
4. کیف پول به صورت محلی کاربر را با باز کردن قفل صفحه تأیید می کند.

5. اعتبار دیجیتال درخواستی اکنون به وب سایت طرف متکی ارسال می شود.

نحوه عملکرد API

Digital Credentials API بر اساس Credential Management API ساخته شده است، اما از یک سطح 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: {...}
      }
    }],
  }
});

سطح پایه API شبیه به 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
            }
          ]
        }
      }],
    }
  }
}

با این درخواست، کیف‌پول‌هایی که دارای mDL در دستگاه هستند، مجموعه‌ای از اعتبارنامه‌های قابل تأیید را ارائه می‌کنند که حاوی:

  • نام خانوادگی کاربر
  • نام داده شده کاربر
  • یک مقدار بولی که نشان می دهد کاربر بالای 21 سال سن دارد یا خیر.

در اینجا یک نمونه بار پاسخ است:

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

در این مثال، اعتبار با پروتکل "openid4vp" درخواست شد و پاسخ حاوی "vp_token" در ویژگی data است. لطفاً OpenID for Verifiable Presentation (OID4VP) را برای مشخصات API Digital Credentials W3C ببینید تا نحوه تجزیه پاسخ و تأیید اعتبار را بیاموزید.

Digital Credentials API در Chrome در Android به عنوان نسخه آزمایشی اصلی پشتیبانی می‌شود. Chrome روی دسک‌تاپ و iOS در حال حاضر از آن پشتیبانی نمی‌کند. برای سایر موتورهای مرورگر، مکالمات فعال از طریق گروه جامعه انکوباتور وب W3C تسهیل می شود.

در آزمایش مبدا شرکت کنید

برای توسعه، می‌توانید با روشن کردن پرچم Chrome chrome://flags#web-identity-digital-credentials در Chrome 128 یا جدیدتر، Digital Credentials API را به صورت محلی فعال کنید.

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

  1. برای مبدا خود یک نشانه درخواست کنید .
  2. توکن را به صفحات خود اضافه کنید. دو راه برای انجام آن وجود دارد:
    • یک تگ origin-trial <meta> به سر هر صفحه اضافه کنید. برای مثال، ممکن است چیزی شبیه به این باشد: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">.
    • اگر می‌توانید سرور خود را پیکربندی کنید، می‌توانید با استفاده از سرآیند Origin-Trial HTTP، توکن را نیز اضافه کنید. سرصفحه پاسخ حاصل باید چیزی شبیه به این باشد: Origin-Trial: TOKEN_GOES_HERE.

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

اگر بازخوردی درباره Digital Credentials API دارید، آن را به ردیاب اختصاصی مشکل Chromium ارسال کنید.

،

تاریخ انتشار: 4 سپتامبر 2024

یک آزمایش اولیه برای Digital Credentials API از Chrome 128 شروع می‌شود. Digital Credentials API یک API پلتفرم وب جدید است که به وب‌سایت‌ها اجازه می‌دهد به طور انتخابی اطلاعات قابل تأییدی درباره کاربر از طریق اعتبارنامه‌های دیجیتالی مانند گواهینامه رانندگی یا کارت شناسایی ملی ذخیره شده در کیف پول دیجیتالی درخواست کنند.

پس زمینه

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

گواهینامه رانندگی موبایل در Google Wallet
گواهینامه رانندگی موبایل در Google Wallet.

ویژگی‌های یک اعتبار دیجیتال به فرمت آن بستگی دارد، اگرچه معمولاً عبارتند از:

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

به دلیل ماهیت قابل تأیید اعتبارنامه های دیجیتال، آنها می توانند موارد استفاده مانند موارد زیر را فعال کنند:

  • تأیید سن: قبل از ارائه محتوای دارای محدودیت سنی یا خرید موارد دارای محدودیت سنی، سن فرد را برای تأیید سن درخواست کنید.
  • تأیید هویت: درخواست نام و نشانی برای تأیید هویت یک شخص برای مطابقت قانونی یا جلوگیری از تقلب.
  • بررسی امتیازات رانندگی: واجد شرایط بودن یک فرد برای رانندگی را تأیید کنید (مثلاً هنگام اجاره ماشین).

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

معرفی Digital Credentials API

Digital Credentials API یک API پلتفرم وب جدید است که به وب‌سایت‌های RP اجازه می‌دهد تا از برنامه‌های کیف پول ارائه اعتبار دیجیتال را درخواست کنند. API در کروم به‌عنوان نسخه آزمایشی اصلی از Chrome 128 در دسترس است.

API آگنوستیک پروتکل است و به RP اجازه می دهد تا پروتکلی را بر اساس الزامات خود مشخص کند. هنگامی که یک RP درخواستی را ارائه می کند، مرورگر درخواست را به سیستم عامل تلفن همراه می فرستد که اعتبار منطبق را در برنامه های کیف پول نصب شده جستجو می کند. اگر موردی پیدا شد، سیستم عامل موبایل از کاربر می خواهد یکی را انتخاب کند و درخواست را به کیف پول انتخاب شده توسط کاربر ارسال می کند. پس از احراز هویت محلی، کیف پول پاسخی حاوی اطلاعات اعتبار درخواستی را برمی‌گرداند.

نمودار ارتباط بین مرورگر، کیف پول و طرف متکی.

Chrome ابتدا از API در Chrome در Android برای درخواست اعتبار از برنامه های کیف پول در همان دستگاه پشتیبانی می کند. در آینده، ما قصد داریم از دسک‌تاپ Chrome پشتیبانی کنیم تا اعتبارنامه‌های بین دستگاهی را از یک دستگاه تلفن همراه دیگر درخواست کنیم.

در زمان راه‌اندازی، Google Wallet با Digital Credentials API یکپارچه می‌شود و به کسب‌وکارها و سازمان‌های منتخب این امکان را می‌دهد تا درخواستی را برای کاربران ارائه کنند تا شناسه خود را به صورت آنلاین از طریق Chrome در Android ارائه کنند و صحت داده‌های ارسال‌شده را با بررسی امضای رمزنگاری تأیید کنند. برای شرکت، این فرم را برای ابراز علاقه به پذیرش شناسه های دیجیتال از Google Wallet پر کنید.

این API همچنین به زودی توسط حساب‌های Google برای تأیید تاریخ تولد برخی از کاربران استفاده خواهد شد. کاربرانی که در یک ایالت پشتیبانی‌شده ایالات متحده زندگی می‌کنند، می‌توانند از شناسه ایالتی یا گواهینامه رانندگی خود که در برنامه‌های کیف پول موجود (از جمله Google Wallet) ارائه شده است استفاده کنند تا فقط تاریخ تولد خود را بدون به اشتراک گذاشتن سایر جزئیات هویت خود با Google به اشتراک بگذارند. این به کاربران این امکان را می‌دهد تا با حفظ حریم خصوصی به Google نشان دهند که شرایط سنی مرتبط با حساب را برآورده می‌کنند.

آن را امتحان کنید

الزامات:

  • خدمات Google Play 23.40 یا بالاتر
  • کروم 128 یا جدیدتر
  • پرچم را در chrome://flags#web-identity-digital-credentials فعال کنید

برای امتحان Digital Credentials API دستورالعمل ها را دنبال کنید:

  1. برنامه کیف پول دمو را طبق دستورالعمل ها نصب کنید.
  2. برنامه IC Wallet را راه اندازی کنید و یک گواهینامه رانندگی تلفن همراه (mDL) دمو ارائه کنید.
    • روی دکمه منو ضربه بزنید و Add Self Signed Document را انتخاب کنید.
  3. با Chrome 128 یا جدیدتر به https://digital-credentials.dev بروید.
  4. درخواست اعتبارنامه (OpenID4VP) را فشار دهید.

نسخه ی نمایشی را که از https://digital-credentials.dev استفاده می کند، یک وب سایت آزمایشی برای توسعه دهندگان برای ایجاد درخواست های اعتبار برای ویژگی های مختلف، بررسی کنید:

در اینجا نحوه عملکرد نسخه ی نمایشی مرحله به مرحله آمده است:

1. کاربر در وب‌سایت طرف متکی قرار می‌گیرد و از او خواسته می‌شود نام خانوادگی، نام داده شده و تضمین سن بالای 21 سال خود را ارائه دهد.
2. مرورگر تأیید می کند که آیا کاربر قصد دارد هر گونه اعتبار دیجیتالی را با این وب سایت به اشتراک بگذارد.
3. سیستم عامل اطلاعات مورد درخواست و اعتبارنامه های واجد شرایط را نشان می دهد که می تواند با درخواست کاربر برای انتخاب و تکمیل درخواست مطابقت داشته باشد.
4. کیف پول به صورت محلی کاربر را با باز کردن قفل صفحه تأیید می کند.

5. اعتبار دیجیتال درخواستی اکنون به وب سایت طرف متکی ارسال می شود.

نحوه عملکرد API

Digital Credentials API بر اساس Credential Management API ساخته شده است، اما از یک سطح 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: {...}
      }
    }],
  }
});

سطح پایه API شبیه به 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
            }
          ]
        }
      }],
    }
  }
}

با این درخواست، کیف‌پول‌هایی که دارای mDL در دستگاه هستند، مجموعه‌ای از اعتبارنامه‌های قابل تأیید را ارائه می‌کنند که حاوی:

  • نام خانوادگی کاربر
  • نام داده شده کاربر
  • یک مقدار بولی که نشان می دهد کاربر بالای 21 سال سن دارد یا خیر.

در اینجا یک نمونه بار پاسخ است:

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

در این مثال، اعتبار با پروتکل "openid4vp" درخواست شد و پاسخ حاوی "vp_token" در ویژگی data است. لطفاً OpenID for Verifiable Presentation (OID4VP) را برای مشخصات API Digital Credentials W3C ببینید تا نحوه تجزیه پاسخ و تأیید اعتبار را بیاموزید.

Digital Credentials API در Chrome در Android به عنوان نسخه آزمایشی اصلی پشتیبانی می‌شود. Chrome روی دسک‌تاپ و iOS در حال حاضر از آن پشتیبانی نمی‌کند. برای سایر موتورهای مرورگر، مکالمات فعال از طریق گروه جامعه انکوباتور وب W3C تسهیل می شود.

در آزمایش مبدا شرکت کنید

برای توسعه، می‌توانید با روشن کردن پرچم Chrome chrome://flags#web-identity-digital-credentials در Chrome 128 یا جدیدتر، Digital Credentials API را به صورت محلی فعال کنید.

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

  1. برای مبدا خود یک نشانه درخواست کنید .
  2. توکن را به صفحات خود اضافه کنید. دو راه برای انجام آن وجود دارد:
    • یک تگ origin-trial <meta> به سر هر صفحه اضافه کنید. برای مثال، ممکن است چیزی شبیه به این باشد: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">.
    • اگر می‌توانید سرور خود را پیکربندی کنید، می‌توانید با استفاده از سرآیند Origin-Trial HTTP، توکن را نیز اضافه کنید. سرصفحه پاسخ حاصل باید چیزی شبیه به این باشد: Origin-Trial: TOKEN_GOES_HERE.

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

اگر بازخوردی درباره Digital Credentials API دارید، آن را به ردیاب اختصاصی مشکل Chromium ارسال کنید.

،

تاریخ انتشار: 4 سپتامبر 2024

یک آزمایش اولیه برای Digital Credentials API از Chrome 128 شروع می‌شود. Digital Credentials API یک API پلتفرم وب جدید است که به وب‌سایت‌ها اجازه می‌دهد به طور انتخابی اطلاعات قابل تأییدی درباره کاربر از طریق اعتبارنامه‌های دیجیتالی مانند گواهینامه رانندگی یا کارت شناسایی ملی ذخیره شده در کیف پول دیجیتالی درخواست کنند.

پس زمینه

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

گواهینامه رانندگی موبایل در Google Wallet
گواهینامه رانندگی موبایل در Google Wallet.

ویژگی‌های یک اعتبار دیجیتال به فرمت آن بستگی دارد، اگرچه معمولاً عبارتند از:

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

به دلیل ماهیت قابل تأیید اعتبارنامه های دیجیتال، آنها می توانند موارد استفاده مانند موارد زیر را فعال کنند:

  • تأیید سن: قبل از ارائه محتوای دارای محدودیت سنی یا خرید موارد دارای محدودیت سنی، سن فرد را برای تأیید سن درخواست کنید.
  • تأیید هویت: درخواست نام و نشانی برای تأیید هویت یک شخص برای مطابقت قانونی یا جلوگیری از تقلب.
  • بررسی امتیازات رانندگی: واجد شرایط بودن یک فرد برای رانندگی را تأیید کنید (مثلاً هنگام اجاره ماشین).

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

معرفی Digital Credentials API

Digital Credentials API یک API پلتفرم وب جدید است که به وب‌سایت‌های RP اجازه می‌دهد تا از برنامه‌های کیف پول ارائه اعتبار دیجیتال را درخواست کنند. API در کروم به‌عنوان نسخه آزمایشی اصلی از Chrome 128 در دسترس است.

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

نمودار ارتباط بین مرورگر ، کیف پول و تکی.

Chrome ابتدا از API در Chrome در Android برای درخواست اعتبار از برنامه های کیف پول در همان دستگاه پشتیبانی می کند. در آینده ، ما قصد داریم از دسک تاپ Chrome پشتیبانی کنیم تا از دستگاه های تلفن همراه دیگر اعتبار خود را درخواست کنید.

در هنگام راه اندازی ، Google Walle با API اعتبار دیجیتال ادغام خواهد شد و مشاغل و سازمان های منتخب را قادر می سازد تا درخواست کاربران را برای ارائه شناسه خود به صورت آنلاین ، از طریق Chrome on Android و تأیید صحت داده های منتقل شده با بررسی امضای رمزنگاری ، آغاز کنند. برای شرکت در این فرم ، این فرم را پر کنید تا علاقه به پذیرش شناسه های دیجیتال از Google Walle را ابراز کند.

API همچنین به زودی توسط حساب های Google برای تأیید تاریخ تولد برخی از کاربران مورد استفاده قرار می گیرد. کاربرانی که در یک ایالت پشتیبانی شده ایالات متحده ساکن هستند ، می توانند از شناسه ایالتی یا مجوز راننده خود در برنامه های کیف پول موجود (از جمله Google Wallet) استفاده کنند تا فقط تاریخ تولد خود را با Google به اشتراک بگذارند بدون اینکه جزئیات دیگری از هویت خود را به اشتراک بگذارند. این امر به کاربران این امکان را می دهد تا به Google ، به روشی حفظ حریم خصوصی ، که آنها نیازهای سنی مربوط به حساب را برآورده می کنند ، نشان دهند.

آن را امتحان کنید

الزامات:

  • Google Play Services 23.40 یا بعد از آن
  • Chrome 128 یا بعد از آن
  • پرچم را در chrome://flags#web-identity-digital-credentials

برای امتحان کردن اعتبار دیجیتال API دستورالعمل ها را دنبال کنید:

  1. برنامه کیف پول نسخه ی نمایشی را به دنبال دستورالعمل ها نصب کنید.
  2. برنامه کیف پول IC را راه اندازی کرده و گواهینامه راننده موبایل نسخه ی نمایشی (MDL) را تهیه کنید.
    • روی دکمه منو ضربه بزنید و Add Self Sideed Document را انتخاب کنید.
  3. به https://digital-credentials.dev با Chrome 128 یا بالاتر بروید.
  4. اعتبارنامه درخواست را مطبوعات (OpenID4VP).

نسخه ی نمایشی را که از https://digital-credentials.dev استفاده می کند ، یک وب سایت آزمایشی برای توسعه دهندگان برای تولید درخواست های اعتبار برای ویژگی های مختلف بررسی کنید:

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

1. کاربر در وب سایت متکی به طرفین قرار دارد و از وی خواسته می شود نام خانوادگی تأیید شده خود را ، با توجه به نام و اطمینان از سن بیش از 21 سال ، ارائه دهند.
2. مرورگر تأیید می کند که آیا کاربر قصد دارد اعتبار دیجیتالی را با این وب سایت به اشتراک بگذارد.
3. سیستم عامل اطلاعات درخواست شده و اعتبار واجد شرایط را نشان می دهد که می تواند با درخواست کاربر برای انتخاب و تکمیل درخواست مطابقت داشته باشد.
4. کیف پول به صورت محلی کاربر را با باز کردن قفل صفحه تأیید می کند.

5. اعتبار دیجیتالی درخواست شده اکنون به وب سایت متکی به حزب منتقل می شود.

چگونه API کار می کند

اعتبار دیجیتال API بر پایه و اساس API مدیریت اعتبار ساخته شده است ، اما از یک سطح 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: {...}
      }
    }],
  }
});

سطح اصلی API شبیه به 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
            }
          ]
        }
      }],
    }
  }
}

با این درخواست ، کیف پول هایی که MDL در دستگاه دارند ، مجموعه ای از اعتبار قابل اثبات را ارائه می دهند که شامل:

  • نام خانوادگی کاربر.
  • نام کاربر
  • یک مقدار بولی که نشان می دهد کاربر بیش از 21 سال سن دارد یا خیر.

در اینجا یک نمونه بار پاسخ به عنوان مثال آورده شده است:

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

در این مثال ، اعتبارنامه با پروتکل "openid4vp" درخواست شده است و پاسخ حاوی "vp_token" در خاصیت data است. لطفاً برای ارائه مشخصات API اعتبار دیجیتال W3C برای یادگیری نحوه تجزیه و تحلیل پاسخ و تأیید اعتبار ، برای ارائه قابل تأیید (OID4VP) برای ارائه قابل اعتبار و اعتبار دیجیتالی W3C مراجعه کنید .

اعتبار دیجیتال API در Chrome در Android به عنوان یک آزمایش اصلی پشتیبانی می شود. Chrome on Desktop و iOS در حال حاضر از آن پشتیبانی نمی کنند. برای سایر موتورهای مرورگر ، مکالمات فعال از طریق گروه جامعه جوجه کشی W3C Web Teb تسهیل می شوند.

در دادگاه مبدا شرکت کنید

برای توسعه ، می توانید با روشن کردن Chrome Flag chrome://flags#web-identity-digital-credentials در Chrome 128 یا بعد از آن ، API دیجیتال را به صورت محلی فعال کنید.

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

  1. برای مبدا خود یک نشانه درخواست کنید .
  2. نشانه را به صفحات خود اضافه کنید. دو راه برای انجام آن وجود دارد:
    • یک برچسب origin-trial <meta> را به سر هر صفحه اضافه کنید. به عنوان مثال ، این ممکن است چیزی شبیه <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">. این باشد:
    • اگر می توانید سرور خود را پیکربندی کنید ، می توانید با استفاده از یک هدر HTTP Origin-Trial نشانه را نیز اضافه کنید. عنوان پاسخ حاصل باید چیزی شبیه به این باشد: Origin-Trial: TOKEN_GOES_HERE.

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

اگر در مورد API اعتبار دیجیتال بازخورد دارید ، آن را به ردیاب اختصاصی شماره Chromium ارسال کنید.