يتيح Chrome إعادة المصادقة التلقائية في إطار إدارة الهوية وإمكانية الوصول (FedCM)
Federated Credential Management API (FedCM) هي واجهة برمجة تطبيقات ويب لتوفير هوية موحّدة تحافظ على الخصوصية. من خلال عملية ربط الهوية، يعتمد الطرف الموثوق به (RP) على موفِّر الهوية (IdP) لتزويد المستخدم بحساب بدون الحاجة إلى اسم مستخدم وكلمة مرور جديدَين.
يسمح إطار عمل FedCM للمتصفّح بفهم السياق الذي يتبادل فيه الطرف المعتمَد وموفِّر الهوية المعلومات. ويُعلِم المستخدم بالمعلومات ومستويات امتيازاته المشترَكة ويمنع إساءة الاستخدام غير المقصودة. أصبحت واجهة برمجة التطبيقات FedCM متاحة في Chrome منذ الإصدار 108.
في الإصدار 115 من Chrome، تتوفّر واجهة برمجة التطبيقات FedCM لإعادة المصادقة التلقائية، ما يحسّن تجارب المستخدمين ويسمح بإعادة مصادقة أكثر سلاسة مع مقدّم الخدمة بعد الموافقة الأولية.
إعادة المصادقة التلقائية
في الوقت الحالي، بعد أن ينشئ المستخدم حسابًا موحّدًا على مقدّم خدمات الربط مع موفّر الهوية من خلال واجهة برمجة التطبيقات FedCM، عليه اتّباع الخطوات نفسها في واجهة المستخدم في المرة التالية التي يليها عند زيارة الموقع الإلكتروني. وهذا يعني أنّه على المستخدم إعادة التأكيد صراحةً وبشكل يدوي لإعادة المصادقة ومواصلة خطوات تسجيل الدخول.
على الرغم من أنّ تجربة المستخدم الصريحة تكون منطقية قبل أن ينشئ المستخدم الحساب الموحّد لمنع التتبّع (وهو أحد الأهداف الرئيسية لإدارة الهوية وإمكانية الوصول)، تكون هذه التجربة مزعجة بلا داعٍ بعد أن يمرّ المستخدم بها مرة واحدة: بعد منح المستخدم الإذن للسماح بالتواصل بين مقدّم الخدمة ومسؤول تحديد الهوية، لا تعود هناك أي فائدة من الخصوصية أو الأمان في فرض تأكيد صريح آخر من العميل لشيء سبق أن أقرّ به. لهذا السبب، نقدّم تجربة مستخدم أكثر سلاسة يمكن لجهات الإصدار اختيارها للمستخدمين المتكرّرين.
يمكن أن تسمح إعادة المصادقة التلقائية في FedCM (يُشار إليها اختصارًا باسم "إعادة المصادقة التلقائية") للمستخدمين بإعادة المصادقة تلقائيًا عند عودتهم بعد المصادقة الأولية باستخدام FedCM. يشير "المصادقة المبدئية" هنا إلى أنّ المستخدم ينشئ حسابًا أو يسجّل الدخول إلى الموقع الإلكتروني للمورّد المصدق من خلال النقر على الزر "متابعة باسم..." في مربّع حوار تسجيل الدخول إلى FedCM للمرة الأولى في نسخة المتصفّح نفسها.

اختيار خيار لإعادة المصادقة تلقائيًا
على الرغم من أنّنا نقدّم ميزة إعادة المصادقة التلقائية لتوفير تجربة مستخدم أفضل ومواءمة مع
المواصفات، ستكون تجربة المستخدم التلقائية مختلفة بدون أي تغيير في الرمز المبرمَج. عند توفّر ميزة إعادة المصادقة التلقائية، يغيّر المتصفّح سلوكه استنادًا
إلى الخيار الذي تختاره في mediation
الخيار الذي يقدّمه المطوّرون
navigator.credentials.get()
.
const cred = await navigator.credentials.get({
identity: {
providers: [{
configURL: "https://idp.example/fedcm.json",
clientId: "1234",
}],
},
mediation: 'optional', // this is the default
});
mediation
هو سمة في واجهة برمجة التطبيقات
لإدارة بيانات الاعتماد، ويتصرف بالطريقة
نفسها التي يعمل بها
PasswordCredential
وFederatedCredential
، وهو متوافق جزئيًا مع
PublicKeyCredential
أيضًا. يقبل الحقل القيم الأربع التالية:
'required'
: تتطلّب هذه الميزة دائمًا التوسّط للمتابعة، على سبيل المثال، النقر على الزرّ "متابعة" في واجهة المستخدم. اختَر هذا الخيار إذا كان من المتوقّع من المستخدمين منح الإذن صراحةً في كل مرة يحتاجون فيها إلى المصادقة.'optional'
(الإعداد التلقائي): إعادة المصادقة التلقائية إن أمكن، وتتطلّب التوسّط في حال عدم توفّرها. ننصحك باختيار هذا الخيار في صفحة تسجيل الدخول.'silent'
: إعادة المصادقة التلقائية إن أمكن، أو تعذُّر المصادقة بدون الحاجة إلى توسّط في حال عدم توفّر المصادقة ننصحك باختيار هذا الخيار في الصفحات التي تريد فيها إبقاء المستخدمين مسجّلين الدخول، ولكنها ليست صفحة تسجيل الدخول المخصّصة، مثل صفحة سلعة على موقع إلكتروني لشحن البضائع أو صفحة مقالة على موقع إلكتروني لأخبار.-
'conditional'
: يُستخدَم مع WebAuthn ولا يتوفّر مع FedCM في الوقت الحالي.
من خلال هذا الطلب، تحدث إعادة المصادقة التلقائية في الحالات التالية:
- واجهة برمجة التطبيقات FedCM متاحة للاستخدام. على سبيل المثال، لم يوقِف المستخدم FedCM إما بشكل عام أو للمسؤول عن المعالجة في الإعدادات.
- استخدم المستخدم حسابًا واحدًا فقط مع FedCM API لتسجيل الدخول إلى الموقع الإلكتروني على المتصفّح هذا.
- سجَّل المستخدم الدخول إلى موفِّر الهوية باستخدام هذا الحساب.
- لم يتم إجراء إعادة المصادقة التلقائية خلال آخر 10 دقائق.
- لم يطلب مقدّم الطلب
navigator.credentials.preventSilentAccess()
تسجيل الدخول مجددًا بعد تسجيل الدخول السابق.
عند استيفاء الشروط أعلاه، تبدأ محاولة إعادة مصادقة
المستخدم تلقائيًا فور استدعاء navigator.credentials.get()
FedCM.
فرض التوسّط مع preventSilentAccess()
لن تؤدي إعادة مصادقة المستخدمين تلقائيًا بعد تسجيل خروجهم مباشرةً إلى تقديم تجربة مستخدم جيدة جدًا. لهذا السبب، تتضمّن FedCM فترة هدوء تبلغ 10 دقائق بعد إعادة المصادقة التلقائية لمنع هذا السلوك. وهذا يعني أنّ عملية إعادة المصادقة التلقائية تحدث مرة واحدة على الأكثر كل 10 دقائق ما لم يسجّل المستخدم الدخول مجددًا في مهلة تعادل 10 دقائق. يجب أن يستدعي مقدّم خدمات الربط navigator.credentials.preventSilentAccess() لطلب المتصفّح صراحةً إيقاف إعادة المصادقة التلقائية عندما يسجّل المستخدم الخروج من مقدّم خدمات الربط صراحةً، على سبيل المثال، بالنقر على زر تسجيل الخروج.
function signout() {
navigator.credentials.preventSilentAccess();
location.href = '/signout';
}
يمكن للمستخدمين إيقاف إعادة المصادقة التلقائية في الإعدادات.
يمكن للمستخدمين إيقاف إعادة المصادقة التلقائية من قائمة الإعدادات:
- على متصفّح Chrome للكمبيوتر المكتبي، انقر على
chrome://password-manager/settings
> تسجيل الدخول تلقائيًا. - على متصفّح Chrome لأجهزة Android، افتح الإعدادات > مدير كلمات المرور > انقر على رمز الترس في أعلى يسار الشاشة > تسجيل الدخول تلقائيًا.
من خلال إيقاف التبديل، يمكن للمستخدم إيقاف سلوك إعادة المصادقة التلقائية بالكامل. يتم تخزين هذا الإعداد ومزامنته على جميع الأجهزة، إذا كان المستخدم مسجّلاً الدخول إلى حساب Google على مثيل Chrome وكانت المزامنة مفعّلة.
مشاركة الملاحظات
إذا كنت تختبر FedCM، يمكنك مشاركة ملاحظاتك أو أي مشاكل تواجهك على crbug.com ضمن المكوّن "Blink>Identity>FedCM".
صورة Noah Samuel Franz على Unsplash