لمحة عن مرحلة التجربة والتقييم في Digital Credentials API

ستبدأ مرحلة تجريبية للتقييم في Digital Credentials API من Chrome 128 Digital Credentials API هي واجهة برمجة تطبيقات جديدة لمنصة ويب تتيح للمواقع الإلكترونية أن تطلب بشكل انتقائي معلومات يمكن التحقّق من صحتها حول المستخدم من خلال بيانات الاعتماد الرقمية، مثل رخصة القيادة أو بطاقة التعريف الوطنية المخزّنة في محفظة رقمية.

الخلفية

أصبحت الهوية الرقمية على أرض الواقع أمرًا واقعًا مع العديد من الكيانات العامة والخاصة التي بدأت في إصدار بيانات اعتماد رقمية مرتبطة بالجهاز. على سبيل المثال، يمكن الآن توفير رُخص القيادة على الأجهزة الجوّالة وبطاقات التعريف في ولايات أمريكية محدَّدة (مثل أريزونا وكاليفورنيا وكولورادو وجورجيا وماريلاند) في تطبيقات المحفظة الرقمية، مثل "محفظة Google"، على الأجهزة الجوّالة. تبرز أيضًا اللوائح المتعلقة بقبول بيانات الاعتماد الرقمية لبعض عمليات إثبات الهوية على الإنترنت، ويشكّل eIDAS 2.0 مثالاً على ذلك.

رخصة قيادة على جهاز جوّال في "محفظة Google"
رخصة قيادة من خلال الهاتف المحمول في محفظة Google.

تعتمد ميزات بيانات الاعتماد الرقمية على تنسيقها، على الرغم من أنها تتضمن عادةً ما يلي:

  • تحسين الأمان والخصوصية: يساعد استخدام التشفير المتقدّم وطرق المصادقة القوية في حماية البيانات الحسّاسة وضمان الوصول الآمن. على سبيل المثال، عادةً ما تتم حماية تقديم بيانات الاعتماد من خلال مصادقة المستخدم من خلال تطبيق المحفظة.
  • الإفصاح الانتقائي: يمكن للأطراف المعنية (الجهة المحظورة) طلب معلومات محدّدة من بيانات الاعتماد، ما يسمح للمستخدمين بحصر البيانات التي تتم مشاركتها بما هو مطلوب لحالة الاستخدام. على سبيل المثال، يمكن مشاركة ما إذا كان المستخدم يزيد سنه عن 18 عامًا بدون الكشف عن تاريخ ميلاده.
  • إمكانية التشغيل التفاعلي: يجب أن تلتزم شهادات الاعتماد بالمعايير الدولية، ما يتيح التوافق عبر الأنظمة والبلدان المختلفة، ويسهّل قبول الشهادات عبر الحدود.
  • قابلية التحقق: تكون بيانات الاعتماد التي تتم مشاركتها موقَّعة رقميًا من جهة الإصدار. يمكن للجهة المحظورة التحقّق من هذا التوقيع للتحقّق من صحة البيانات.

بفضل بيانات الاعتماد الرقمية، يمكن التحقق منها، فقد تمكن حالات الاستخدام مثل:

  • إثبات العمر: يمكنك طلب تأكيد عمر المستخدم قبل عرض محتوى محظور على فئات عمرية معيّنة أو شراء سلع محظورة على فئات عمرية معيّنة.
  • إثبات الهوية: يمكنك طلب الحصول على الاسم والعنوان لإثبات هوية شخص من أجل الامتثال القانوني أو منع الاحتيال.
  • التحقّق من امتيازات القيادة: تحقّق من أهليّة الشخص للقيادة (على سبيل المثال، عند استئجار سيارة).

بما أنّ المواقع الإلكترونية بدأت التواصل مباشرةً مع تطبيقات المحفظة للأجهزة الجوّالة (مثلاً باستخدام مخططات عناوين URL المخصّصة) لطلب بيانات اعتماد رقمية لحالات استخدام مختلفة، ترى المتصفّحات فرصةً لجعل هذا التفاعل أكثر أمانًا ومقاومة لإساءة الاستخدام وتسهيل الاستخدام عبر واجهة برمجة تطبيقات مصمّمة لغرض محدّد.

إضافة Digital Credentials API

Digital Credentials API هي واجهة برمجة تطبيقات جديدة لمنصّة الويب تتيح للمواقع الإلكترونية المحظورة طلب تقديم بيانات الاعتماد الرقمية من تطبيقات المحفظة. تتوفّر واجهة برمجة التطبيقات في Chrome كفترة تجريبية للمصدر بدءًا من Chrome 128.

لا تتوافق واجهة برمجة التطبيقات مع البروتوكول، ما يسمح للجهة المحظورة بتحديد بروتوكول بناءً على متطلباته. عندما يقدّم الجهة المحظورة طلبًا، يرسل المتصفّح الطلب إلى نظام تشغيل الأجهزة الجوّالة الذي يبحث عن بيانات اعتماد مطابِقة في تطبيقات المحفظة المثبّتة. وفي حال العثور على أيّ منها، يطلب نظام التشغيل المتوافق مع الأجهزة الجوّالة من المستخدم اختيار بطاقة، ثم يرسل الطلب إلى المحفظة التي اختارها المستخدم. بعد إجراء مصادقة محلية، تعرض المحفظة ردًا يحتوي على بيانات بيانات الاعتماد المطلوبة.

مخطّط بياني يوضّح التواصل بين المتصفّح والمحفظة والجهة المعتمدة.

سيدعم Chrome أولاً واجهة برمجة التطبيقات في Chrome على أجهزة Android لطلب بيانات الاعتماد من تطبيقات المحفظة على الجهاز نفسه. نخطط في المستقبل لإتاحة استخدام Chrome على أجهزة الكمبيوتر المكتبي لطلب بيانات الاعتماد من خلال جهاز جوّال آخر على جميع الأجهزة.

عند إطلاق "محفظة Google"، سيتم دمجه مع واجهة برمجة التطبيقات Digital Credentials API، ما يتيح لبعض الأنشطة التجارية والمؤسسات إرسال طلب إلى المستخدمين لتقديم مستندات التعريف الخاصة بهم على الإنترنت من خلال متصفِّح Chrome على أجهزة Android والتحقّق من صحة البيانات المنقولة من خلال فحص التوقيع المشفَّر. للمشاركة، يُرجى ملء هذا النموذج للتعبير عن اهتمامك بقبول مستندات التعريف الرقمية من "محفظة Google".

كما ستستخدم حسابات Google واجهة برمجة التطبيقات قريبًا للتحقق من هوية مستخدمين معيّنين أو تاريخ الميلاد. بالنسبة إلى المستخدمين المقيمين في ولاية أمريكية معتمَدة، سيتمكّنون من استخدام بطاقة التعريف الصادرة عن الولاية أو رخصة القيادة المتوفّرة في تطبيقات المحفظة المتاحة (بما في ذلك "محفظة Google") لمشاركة تاريخ ميلادهم فقط مع Google بسلاسة بدون مشاركة تفاصيل أخرى عن هويتهم. يتيح ذلك للمستخدمين أن يُثبتوا لشركة Google، بطريقة تحافظ على الخصوصية، أنّهم يستوفون السن المسموح به المرتبط بالحساب.

جرّبه الآن

لتجربة واجهة برمجة التطبيقات Digital Credentials API، اتّبِع التعليمات التالية:

  1. ثبِّت تطبيق المحفظة التجريبي باتّباع التعليمات الموضّحة في هذه الصفحة.
  2. افتح تطبيق IC Wallet وقدِّم نسخة تجريبية من رخصة القيادة (mDL).
    • انقر على زر القائمة واختَر إضافة مستند موقَّع ذاتيًا.
  3. انتقِل إلى https://digital-credentials.dev باستخدام الإصدار 128 من Chrome أو إصدار أحدث.
  4. اضغط على طلب بيانات الاعتماد (OpenID4VP).

يمكنك الاطّلاع على العرض التوضيحي الذي يستخدم https://digital-credentials.dev، وهو موقع إلكتروني تجريبي يتيح للمطوّرين إنشاء طلبات بيانات اعتماد لسمات مختلفة:

إليك طريقة عمل العرض التوضيحي خطوة بخطوة:

1- ينتقل المستخدم إلى الموقع الإلكتروني الخاص بالجهة المعتمَدة، ويُطلب منه تقديم اسم عائلته الذي تم التحقّق منه واسمه الأول وضمان عمر يزيد عن 21 عامًا.
2- يؤكد المتصفح ما إذا كان المستخدم ينوي مشاركة أي بيانات اعتماد رقمية مع هذا الموقع الإلكتروني.
3- يعرض نظام التشغيل المعلومات المطلوبة وبيانات الاعتماد المؤهّلة التي يمكن أن تتطابق مع طلب المستخدم لاختيار الطلب وإكماله.
4- تصادق المحفظة المستخدم على الجهاز عند فتح قفل الشاشة.

5- يتم الآن تمرير بيانات الاعتماد الرقمية المطلوبة إلى الموقع الإلكتروني للجهة المعتمَدة.

آلية عمل واجهة برمجة التطبيقات

تم إنشاء واجهة برمجة التطبيقات Digital Credentials API على أساس واجهة برمجة التطبيقات Credential Management 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 مع المَعلمات الأساسية التالية:

  • protocol: حدِّد بروتوكول التبادل باستخدام سلسلة. في وقت مرحلة التجربة والتقييم، يكون البروتوكول الأساسي الذي يتم تطويره هو ""openid4vp"".
  • request: املأ المَعلمات التي تقبلها تطبيقات المحفظة الرقمية للبروتوكول المحدّد. بالنسبة إلى "openid4vp"، يتم تحديد المعلَمات في OpenID for Verifiable Presentation (OID4VP) لمواصفات W3C Digital Credentials API.

مثال على الحمولة في نوع بيانات الاعتماد الرقمية باستخدام 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) للتعرّف على مواصفات واجهة برمجة التطبيقات W3C Digital Credentials API للتعرُّف على طريقة تحليل الردّ وإثبات صحة بيانات الاعتماد.

تتوفّر واجهة برمجة التطبيقات Digital Credentials API على Chrome على نظام التشغيل Android باعتبارها نسخة تجريبية من مصدر. لا يتوافق Chrome على سطح المكتب أو نظام التشغيل iOS مع هذا الوضع في الوقت الحالي. بالنسبة إلى محرّكات المتصفحات الأخرى، يتم تسهيل المحادثات النشطة من خلال W3C Web Incubator Community Group.

المشاركة في مرحلة التجربة والتقييم

وللتطوير، يمكنك تفعيل واجهة برمجة التطبيقات Digital Credentials API على الجهاز من خلال تفعيل علامة Chrome chrome://flags#web-identity-digital-credentials في الإصدار 128 من Chrome أو إصدار أحدث.

تتوفّر هذه الميزة أيضًا في مرحلة التجربة والتقييم. تتيح لك مراحل التجربة والتقييم تجربة ميزات جديدة وتقديم ملاحظات حول سهولة استخدامها وتطبيقها العملي وفعاليتها في منتدى معايير الويب. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة بدء استخدام مراحل التجربة والتقييم. للاشتراك في هذه الفترة التجريبية أو غيرها من مراحل التجربة والتقييم، يُرجى الانتقال إلى صفحة التسجيل.

  1. اطلب رمزًا مميّزًا من المصدر.
  2. أضِف الرمز المميّز إلى صفحاتك. هناك طريقتان لإجراء ذلك:
    • أضِف علامة <meta> لبرامج origin-trial في رأس كل صفحة. على سبيل المثال، قد يبدو النموذج كما يلي: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">.
    • إذا كان بإمكانك إعداد خادمك، يمكنك أيضًا إضافة الرمز المميّز باستخدام عنوان HTTP يتضمّن العنصر Origin-Trial. من المفترض أن يظهر عنوان الاستجابة الناتج على النحو التالي:Origin-Trial: TOKEN_GOES_HERE.

مشاركة الملاحظات

إذا كانت لديك أي ملاحظات حول Digital Credentials API، أرسِلها إلى أداة تتبُّع مشاكل Chromium المخصَّصة.