تاريخ النشر: 4 أيلول (سبتمبر) 2024، تاريخ آخر تعديل: 16 تشرين الأول (أكتوبر) 2024
ستتوفّر مرحلة تجربة وتقييم لواجهة برمجة التطبيقات Digital Credentials API اعتبارًا من الإصدار 128 من Chrome. Digital Credentials API هي واجهة برمجة تطبيقات جديدة لمنصّة الويب تتيح للمواقع الإلكترونية أن تطلب بشكل انتقائي معلومات يمكن التحقّق من صحتها حول المستخدم من خلال بيانات الاعتماد الرقمية، مثل رخصة القيادة أو بطاقة التعريف الوطنية المخزّنة في محفظة رقمية.
الخلفية
أصبحت الهوية الرقمية في العالم الواقعي حقيقة، حيث بدأت العديد من الكيانات العامة والخاصة في إصدار بيانات اعتماد رقمية مرتبطة بالأجهزة. على سبيل المثال، يمكن الآن توفير رخص القيادة ومستندات التعريف على الأجهزة الجوّالة في ولايات محددة من الولايات المتحدة (مثل أريزونا وكاليفورنيا وكولورادو وجورجيا وميريلاند) لتطبيقات المَحافظ الرقمية، مثل "محفظة Google" على الأجهزة الجوّالة. تظهر أيضًا لوائح تنظيمية بشأن قبول بيانات الاعتماد الرقمية لإجراء عمليات إثبات هوية معيّنة على الإنترنت، وeIDAS 2.0 هو أحد الأمثلة على ذلك.
تعتمد ميزات الاعتماد الرقمي على تنسيقه، إلا أنّها تشمل عادةً ما يلي:
- أمان وخصوصية محسّنان: يساعد استخدام التشفير المتقدّم وطرق المصادقة القوية في حماية البيانات الحسّاسة وضمان الوصول الآمن إليها. على سبيل المثال، عادةً ما تتم حماية تقديم بيانات الاعتماد من خلال مصادقة المستخدم من خلال تطبيق المحفظة.
- الإفصاح الانتقائي: يمكن للأطراف المعتمِدة (RP) طلب معلومات محدّدة من بيانات الاعتماد، ما يسمح للمستخدمين بحصر البيانات التي تتم مشاركتها بما هو مطلوب لحالة الاستخدام. على سبيل المثال، يمكن مشاركة ما إذا كان المستخدم يزيد سنه عن 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 بدون مشاركة تفاصيل أخرى عن هويتهم. يتيح ذلك للمستخدمين إثبات استيفاء متطلبات السن المتعلقة بالحساب بطريقة تحافظ على الخصوصية.
جرّبه الآن
المتطلبات:
- الإصدار 23.40 من "خدمات Google Play" أو إصدار أحدث
- الإصدار 128 من Chrome أو الإصدارات الأحدث
- فعِّل الميزة التجريبية في
chrome://flags#web-identity-digital-credentials
.
لتجربة Digital Credentials API، اتّبِع التعليمات التالية:
- ثبِّت تطبيق المحفظة التجريبي من خلال اتّباع التعليمات.
- نزِّل تطبيق محفظة تجريبية على جهاز Android. يمكن العثور على رمز المصدر في مستودع "بيانات اعتماد الهوية" في OpenWallet Foundation.
- شغِّل الأمر
adb install -t <path-to-apk>
لتثبيت التطبيق.
- افتح تطبيق IC Wallet ووفِّر رخصة قيادة رقمية تجريبية
(mDL).
- انقر على زر القائمة واختَر إضافة مستند موقَّع ذاتيًا.
- انتقِل إلى https://digital-credentials.dev باستخدام الإصدار 128 من Chrome أو إصدار أحدث.
- اضغط على طلب بيانات الاعتماد (OpenID4VP).
اطّلِع على العرض الترويجي الذي يستخدِم https://digital-credentials.dev، وهو موقع إلكتروني اختباري يتيح للمطوّرين إنشاء طلبات بيانات اعتماد لسمات مختلفة:
في ما يلي آلية عمل العرض الترويجي خطوة بخطوة:
آلية عمل واجهة برمجة التطبيقات
تم إنشاء 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 لعرض البيانات القابلة للتحقّق (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
}
]
}
}],
}
}
}
من خلال هذا الطلب، ستقدّم المَحافظ التي تحتوي على رخص القيادة الرقمية على الجهاز مجموعة بيانات اعتماد يمكن التحقّق منها وتتضمّن ما يلي:
- اسم عائلة المستخدم.
- الاسم الأول للمستخدم.
- قيمة منطقية تشير إلى ما إذا كان عمر المستخدم يتجاوز 21 عامًا أم لا.
في ما يلي مثال على الحمولة في الردّ:
{
data: '{\n "vp_token": "o2d2ZXJzaW9uYz..."\n}'
id: '',
protocol: 'openid4vp',
type: 'digital'
}
في هذا المثال، تم طلب بيانات الاعتماد باستخدام بروتوكول "openid4vp"
ويحتوي الردّ على "vp_token"
في السمة data
. يُرجى الاطّلاع على مواصفات OpenID لعرض البيانات القابلة للتحقّق (OID4VP) لواجهة برمجة التطبيقات W3C Digital Credentials API للتعرّف على كيفية تحليل الاستجابة وإثبات صحة بيانات الاعتماد.
تتوفّر Digital Credentials API على Chrome على Android في إطار مرحلة التجربة والتقييم. لا يتيح متصفّح Chrome على أجهزة الكمبيوتر المكتبي وأجهزة iOS استخدام هذه الميزة في الوقت الحالي. بالنسبة إلى محرّكات المتصفّحات الأخرى، يتم تسهيل المحادثات النشطة من خلال مجموعة منتدى W3C Web Incubator.
المشاركة في الفترة التجريبية لإصدار التطبيق الأصلي
وللتطوير، يمكنك تفعيل واجهة برمجة التطبيقات Digital Credentials API على الجهاز من خلال تفعيل علامة Chrome chrome://flags#web-identity-digital-credentials
في الإصدار 128 من Chrome أو إصدار أحدث.
تتوفّر هذه الميزة أيضًا كإصدار تجريبي من المصدر. تتيح لك مراحل التجربة والتقييم تجربة ميزات جديدة وتقديم ملاحظات حول سهولة استخدامها وفعاليتها ومدى ملاءمتها لمجتمع معايير الويب. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة بدء استخدام مراحل التجربة والتقييم. للاشتراك في هذه الفترة التجريبية أو فترة تجريبية أخرى من المصدر، يُرجى الانتقال إلى صفحة التسجيل.
- اطلب رمزًا مميّزًا لمصدرك.
- أضِف الرمز المميّز إلى صفحاتك. هناك طريقتان لإجراء ذلك:
- أضِف علامة
origin-trial
<meta>
إلى رأس كل صفحة. على سبيل المثال، قد يبدو هذا على النحو التالي:<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">.
- إذا كان بإمكانك ضبط الخادم، يمكنك أيضًا إضافة الرمز المميّز باستخدام عنوان HTTP
Origin-Trial
. من المفترض أن يظهر عنوان الاستجابة الناتج على النحو التالي:Origin-Trial: TOKEN_GOES_HERE.
- أضِف علامة
مشاركة الملاحظات
إذا كانت لديك أي ملاحظات حول Digital Credentials API، يُرجى إرسالها إلى أداة تتبُّع المشاكل في Chromium المخصّصة.