تواجه المؤسسات والمطوّرون عقبة كبيرة عند نقل المستخدمين من كلمات المرور إلى مفاتيح المرور. على الرغم من أنّ مفاتيح المرور توفّر تحسينًا مهمًا في الأمان، إلا أنّ عملية إنشائها يدويًا قد تؤدي غالبًا إلى حدوث مشاكل. في بيئة التجارة الإلكترونية التي تشهد عددًا كبيرًا من الزيارات، يكون لكل ثانية من التردد أهمية كبيرة، لأنّ أي تأخير يمكن أن يعطّل مسار الشراء ويؤدي إلى ترك سلة التسوق. علاوةً على ذلك، من الضروري الحفاظ على مزامنة حالات بيانات الاعتماد بين الخادم وجهاز المستخدم لمنع حدوث أخطاء في تسجيل الدخول وإحباط المستخدم.
واجهت شركة adidas هذه التحديات نفسها. كان هدفهم الأساسي هو إزالة العقبات من عملية تسجيل الدخول وتسهيل التجربة على جميع المنصات والأجهزة، سواء على الويب أو في التطبيق. مع أنّ الأمان يظلّ من أهم الأولويات، ركّز فريق المنتج على جعل عملية التسجيل وتسجيل الدخول سلسة قدر الإمكان باستخدام مفاتيح المرور.
لمواجهة هذه التحديات، نفّذت adidas ميزة الإنشاء الشرطي لترقية حسابات المستخدمين الذين يستخدمون كلمات المرور إلى مفاتيح مرور تلقائيًا، وSignal API للحفاظ على اتساق بيانات الاعتماد. بالإضافة إلى ذلك، نشروا طلبات المصدر المرتبط لدعم الاستخدام على مستوى النطاقات عند الحاجة.
النتائج
حقّقت استراتيجية adidas المتمثّلة في إتاحة إنشاء مفاتيح مرور تلقائيًا والحفاظ على سلامة بيانات الاعتماد نتائج فورية وقابلة للقياس في ما يتعلّق بكل من معدّل الاستخدام وموثوقية تسجيل الدخول:
- معدّل استخدام مرتفع: منذ إطلاق عملية تسجيل الدخول باستخدام مفتاح المرور، حقّقت شركة adidas معدّل إنشاء مفاتيح مرور إجماليًا بلغ 47%. ويشمل ذلك كلاً من ميزة "إنشاء مشروط" التلقائية وعمليات الموافقة التي يبدأها المستخدم عند المطالبة بذلك أثناء عمليات التسجيل أو تسجيل الدخول. وقد كان معدّل الاستخدام مرتفعًا بشكل خاص على الأجهزة الجوّالة، حيث بلغ معدّل الإحالات الناجحة 52% (مقارنةً بنسبة 34% على أجهزة الكمبيوتر المكتبي).
- عمليات ترقية سريعة باستخدام ميزة "إنشاء مشروط": بالإضافة إلى الطلبات الواضحة، حقّقت شركة adidas زيادة بنسبة% 8 في عمليات إنشاء مفاتيح المرور من خلال ترقية حسابات المستخدمين الحاليين الذين يستخدمون كلمات المرور بسلاسة في الخلفية، بدون الحاجة إلى اتّخاذ أي إجراء يدوي من المستخدم.
- موثوقية شبه مثالية في تسجيل الدخول: حققت مفاتيح المرور معدل نجاح أعلى من %99 عند بدء عملية تسجيل الدخول. ويُعدّ هذا تحسّنًا كبيرًا في الأمان مقارنةً بمعدّل نجاح كلمات المرور السابق الذي بلغ %70، والذي كان ينخفض غالبًا بسبب أخطاء بشرية، مثل الأخطاء الإملائية أو فقدان بيانات الاعتماد.
- تقليل المشاكل والأخطاء: من خلال نشر Signal API لمزامنة بيانات اعتماد الجهاز والخادم تلقائيًا، تمكّنت adidas من إبقاء أخطاء
PASSKEY_NOT_FOUNDأقل من 0.3% من محاولات تسجيل الدخول. وقد أدّى ذلك إلى الحدّ من إحباط المستخدمين بسبب مفاتيح المرور المعزولة.
47%
معدّل إنشاء مفاتيح المرور
8 %
زيادة في عمليات إنشاء مفاتيح المرور باستخدام ميزة "الإنشاء الشرطي"
>99 %
معدّل نجاح تسجيل الدخول باستخدام مفتاح مرور بعد بدء العملية
<0.3 %
معدّل أخطاء مفاتيح المرور غير المرتبطة بحساب
كيف حلّت شركة adidas المشكلة؟
في ما يلي كيفية معالجة adidas لهذه التحديات:
1. تسريع عملية الاعتماد باستخدام ميزة "إنشاء مشروط"
لمساعدة المستخدمين على استخدام مفاتيح المرور بسلاسة، نفّذت adidas ميزة الإنشاء الشرطي. تتيح هذه الميزة لموقع إلكتروني إنشاء مفتاح مرور تلقائيًا عندما يسجّل المستخدم الدخول باستخدام كلمة مرور مخزّنة في مدير كلمات المرور. لضمان تحقيق أعلى معدّل نجاح، يستدعي النظام واجهة برمجة التطبيقات فور تسجيل الدخول بنجاح لكي يتعرّف النظام على استخدام كلمة المرور على أنّه حديث.
const cred = await navigator.credentials.create({
publicKey: options,
mediation: 'conditional' // Enables automatic passkey creation
});
دمجت adidas هذه الميزة مع منطق مخصّص يتحقّق أولاً من بيئة المستخدم. على وجه التحديد، يتحقّق النظام مما إذا كان المتصفّح يتيح استخدام ميزة "إنشاء مشروط". يضع النظام أيضًا في الاعتبار خيارات المستخدمين المفضّلة من خلال عدم عرض الطلب إذا سبق أن تخطّى المستخدم إنشاء مفتاح مرور ثلاث مرات خلال الأشهر الستة الأخيرة.
إذا كانت البيئة متوافقة، يحاول النظام إنشاء مفتاح المرور في الخلفية، وذلك بعد إجراء مصادقة ناجحة للمستخدم مباشرةً. ويزيد هذا التوقيت المحدّد من احتمال استيفاء المتطلبات الأساسية. من المهم أن نذكر أنّ التنفيذ يتعامل مع استثناءات WebAuthn وفقًا لمبدأ "الفتح عند التعذّر"، وذلك لإعطاء الأولوية دائمًا لوصول المستخدم. إذا أبلغ المتصفّح عن InvalidStateError، ما يشير إلى أنّه من المحتمل أن يكون مفتاح مرور متوفّرًا، سيوقف النظام عملية إنشاء مفتاح المرور في الخلفية وسيسجّل دخول المستخدم على الفور. في المقابل، إذا حدث NotAllowedError، ما يعني عدم استيفاء الشروط المحدّدة لإنشاء مفتاح المرور تلقائيًا، يرصد النظام هذه الحالة ويوجه المستخدم إلى شاشة أداة جمع مفاتيح المرور لإرشاده خلال عملية الإعداد اليدوي. من خلال التمييز بين هذه القيود الفنية وسلوكيات المستخدمين، تضمن شركة adidas أنّ الترويج لعمليات ترقية مفاتيح المرور يعزّز تجربة تسجيل الدخول بدلاً من مقاطعتها.
2. ضمان الموثوقية باستخدام Signal API
عندما يدير المستخدمون بيانات اعتمادهم على جميع الأجهزة، قد تحدث حالات عدم اتساق. على سبيل المثال، قد يتم حذف مفتاح مرور من الخادم ولكن يظل على جهاز المستخدم. لمنع حدوث أخطاء في تسجيل الدخول بسبب بيانات الاعتماد "الوهمية" هذه، نفّذت adidas Signal API. تتيح واجهة برمجة التطبيقات هذه للخادم إرسال إشارة إلى موفّر مفاتيح المرور بشأن حالة بيانات الاعتماد.
تستخدم adidas جميع طرق Signal API الثلاث المتاحة للحفاظ على هذا الاتساق. بدلاً من تخمين بيانات الاعتماد التي يجب إزالتها، تربط adidas أحداثًا محدّدة من دورة حياة المستخدم بطلب البيانات المناسب من واجهة برمجة التطبيقات:
- أخطاء التسجيل: عند إنشاء مفتاح مرور على الجهاز وتعذُّر تسجيله في الخلفية، تستخدم adidas
signalUnknownCredentialلإزالة بيانات الاعتماد غير المرتبطة على الفور. - عمليات تسجيل دخول غير صالحة: إذا حاول المستخدم تسجيل الدخول باستخدام مفتاح مرور تم إبطاله أو أصبح قديمًا، يرسل
signalUnknownCredentialإشارات إلى مقدّم الخدمة لإخفائه. - إدارة المستخدمين: عندما يزيل المستخدم مفتاح مرور بشكل صريح في إعدادات حسابه، تتم مزامنة القائمة المسموح بها في
signalAllAcceptedCredentials. ويضمن ذلك عدم اقتراح مفتاح المرور المحذوف بعد ذلك. - تعديلات الحساب: عندما يغيّر المستخدم عنوان بريده الإلكتروني أو اسم المستخدم، يعدّل
signalCurrentUserDetailsالبيانات الوصفية على الجهاز لتتطابق مع البيانات الوصفية على الخادم.
// Detect authentication failure due to lack of the credential
if (result.status === 404) {
if (PublicKeyCredential.signalUnknownCredential) {
await PublicKeyCredential.signalUnknownCredential({
rpId: "adidas.com",
credentialId: "..." // base64url encoded credential ID
});
}
}
3- توحيد إذن الوصول باستخدام طلبات المصدر ذي الصلة وروابط تنقل إلى مواد عرض رقمية
لتعزيز بنية المواقع المتعددة، طبّقت شركة adidas ميزة طلبات المصدر ذات الصلة. مع أنّ معظم المستخدمين يفضّلون السوق المحلية (على سبيل المثال، adidas.nl)، يتيح هذا الإعداد للمستخدمين الذين يتنقّلون بين المناطق إعادة استخدام مفاتيح المرور على مستوى النطاقات المسموح بها من خلال استهداف معرّف جهة معتمدة واحد (adidas.com).
لتفعيل هذه الميزة، تستضيف adidas ملف إعداد webauthn في نطاق معرّف الجهة المعتمِدة (RP ID) الرئيسي. يحتوي هذا الملف على قائمة مسموح بها صريحة بالمصادر المسموح لها باستخدام adidas.com لتسجيل مفاتيح المرور والمصادقة عليها. من خلال تحديد هذه العلاقات، يمكن للمتصفّح التأكّد من أنّ مفتاح المرور الذي تم إنشاؤه على موقع إلكتروني في منطقة معيّنة صالح للاستخدام على موقع إلكتروني آخر، ما يوفّر تجربة سلسة للمستخدمين في جميع أنحاء العالم.
// https://www.adidas.com/.well-known/webauthn
{
"origins": [
"https://www.adidas.fi",
"https://www.adidas.nl",
// ... abridged (the full file lists 50+ regional domains)
]
}
من المهم الإشارة إلى أنّ adidas وفّرت أيضًا إمكانية استخدام مفاتيح المرور بسلاسة ضمن تطبيقاتها المتوافقة مع Android على الأجهزة الجوّالة باستخدام روابط تنقل إلى مواد عرض رقمية. بما أنّ التطبيقات تستخدم WebView مستضافًا على idp.adidas.com للمصادقة، كان من الضروري استخدام روابط تنقل إلى مواد عرض رقمية لإنشاء علاقة موثوقة بين تطبيق Android ومعرّف الجهة المعتمِدة (adidas.com). يتيح هذا التحقّق للتطبيق الوصول إلى مفاتيح المرور نفسها المستخدَمة على الويب، ما يوفّر تجربة تسجيل دخول سلسة وموحَّدة على جميع المنصات.
لتحقيق ذلك، تستضيف adidas ملف روابط تنقل إلى مواد عرض رقمية (assetlinks.json) على نطاقات الويب الخاصة بها. يعرِّف هذا الملف بشكل علني الربط بالتشفير مع تطبيقات Android. وبالمثل، تستخدم شركة adidas النطاقات المرتبطة لدعم نظام iOS الأساسي.
من خلال استضافة ملف apple-app-site-association، ينشئون اتصالاً آمنًا يتيح لتطبيق iOS استخدام مفاتيح المرور بأمان في عرض ويب.
// https://www.adidas.fi/.well-known/assetlinks.json
[
{
"relation": [
"delegate_permission/common.handle_all_urls",
"delegate_permission/common.get_login_creds"
],
"target": {
"namespace": "android_app",
"package_name": "com.adidas.app",
"sha256_cert_fingerprints": [
"B2:55:43:78:89:F6:F6:FD:BB:16:5C:43:EE:66:14:18:D4:E8:33:6D:3A:1F:68:86:C3:A8:7C:89:2B:51:45:96",
"..."
]
}
},
// ... abridged
]
ما هي الخطوات التالية التي ستتّخذها adidas؟
بعد أن أصبحت عمليات الترقية التلقائية وبيانات الاعتماد المتزامنة متاحة على adidas.fi وadidas.nl، ستنشر adidas هذه الإعدادات السلسة في جميع الأسواق العالمية الأخرى بحلول نهاية أبريل 2026. بالإضافة إلى ذلك، تستكشف adidas تجارب تسجيل دخول أكثر سلاسة من خلال اختبار التجربة الأصلية للوساطة الفورية. تشمل الخطط المستقبلية السماح للمستخدمين بإنشاء حسابات مباشرةً باستخدام مفاتيح المرور. ويؤدي ذلك إلى إزالة الشرط الحالي الذي يفرض الاشتراك باستخدام طريقة بديلة أولاً. ويعمل الفريق أيضًا على تطوير ميزة "التشغيل الذكي" التي تتيح عرض مربّع حوار مفتاح المرور الخاص بالنظام مباشرةً في الخطوة الثانية من عملية تسجيل الدخول. يؤدي ذلك إلى عدم الحاجة إلى نقرة إضافية عندما يكون هناك احتمال كبير بأنّ المستخدم لديه مفتاح مرور متاح على جهازه الحالي.
أهمية ذلك بالنسبة إليك
تنجح عملية الانتقال إلى المصادقة بدون كلمة مرور عندما تظل تجربة المستخدم سلسة. من خلال تنفيذ ميزة "إنشاء مشروط"، يمكنك نقل المستخدمين من كلمات المرور بدون عناء وبدون التأثير في عاداتهم. باستخدام ميزة "طلبات المصدر المرتبط"، يمكنك مشاركة كلمات المرور هذه على مستوى نطاقاتك، ما يتيح للمستخدمين الوصول بسلاسة إلى منظومتك المتكاملة بالكامل باستخدام كلمة مرور واحدة. أخيرًا، يضمن الجمع بين هذه الطريقة وSignal API أن تظل تجربة المصادقة الموحّدة بدون كلمة مرور موثوقة وخالية من الأخطاء.