دعم إعادة المصادقة التلقائية في FedCM

يتيح Chrome إعادة المصادقة التلقائية في FedCM

Federated Credential Management API (FedCM) هي واجهة برمجة تطبيقات على الويب لإنشاء اتحاد هويات للحفاظ على الخصوصية. باستخدام ميزة اتحاد الهوية، يعتمد المورّد (الطرف المعتمد) على موفِّر الهوية (IdP) لتوفير حساب للمستخدم بدون طلب اسم مستخدم وكلمة مرور جديدَين.

يسمح برنامج FedCM للمتصفح بفهم السياق الذي يتبادل فيه الجهة المحظورة وموفِّر الهوية المعلومات. تُعلِم هذه الميزة المستخدم بالمعلومات ومستويات الأذونات الامتيازية التي تتم مشاركتها وتمنع إساءة الاستخدام غير المقصودة. أصبح برنامج FedCM متاحًا في Chrome منذ الإصدار 108.

في الإصدار 115 من Chrome، يحصل برنامج FedCM على دعم لإعادة المصادقة التلقائية التي تعمل على تحسين تجارب المستخدمين وإتاحة إعادة مصادقة أكثر سلاسة إلى الجهة المحظورة بعد الموافقة الأولية.

إعادة المصادقة التلقائية

في الوقت الحالي، بعد إنشاء المستخدم حسابًا موحّدًا على جهة محظورة باستخدام موفِّر الهوية (IdP) عبر واجهة برمجة التطبيقات FedCM API، يحتاج المستخدم إلى اتّباع الخطوات نفسها في واجهة المستخدم في المرة التالية التي يزور فيها الموقع الإلكتروني. يعني ذلك أنّ المستخدم سيحتاج إلى إعادة التأكيد بشكل صريح ويدوي لإعادة المصادقة ومتابعة عملية تسجيل الدخول.

على الرغم من أنّ تجربة المستخدم الواضحة منطقية قبل أن ينشئ المستخدم الحساب الموحّد لمنع التتبُّع (وهو أحد الأهداف الرئيسية لـ 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.

إعادة المصادقة التلقائية لمستخدم من خلال برنامج FedCM

فرض التوسّط باستخدام preventSilentAccess()

لن تؤدي إعادة المصادقة التلقائية للمستخدمين مباشرةً بعد تسجيل الخروج إلى تقديم تجربة جيدة للمستخدم. لهذا السبب، لدى FedCM فترة انتظار مدتها 10 دقائق بعد إعادة المصادقة التلقائية لمنع هذا السلوك. وهذا يعني أنّ إعادة المصادقة التلقائية تتم مرة واحدة على الأكثر كل 10 دقائق ما لم يسجّل المستخدم الدخول مرة أخرى خلال 10 دقائق. على الجهة المحظورة استدعاء navigator.credentials.preventSilentAccess() لطلب إيقاف إعادة المصادقة التلقائية من خلال المتصفّح صراحةً عندما يسجِّل المستخدم الخروج من الجهة المحظورة بشكل صريح، مثلاً، من خلال النقر على زر تسجيل الخروج.

function signout() {
  navigator.credentials.preventSilentAccess();
  location.href = '/signout';
}

يمكن للمستخدمين إيقاف ميزة إعادة المصادقة التلقائية في الإعدادات.

ويمكن للمستخدمين إيقاف ميزة إعادة المصادقة التلقائية من قائمة الإعدادات:

  • في متصفح Chrome على سطح المكتب، انتقل إلى chrome://password-manager/settings > تسجيل الدخول تلقائيًا.
  • في نظام التشغيل Android Chrome، افتح الإعدادات > مدير كلمات المرور > انقر على ترس في أعلى يسار الشاشة > تسجيل الدخول التلقائي.

ومن خلال إيقاف مفتاح التبديل، يمكن للمستخدم إيقاف إجراء إعادة المصادقة التلقائية معًا. ويتم تخزين هذا الإعداد ومزامنته على جميع الأجهزة، في حال تسجيل دخول المستخدم إلى حساب Google على النسخة الافتراضية من Chrome وتفعيل المزامنة.

مشاركة الملاحظات

إذا كنت تختبر FedCM، يمكنك مشاركة ملاحظاتك أو أي مشاكل تواجهها على crbug.com ضمن أحد المكونات "Blink>Identity>FedCM".

تصوير نوح صامويل فرانز على UnLaunch