واجهة برمجة تطبيقات ويب لاتحاد الهوية الذي يحافظ على الخصوصية
ما هو FedCM؟
FedCM (إدارة بيانات الاعتماد المتعدّدة الجهات) هي نهج يحافظ على الخصوصية في خدمات الهوية المتعدّدة الجهات (مثل "تسجيل الدخول باستخدام...") ولا يعتمد على ملفات تعريف الارتباط التابعة لجهات خارجية أو عمليات إعادة التوجيه أثناء التنقّل.
حالة التنفيذ
- حالة النظام الأساسي Chrome
- تم شحن خدمة FedCM في الإصدار Chrome 108.
- إنّ اقتراح FedCM مفتوح للمناقشة العامة.
- ميزة FedCM غير متاحة في المتصفحات الأخرى حتى الآن.
- تعمل Mozilla على تنفيذ نموذج أولي لمتصفِّح Firefox، وأبدت شركة Apple دعمها العام واهتمامها بالعمل معًا على اقتراح FedCM.
من الآن فصاعدًا، نخطّط لطرح عدد من الميزات الجديدة استنادًا إلى الملاحظات والآراء التي تلقيناها من موفّري الهوية (IdP) والأطراف الموثوق بها (RP) ومورّدي المتصفّحات. على الرغم من أنّنا نأمل أن يتبنّى مزوّدو الهوية إطار عمل FedCM، يُرجى العِلم أنّ FedCM لا يزال واجهة برمجة تطبيقات قيد التطوير النشط.
للحدّ من تحديات نشر التغييرات غير المتوافقة مع الإصدارات القديمة، لدينا اقتراحان لموفّري الهوية:
- يمكنك الاشتراك في النشرة الإخبارية التي سنرسل من خلالها التحديثات أثناء تطوير واجهة برمجة التطبيقات.
- ننصح موفّري خدمات المصادقة بتوزيع FedCM API باستخدام حِزم تطوير البرامج (SDK) لـ JavaScript أثناء نضوج واجهة برمجة التطبيقات، وننصحك بعدم السماح لموفّري الخدمات بالاستضافة الذاتية لحِزم SDK. سيضمن ذلك أنّه يمكن لموفّري خدمات التعريف إجراء تغييرات مع تطور واجهة برمجة التطبيقات، بدون الحاجة إلى طلب إعادة نشر جميع الجهات الموثوق بها.
لماذا نحتاج إلى FedCM؟
على مدار العقد الماضي، لعبت عملية ربط الهوية دورًا مركزيًا في رفع مستوى المصادقة على الويب، من حيث الثقة وسهولة الاستخدام (على سبيل المثال، تسجيل الدخول المُوحَّد بدون كلمة مرور) والأمان (على سبيل المثال، مقاومة محسَّنة للتصيّد الاحتيالي وهجمات حشو بيانات الاعتماد) مقارنةً بأسماء مستخدمين وكلمات مرور لكل موقع إلكتروني.
من خلال عملية ربط الهوية، يعتمد الطرف الموثوق به (RP) على موفِّر الهوية (IdP) لمنح المستخدم حسابًا بدون الحاجة إلى اسم مستخدم وكلمة مرور جديدَين.
يُرجى العِلم أنّه يتم إساءة استخدام الآليات التي تعتمد عليها عملية الدمج المشترَك للهوية (إطارات iframe و redirections وملفّات تعريف الارتباط) لتتبُّع المستخدِمين على الويب. بما أنّ وكيل المستخدم لا يمكنه التمييز بين عملية مشاركة الهوية ومحاولة التتبّع، فإنّ الإجراءات التي يتم اتّخاذها للحدّ من الأنواع المختلفة من إساءة الاستخدام تجعل من عملية مشاركة الهوية أمرًا أكثر صعوبة.
توفّر Federated Credential Management API (FedCM) عملية تجريدية خاصة بحالة الاستخدام لعمليات المصادقة الموحّدة على الويب، وذلك من خلال توفير مربّع حوار تتم إدارته من خلال المتصفّح ويتيح للمستخدمين اختيار حسابات من موفّري خدمات التعريف لتسجيل الدخول إلى المواقع الإلكترونية.
يوفّر FedCM رحلة متعددة الخطوات لتحسين الهوية على الويب. في الخطوة الأولى، نركّز على الحد من تأثير القيود المفروضة على ملفات تعريف الارتباط التابعة لجهات خارجية في الهوية المُدمَجة (اطّلِع على قسم "خارطة الطريق" لمعرفة بعض الخطوات الإضافية).
ما هي العناصر التي نتوقّع أن تتأثر؟
من خلال جهود المجتمع وأبحاثنا، تبيّن لنا أنّ هناك بعض عمليات الدمج المتعلقة بتكامل تقنية مصادقة الهوية والتي تتأثر بقيود ملفات تعريف الارتباط التابعة لجهات خارجية:
- تسجيل الخروج من قناة OpenID Connect الأمامية
- إدارة جلسات OpenID Connect
- تجديد الرمز المميّز للتشغيل في الخلفية المستنِد إلى إطار iframe
- تطبيقات مصغّرة لتسجيل الدخول المستندة إلى إطار iframe
الهدف الأول من FedCM هو تقليل تأثير القيود المفروضة على ملفات تعريف الارتباط التابعة لجهات خارجية على توحيد الهوية، وهذه هي المجالات التي نتوقّع أن تتأثر. إذا كانت هناك حالات استخدام إضافية غير مُدرَجة، يمكنك التفاعل مع الملاحظات ومشاركتها.
FedCM كإشارة ثقة لواجهات برمجة التطبيقات الأخرى
بالإضافة إلى التعامل مع الهوية الفيدرالية، يعمل FedCM أيضًا كإشارة ثقة ل واجهات برمجة التطبيقات الأخرى في "مبادرة حماية الخصوصية".
بدءًا من الإصدار 131 من Chrome، تستخدم Storage Access API (SAA) واجهة برمجة التطبيقات FedCM كإشارة ثقة. يفيد هذا الدمج المواقع الإلكترونية التي تعتمد على كلّ من FedCM لأجل مصادقة وSAA لتفعيل إطارات iframe من مصادر مختلفة للوصول إلى مساحة التخزين اللازمة.
عندما يُصادق المستخدم باستخدام FedCM، مع تفعيل موافقة موفِّر الموارد، يمكن لمحتوى موفِّر الهوية المضمّن
على موقع موفِّر الموارد الإلكتروني استدعاء طريقة requestStorageAccess()
لالحصول تلقائيًا على إذن الوصول إلى مساحة التخزين
لملفات تعريف الارتباط ذات المستوى الأعلى بدون الحاجة إلى طلب إضافي من المستخدم. لن يتم منح الإذن تلقائيًا إلا ما دام المستخدم مسجِّلاً الدخول باستخدام FedCM
وكانت حالة تسجيل الدخول باستخدام FedCM نشطة. اطّلِع على مستندات Storage Access API
لمزيد من التفاصيل.
مَن هم المعنيّون باستخدام FedCM؟
لا نتوقع أن تكون ميزة "إدارة الطلبات المُرسَلة من العملاء" مفيدة لك إلا في حال استيفاء جميع الشروط التالية:
- إذا كنت موفِّر هوية (IdP).
- إذا كنت متأثرًا بقيود ملفات تعريف الارتباط التابعة لجهات خارجية
- تكون مواقع RP هي مواقع إلكترونية تابعة لجهات خارجية. إذا كانت المواقع الإلكترونية التي تشير إليها هي مواقع إلكترونية ذات صلة بشكلٍ ذي مغزى، قد يكون من الأفضل استخدام مجموعات المواقع الإلكترونية الذات الصلة.
إذا كنت موفِّر هوية
تتطلّب ميزة FedCM الحصول على دعم من موفِّر الهوية. لا يمكن للجهة الموثوق بها استخدام FedCM بشكل مستقل. إذا كنت مقدّم خدمات، يمكنك أن تطلب من موفِّر الهوية (IdP) تقديم تعليمات.
إذا كنت متأثرًا بقيود ملفات تعريف الارتباط التابعة لجهات خارجية
يجب عدم استخدام FedCM إلا إذا كان الدمج الحالي يتأثّر بحدود ملفات تعريف الارتباط التابعة لجهات خارجية.
إذا لم تكن متأكّدًا مما إذا كانت عملية الدمج لتحديد الهوية ستستمر في العمل عندما لا تكون ملفات تعريف الارتباط التابعة لجهات خارجية متاحة، يمكنك اختبار التأثير على موقع إلكتروني من خلال حظر ملفات تعريف الارتباط التابعة لجهات خارجية على Chrome.
إذا لم يكن هناك تأثير يمكن اكتشافه في عملية الدمج بدون ملفات تعريف الارتباط التابعة لجهات خارجية، يمكنك مواصلة استخدام عملية الدمج الحالية بدون FedCM.
إذا لم تكن متأكّدًا من العناصر التي يجب التحقّق منها، يمكنك الاطّلاع على مزيد من المعلومات عن الميزات المعروفة التي من المتوقّع أن تتأثّر بقيود ملفات تعريف الارتباط التابعة لجهات خارجية.
جهات الإصدار التابعة لجهات خارجية
إذا كنت مقدّم خدمة تحديد الهوية الذي تربط جهات الاعتماد لديه علاقة طرف أول بموفّر الهوية، نتوقع أن تكون مجموعات المواقع الإلكترونية ذات الصلة خيارًا أفضل. مجموعات المواقع الإلكترونية ذات الصلة (RWS) هي طريقة تتيح للمؤسسة الإفصاح عن العلاقات بين المواقع الإلكترونية، حتى تسمح المتصفّحات بوصول محدود إلى ملفات تعريف الارتباط التابعة لجهات خارجية لأغراض محدّدة. ويسمح ذلك لملفات تعريف الارتباط التابعة لجهات خارجية بالعمل بين مجموعات من المواقع الإلكترونية ذات الصلة بشكلٍ ذي مغزى، حتى في حال حظر ملفات تعريف الارتباط التابعة لجهات خارجية.
كيف سيتفاعل المستخدمون مع FedCM؟
ينصبّ التركيز الأساسي في FedCM على الحدّ من تأثير القيود المفروضة على ملفّات تعريف الارتباط التابعة لجهات خارجية. يمكن للمستخدمين تفعيل FedCM أو إيقافه في إعدادات Chrome.
تم تصميم FedCM ليكون مستقلاً عن البروتوكول، ويقدّم الوظائف التالية المرتبطة بالمصادقة.
اطّلِع على العرض التجريبي لمعرفة كيفية عمل هذه الميزة.
تسجيل الدخول إلى جهة موثوق بها
تتضمّن أداة FedCM وضعَي واجهة مستخدِم:
الوضع التلقائي: لا يتطلب الوضع التلقائي تفاعل المستخدم لظهور طلب FedCM. عندما يصل المستخدم إلى الموقع الإلكتروني للطرف الموثوق به (RP)، قد يظهر مربّع حوار تسجيل الدخول إلى FedCM عند استدعاء navigator.credentials.get()
وتسجيل دخول المستخدم إلى موفِّر الهوية.
الوضع النشط: في الوضع النشط، يجب أن يتفاعل المستخدم (مثل النقر على زر) لعرض طلب FedCM.
إذا لم يكن لدى المستخدم حساب على مقدّم الخدمة (RP) لدى موفّر الهوية (IdP)، سيظهر مربّع حوار للاشتراك يتضمّن نص بيان الإفصاح الإضافي، مثل بنود خدمة مقدّم الخدمة وسياسة خصوصيته في حال توفّرها.
يمكن للمستخدم إكمال عملية تسجيل الدخول من خلال النقر على متابعة بصفتك.... في حال نجاح العملية، يخزِّن المتصفّح حقيقة أنّ المستخدم قد أنشأ حسابًا موحّدًا على مقدّم الخدمة مع موفّر الهوية.
من المتوقّع أن تعمل وحدات RP على المتصفّحات التي لا تتيح استخدام FedCM. من المفترض أن يتمكّن المستخدمون من استخدام عملية تسجيل دخول حالية غير مستندة إلى FedCM على هذه المتصفّحات. مزيد من المعلومات حول آلية عمل تسجيل الدخول في FedCM
إعدادات تفعيل FedCM أو إيقافه
يمكن للمستخدمين تفعيل FedCM أو إيقافه في الوضع التلقائي. لا يؤثّر ذلك في الوضع النشط لأنّ طلب تسجيل الدخول يبدأ بإيماءة من المستخدم، ويجب أن يساعد المتصفّح المستخدمين في إكمال عملية تسجيل الدخول.
أجهزة الكمبيوتر المكتبية
يمكن للمستخدمين تفعيل ميزة FedCM لمتصفّح Chrome على الكمبيوتر المكتبي أو إيقافها من خلال chrome://settings/content/federatedIdentityApi
.
Android
لتفعيل ميزة "إدارة الهوية في المؤسسات" أو إيقافها على Chrome على Android، يمكن للمستخدمين الانتقال إلى إعدادات Chrome > إعدادات الموقع الإلكتروني > تسجيل الدخول إلى تطبيقات أو خدمات تابعة لجهات خارجية، ثم تغيير التبديل.
فترة الانتظار بين الإشعارات
إذا أغلق المستخدم واجهة المستخدم يدويًا، ستتم إضافة إدخال مؤقت إلى واجهة مستخدم الإعدادات ولن يتم عرض واجهة المستخدم في الموقع الإلكتروني نفسه لفترة زمنية. ستتم إعادة تفعيل واجهة المستخدم بعد هذه الفترة، ولكن سيتم تمديد المدة بشكلٍ كبير عند إغلاق التطبيق بشكلٍ متتالي. على سبيل المثال، في Chrome:
عدد المرات المتتالية التي تم فيها إغلاق التطبيق | الفترة الزمنية التي يتم فيها إخفاء طلب FedCM |
---|---|
1 | ساعتان |
2 | One day |
3 | أسبوع |
4+ | أربعة أسابيع |
قد تحدّد المتصفحات الأخرى فترات زمنية مختلفة للانتظار.
يمكن للمستخدمين إعادة تفعيل FedCM على RP يدويًا إما من خلال الانتقال إلى صفحة الإعدادات أو النقر على واجهة مستخدم PageInfo (رمز قفل بجانب شريط عنوان URL) وإعادة ضبط الإذن.
خارطة الطريق
نعمل على طرح عدد من التغييرات على FedCM. يمكنك الاطّلاع على آخر الأخبار لمعرفة المزيد من التفاصيل.
- سجلّ التغييرات: تعديلات على Federated Credential Management API
هناك بعض الإجراءات التي نعلم أنّها لا تزال مطلوبة، بما في ذلك المشاكل التي سمعنا عنها من موفّري خدمات المصادقة وموفّري خدمات الربط وموفّري المتصفّحات. نعتقد أنّنا نعرف كيفية حلّ هذه المشاكل:
- إتاحة استخدام إطار iframe من مصدر مختلف: يمكن لموفّري الهوية (IdP) استدعاء FedCM من داخل ملف div iframe من مصدر مختلف (تعديل).
- زر مخصّص: يمكن لموفّري الهوية عرض هوية المستخدِم المتكرّر على زر تسجيل الدخول من داخل إطار iframe تابع لموفّر الهوية من مصدر مختلف (تعديل).
- نقطة نهاية المقاييس: توفّر مقاييس الأداء لموفّري الهوية.
بالإضافة إلى ذلك، هناك مشاكل لم يتم حلّها ونعمل على استكشافها بنشاط، بما في ذلك الاقتراحات المحدّدة التي نجري تقييمها أو نطوّر نماذج أولية لها:
- CORS: نحن نجري مناقشات مع Apple و Mozilla لضمان تحسين مواصفات عمليات جلب FedCM.
- واجهة برمجة التطبيقات لموفّري الهوية المتعدّدين: نستكشف طرقًا لدعم موفّري هوية متعدّدين ليتمكّنوا من التعايش بشكل تعاوني في أداة اختيار حسابات FedCM.
- IdP Sign-in Status API: رصد فريق Mozilla مشكلة هجوم توقيت، ونحن نستكشف طرقًا لموفِّر الهوية لإرسال إشعار إلى المتصفّح بشكل استباقي بشأن حالة تسجيل دخول المستخدم بهدف التخفيف من المشكلة. (تعديل)
- تسجيل الدخول إلى IdP API: لتلبية سيناريوهات مختلفة، عندما لا يكون المستخدم مسجّلاً الدخول إلى موفِّر الهوية، يقدّم المتصفّح واجهة مستخدم للمستخدم لتسجيل الدخول بدون مغادرة مقدّم الخدمة.
أخيرًا، هناك إجراءات نعتقد أنّه لا يزال يتعين اتخاذها استنادًا إلى الملاحظات التي وردتنا من Mozilla، Apple ومراجعي TAG. نحن نعمل على تقييم أفضل الحلول لهذه الأسئلة المفتوحة:
- تحسين فهم المستخدمين لمقصود البحث ومطابقته: كما لاحظت Mozilla، نود مواصلة استكشاف صيغ تجربة المستخدم المختلفة ومناطق العرض، بالإضافة إلى معايير التفعيل.
- سمات الهوية والإفصاح الانتقائي: وفقًا لما لاحظه مراجعو TAG، نودّ توفير آلية لمشاركة سمات الهوية بشكل انتقائي (مثل عناوين البريد الإلكتروني والفئات العمرية وأرقام الهواتف وما إلى ذلك).
- تحسين خصائص الخصوصية: وفقًا لما اقترحته Mozilla في موقفها بشأن المعايير، نود مواصلة استكشاف آليات لتقديم ضمانات أفضل للخصوصية، مثل إخفاء هوية موفِّر الهوية والمعرّفات الموجَّهة.
- العلاقة مع WebAuthn: وفقًا لما اقترحته Apple، نحن متحمّسون جدًا لرؤية مستوى التقدّم في مفاتيح المرور والعمل على توفير تجربة متسقة ومنسقة بين FedCM وكلمات المرور وWebAuthn وWebOTP.
- حالة تسجيل الدخول: وفقًا لما اقترحته شركة Apple في Login Status API ضمن إطار عمل "متطلّبات الخصوصية"، نعتقد أنّ حالة تسجيل دخول المستخدم هي معلومات مفيدة يمكن أن تساعد المتصفّحات في اتخاذ قرارات مدروسة، ونتطلّع إلى الاطّلاع على الفرص التي تنشأ من ذلك. (تعديل)
- المؤسسات والتعليم: كما هو واضح في مجموعة عمل FedID، لا تزال هناك العديد من حالات الاستخدام التي لا توفّر لها FedCM خدمات جيدة ونريد العمل عليها، مثل تسجيل الخروج من قناة التقديم (إمكانية أن يرسل موفّر الهوية إشارة إلى مقدّمي الخدمات لتسجيل الخروج) ودعم SAML.
- العلاقة بطلبات المستندات/الشهادات المرسَلة عبر الأجهزة الجوّالة/غير ذلك: يُرجى مواصلة العمل لفهم كيفية تناسب هذه الطلبات مع FedCM، على سبيل المثال من خلال واجهة برمجة التطبيقات لخدمة طلبات المستندات المرسَلة عبر الأجهزة الجوّالة (mDL).
استخدام واجهة برمجة التطبيقات FedCM API
يجب أن يكون لديك سياق آمن (HTTPS أو localhost) في كلّ من موفّر الهوية وموفّر الخدمة في Chrome لاستخدام FedCM.
لدمج FedCM، عليك إنشاء ملف معروف وملف إعدادات ونقاط نهاية لقائمة الحسابات وإصدار التعريفات والبيانات الوصفية للعميل (اختياريًا). ومن هناك، يعرِض FedCM واجهات برمجة تطبيقات JavaScript التي يمكن لمقدّمي الخدمات الموثوق بهم استخدامها لتسجيل الدخول باستخدام موفِّر الهوية.
للتعرّف على كيفية استخدام FedCM API، يمكنك الاطّلاع على دليل مطوّري FedCM.
التفاعل مع الملاحظات ومشاركتها
- GitHub: يمكنك قراءة الشرح وطرح المشاكل ومتابعتها.
- دعم المطوّرين: يمكنك طرح الأسئلة والانضمام إلى المناقشات في مستودع دعم مطوّري "مبادرة حماية الخصوصية".
الامتثال لقوانين الخصوصية الإلكترونية
يتضمن استخدام FedCM، سواءً بصفتها مزوّدًا لخدمات الهوية أو مقدّمًا للخدمات، تخزين المعلومات على معدّات المستخدم الطرفية أو الوصول إلى المعلومات المخزّنة فيها، وبالتالي، هو نشاط يخضع لقوانين الخصوصية الإلكترونية في المنطقة الاقتصادية الأوروبية (EEA) والمملكة المتحدة بشكل عام ويتطلّب موافقة المستخدم. تقع على عاتقك مهمة تحديد ما إذا كان استخدامك لـ FedCM ضروريًا بشكلٍ صارم لتقديم خدمة على الإنترنت طلبها المستخدم صراحةً، وبالتالي يكون معفىً من متطلبات الموافقة. لمزيد من المعلومات، ننصحك بقراءة الأسئلة الشائعة المتعلقة بالامتثال للسياسات المتعلّقة بالخصوصية في "مبادرة حماية الخصوصية".