تاريخ النشر: 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 هي واجهة برمجة تطبيقات جديدة لمنصّة الويب تتيح لمواقع RP الإلكترونية طلب تقديم بيانات الاعتماد الرقمية من تطبيقات المحفظة. تتوفّر واجهة برمجة التطبيقات في Chrome كإصدار تجريبي من الإصدار 128 من Chrome فصاعدًا.
لا تعتمد واجهة برمجة التطبيقات على بروتوكول معيّن، ما يسمح لمسؤول الربط بتحديد بروتوكول استنادًا إلى متطلباته. عندما يقدّم مقدّم طلب الاعتماد طلبًا، يرسل المتصفّح الطلب إلى نظام التشغيل المتوافق مع الأجهزة الجوّالة الذي يبحث عن بيانات اعتماد مطابقة في تطبيقات المحفظة المثبّتة. وفي حال العثور على أي منها، يطلب نظام التشغيل المتوافق مع الأجهزة الجوّالة من المستخدم اختيار محفظة ويرسل الطلب إلى المحفظة التي اختارها المستخدم. بعد المصادقة على الجهاز، يعرض المحفظة ردًا يحتوي على بيانات بيانات الاعتماد المطلوبة.
سيتيح 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 باستخدام Chrome 128 أو إصدار أحدث.
- اضغط على طلب بيانات الاعتماد (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 المخصّصة.