تم طرح Federated Credential Management API في Chrome 108، ولكن من المتوقّع أن تشهد مزيدًا من التطوّر. لم يتم التخطيط لإجراء تغييرات جذرية.
مَن هم المستخدِمون المعنيّون بهذه التعديلات؟
ينطبق عليك هذا التغيير في الحالات التالية:
- إذا كنت موفِّر هوية (IdP) تستخدِم Federated Credential Management API
- إذا كنت مزوّدًا لخدمات الهوية أو مقدّم خدمات اعتماد وتريد توسيع نطاق واجهة برمجة التطبيقات لتتلاءم مع حالة الاستخدام الخاصة بك، على سبيل المثال، إذا كنت تراقِب أو تشارك في المناقشات حول مستودع FedID CG وتريد فهم التغييرات التي تم إجراؤها على واجهة برمجة التطبيقات.
- أنت موفّر متصفّح وتريد معرفة حالة تنفيذ واجهة برمجة التطبيقات.
إذا كنت مستخدِمًا جديدًا لواجهة برمجة التطبيقات هذه أو لم تجرب استخدامها بعد، يُرجى قراءة مقدمة عن واجهة برمجة التطبيقات Federated Credential Management API.
سجلّ التغييرات
للاطّلاع على آخر التغييرات في FedCM API، يمكنك الاطّلاع على مدوّنتنا أو الرسالة الإخبارية.
الإصدار 131 من Chrome (أكتوبر 2024)
- تستخدم Storage Access API الآن
FedCM كـ إشارة ثقة.
- إذا تمّت مصادقة المستخدِم باستخدام FedCM، مع تفعيل موافقة مقدّم الخدمة، يمكن لوحدة موفِّر الهوية المضمّنة
استدعاء طريقة
requestStorageAccess()
من أجل الحصول تلقائيًا على إذن الوصول إلى مساحة التخزين لملفات تعريف الارتباط ذات المستوى الأعلى بدون الحاجة إلى طلب إضافي من المستخدِم.
- إذا تمّت مصادقة المستخدِم باستخدام FedCM، مع تفعيل موافقة مقدّم الخدمة، يمكن لوحدة موفِّر الهوية المضمّنة
استدعاء طريقة
الإصدار 125 من Chrome (نيسان/أبريل 2024)
- بما أنّ المواصفات عدّلت اسم "نقاط نهاية قائمة الحسابات" إلى "نقطة نهاية الحسابات"، تم تعديل مستنداتنا وفقًا لذلك.
- تتوفّر مرحلة التجربة والتقييم لواجهة برمجة التطبيقات Button Mode API على الإصدار 125 من Chrome المتوافق مع أجهزة الكمبيوتر المكتبي. يمكنك الاطّلاع على مزيد من المعلومات في تعديلات FedCM: تجربة أصل واجهة برمجة التطبيقات لميزة "وضع الأزرار" وCORS و SameSite.
- يتم فرض CORS على نقطة نهاية بيان الهوية بدءًا من الإصدار 125 من Chrome.
- لن يُرسِل Chrome سوى ملفات تعريف الارتباط التي تم وضع علامة
SameSite=None
عليها صراحةً إلى نقطة نهايةSameSite=None
لإثبات الهوية ونقطة نهايةSameSite=None
للحسابات اعتبارًا من Chrome 125.
الإصدار 123 من Chrome (شباط/فبراير 2024)
- تمت إضافة إمكانية استخدام Domain Hint API. تسمح واجهة برمجة التطبيقات لميزة "تلميح النطاق" لموفّري المحتوى بالاستناد إلى موقع
domainHint
في طلب واجهة برمجة التطبيقات FedCM API لعرض حساباته المطابقة فقط للمستخدم.
الإصدار 122 من Chrome (كانون الثاني/يناير 2024)
- تمت إضافة إمكانية استخدام Disconnect API. تسمح واجهة برمجة التطبيقات Disconnect لخدمات الربط (RP) بفصل مستخدميها عن حساب موفِّر الهوية بدون الاعتماد على ملفات تعريف الارتباط التابعة لجهات خارجية.
- يتم الآن تخطّي عملية التحقّق
/.well-known/web-identity
عندما يكون كلّ من مقدّم خدمات الربط ومسؤول تعريف الهوية على الموقع الإلكتروني نفسه. - يمكن الآن للعناصر الفرعية ضبط حالة تسجيل الدخول على الموقع الإلكتروني نفسه.
الإصدار 121 من Chrome (كانون الأول/ديسمبر 2023)
- الشرط المُخفَّف لبدء إعادة المصادقة التلقائية في FedCM:
- لا يتم تفعيل ميزة إعادة المصادقة التلقائية في
FedCM إلا عند عودة المستخدم. ويعني ذلك أنّ المستخدم
يجب أن يسجّل الدخول إلى موفِّر الموارد باستخدام FedCM مرة واحدة في كلّ نسخة من المتصفّح،
قبل أن يتم تفعيل إعادة المصادقة التلقائية. تمّ وضع هذا الشرط في البداية
للحدّ من خطر أن يتظاهر المتتبّعون بأنّهم موفّرو هوية (IdP) ويخدعون المتصفّح لإعادة مصادقة مستخدم
تلقائيًا بدون علمه أو موافقته. ومع ذلك، لا يمكن لهذا التصميم ضمان
ميزة الخصوصية إذا كان المتتبّع يمكنه الوصول إلى ملفات تعريف الارتباط التابعة لجهات خارجية في سياق
المعالجة المحدودة للبيانات. لا يوفّر FedCM سوى مجموعة فرعية من الإمكانات المتاحة من خلال
ملفات تعريف الارتباط التابعة لجهات خارجية، لذا إذا كان أداة التتبّع تملك إذن الوصول إلى
ملفات تعريف الارتباط التابعة لجهات خارجية في سياق المعالجة المحدودة للبيانات، لا يشكّل الوصول إلى FedCM أي مخاطر إضافية تتعلّق بالخصوصية.
بما أنّ هناك استخدامات مشروعة لملفات تعريف الارتباط التابعة لجهات خارجية، وبما أنّ تخفيف شرط هذا الإجراء سيؤدي إلى تحسين تجربة المستخدم، سيتم تغيير هذا السلوك اعتبارًا من الإصدار 121 من Chrome. قرّرنا تخفيف القيود المفروضة على الشرط لاعتبار المستخدم عائدًا: إذا كانت ملفات تعريف الارتباط التابعة لجهات خارجية متاحة لموفِّر الهوية في سياقapproved_clients
، سيثق Chrome ببيان موفِّر الهوية بشأن حالة حساب المستخدم المحدّد من خلال قائمةapproved_clients
ويبدأ إعادة المصادقة التلقائية إذا كان ذلك منطبقًا. يمكن أن تكون ملفات تعريف الارتباط التابعة لجهات خارجية متاحة من خلال: إعدادات المستخدم، سياسات المؤسسات، وغيرها من الأساليب الاستقرائية (Safari، Firefox، Chrome) وواجهات برمجة تطبيقات منصات الويب الأخرى (مثل واجهة برمجة التطبيقات لوصول التخزين). يُرجى ملاحظة أنّه عندما يفقد موفِّر الهوية إمكانية الوصول إلى ملفات تعريف الارتباط التابعة لجهات خارجية في المستقبل، إذا لم يمنح مستخدم إذنًا صريحًا على واجهة مستخدم FedCM (على سبيل المثال، النقر على الزر متابعة) من قبل، سيظلّ يُعامل كمستخدم جديد.
ليس على المطوّر اتّخاذ أي إجراء. يُرجى العلم أنّه يمكن أن يتم بدء عملية إعادة المصادقة التلقائية بشكل أكبر من خلال هذا التغيير إذا كان موفِّر خدمة المصادقة (IdP) لديه إذن بالوصول إلى ملفات تعريف الارتباط التابعة لجهات خارجية ويدّعي أنّ المستخدم قد أنشأ حسابًا على موفِّر خدمات الربط (RP) في السابق.
- لا يتم تفعيل ميزة إعادة المصادقة التلقائية في
FedCM إلا عند عودة المستخدم. ويعني ذلك أنّ المستخدم
يجب أن يسجّل الدخول إلى موفِّر الموارد باستخدام FedCM مرة واحدة في كلّ نسخة من المتصفّح،
قبل أن يتم تفعيل إعادة المصادقة التلقائية. تمّ وضع هذا الشرط في البداية
للحدّ من خطر أن يتظاهر المتتبّعون بأنّهم موفّرو هوية (IdP) ويخدعون المتصفّح لإعادة مصادقة مستخدم
تلقائيًا بدون علمه أو موافقته. ومع ذلك، لا يمكن لهذا التصميم ضمان
ميزة الخصوصية إذا كان المتتبّع يمكنه الوصول إلى ملفات تعريف الارتباط التابعة لجهات خارجية في سياق
المعالجة المحدودة للبيانات. لا يوفّر FedCM سوى مجموعة فرعية من الإمكانات المتاحة من خلال
ملفات تعريف الارتباط التابعة لجهات خارجية، لذا إذا كان أداة التتبّع تملك إذن الوصول إلى
ملفات تعريف الارتباط التابعة لجهات خارجية في سياق المعالجة المحدودة للبيانات، لا يشكّل الوصول إلى FedCM أي مخاطر إضافية تتعلّق بالخصوصية.
الإصدار 120 من Chrome (تشرين الثاني/نوفمبر 2023)
- تمت إضافة ميزات ثلاث التالية في الإصدار 120 من Chrome:
- Login Status API: Login Status
API هي برمجية تهدف إلى إعلام المتصفّح بحالة تسجيل دخول المستخدِم على الموقع الإلكتروني، خاصةً موفِّر الهوية (IdP). باستخدام واجهة برمجة التطبيقات هذه، يمكن للمتصفّح تقليل الطلبات غير الضرورية المرسَلة إلى ملف تعريف الارتباط للمستخدِم (IdP) والحدّ من الهجمات المحتملة المتعلّقة بالتوقيت. واجهة برمجة التطبيقات Login Status API هي أحد متطلبات FedCM.
بعد إجراء هذا التغيير، لم يعُد الرمز
chrome://flags/#fedcm-without-third-party-cookies
مطلوبًا لتفعيل FedCM عند حظر ملفّات تعريف الارتباط التابعة لجهات خارجية. - Error API: تُرسِل Error API إشعارًا إلى المستخدِم من خلال عرض واجهة مستخدِم للمتصفّح تتضمّن معلومات الخطأ المقدَّمة من موفِّر الهوية.
- Auto-Selected Flag API: تشارك Auto-Selected Flag API ما إذا تم الحصول على إذن صريح من المستخدِم من خلال النقر على الزر Continue as (متابعة باسم) مع كلّ من موفِّر الهوية وموفِّر الخدمات، وذلك عند حدوث إعادة مصادقة تلقائية أو حدوث توسّط صريح. ولا تتم المشاركة إلا بعد منح إذن المستخدم للتواصل بين موفِّر الهوية ومسؤول المعالجة.
- Login Status API: Login Status
API هي برمجية تهدف إلى إعلام المتصفّح بحالة تسجيل دخول المستخدِم على الموقع الإلكتروني، خاصةً موفِّر الهوية (IdP). باستخدام واجهة برمجة التطبيقات هذه، يمكن للمتصفّح تقليل الطلبات غير الضرورية المرسَلة إلى ملف تعريف الارتباط للمستخدِم (IdP) والحدّ من الهجمات المحتملة المتعلّقة بالتوقيت. واجهة برمجة التطبيقات Login Status API هي أحد متطلبات FedCM.
بعد إجراء هذا التغيير، لم يعُد الرمز
الإصدار 117 من Chrome (أيلول/سبتمبر 2023)
- تتوفّر مرحلة تقييم وتجربة واجهة برمجة التطبيقات Idp Sign-In Status API على أجهزة Android من الإصدار 117 من Chrome. اطّلِع على مزيد من المعلومات عن ذلك في تعديلات FedCM: واجهة برمجة التطبيقات لحالة تسجيل الدخول إلى موفِّر الهوية، و"ملاحظة تسجيل الدخول"، وغير ذلك.
الإصدار 116 من Chrome (آب/أغسطس 2023)
- تمت إضافة ميزات ثلاث التالية في الإصدار 116 من Chrome:
- Login Hint API: يمكنك تحديد حساب مستخدم مفضّل لتسجيل الدخول إليه.
- User Info API: يمكنك جلب معلومات المستخدم المتكرّر حتى يتمكّن موفِّر الهوية (IdP) من عرض زرّ تسجيل دخول مخصّص ضمن إطار iframe.
- RP Context API: استخدِم عنوانًا مختلفًا عن "تسجيل الدخول" في مربّع حوار FedCM.
- تتوفّر الفترة التجريبية لـ IdP Sign-In Status API. اطّلِع على مزيد من المعلومات عن ذلك في تعديلات FedCM: واجهة برمجة التطبيقات لحالة تسجيل الدخول إلى موفِّر الهوية، و"ملاحظة تسجيل الدخول"، وغير ذلك.
الإصدار 115 من Chrome (يونيو 2023)
- تمت إضافة ميزة إعادة المصادقة التلقائية التي تتيح للمستخدمين إعادة المصادقة تلقائيًا عند العودة بعد المصادقة الأولية باستخدام FedCM. ويؤدي ذلك إلى تحسين تجارب المستخدمين وتوفير إمكانية إعادة مصادقة أكثر سلاسة مع مقدّم الخدمة بعد المصادقة الأولية. مزيد من المعلومات حول إعادة المصادقة التلقائية في FedCM
الإصدار 110 من Chrome (شباط/فبراير 2023)
- بالنسبة إلى نقطة نهاية بيان الهوية، يجب أن تتحقّق موفِّري الهوية من عنوان
Origin
(بدلاً من عنوانReferer
) لمعرفة ما إذا كانت القيمة تتطابق مع مصدر معرّف العميل. - يتوفّر الآن إطار iframe من مصدر مختلف لميزة "إدارة المحتوى في الوقت الفعلي" (FedCM). على مُدمِج المحتوى تحديد Permissions-Policy
identity-credentials-get
للسماح لواجهة برمجة التطبيقات FedCM API في ملف div مضمّن من مصدر مختلف. يمكنك الاطّلاع على مثال على إطار iframe المتعدّد المصادر. - تمت إضافة ميزة تجريبية جديدة في Chrome
chrome://flags/#fedcm-without-third-party-cookies
. باستخدام هذا الخيار، يمكنك اختبار وظيفة FedCM في Chrome من خلال حظر ملفات تعريف الارتباط التابعة لجهات خارجية. اطّلِع على مزيد من المعلومات من مستندات FedCM.
الإصدار 108 من Chrome (أكتوبر 2022)
- تم تغيير اسم "بيان المستوى الأعلى" إلى "ملف معروف" في المستند. ولا يلزم إجراء أي تغييرات على عملية التنفيذ.
- أصبح ملف بيان موفِّر الهوية يُعرف الآن باسم "ملف الإعدادات" في المستند. ولا يلزم إجراء أي تغييرات على عملية التنفيذ.
- تتم إعادة تسمية
id_token_endpoint
في "ملف الإعداد" إلىid_assertion_endpoint
. - تتضمّن الطلبات المرسَلة إلى موفّر الهوية الآن رأس
Sec-Fetch-Dest: webidentity
بدلاً من رأسSec-FedCM-CSRF: ?1
.
الإصدار 105 من Chrome (آب/أغسطس 2022)
- تمت إضافة معلومات أمان مهمة إلى المستند. على موفّر هوية العميل (IdP) التحقّق مما إذا كان عنوان
Referer
يتطابق مع مصدر العميل المُعتمَد الذي تم تسجيله مسبقًا على نقطة نهاية رمز التعريف. - تتم إعادة تسمية البيان من المستوى الأعلى من
/.well-known/fedcm.json
إلى/.well-known/web-identity
، ويجب أن يحتوي عنوان URL المحدّد فيprovider_urls
على اسم الملف. - لم تعُد الطرق
login()
وlogout()
وrevoke()
في مثيلاتFederatedCredential
متاحة. - تستخدم واجهة برمجة التطبيقات Federated Credential Management API الآن نوعًا جديدًا هو
IdentityCredential
بدلاً منFederatedCredential
. يمكن استخدام هذا الإجراء لتحديد العناصر، ولكنّه تغيير غير مرئي إلى حد كبير. - نقل وظيفة تسجيل الدخول من مجموعة من
navigator.credentials.get()
وFederatedCredential.prototype.login()
إلىnavigator.credentials.get()
- لم تعُد نقطة نهاية الإبطال في البيان سارية.
- استخدِم حقل
identity
بدلاً من حقلfederated
لمكالماتnavigator.credentials.get()
. - أصبح
url
الآنconfigURL
ويجب أن يكون عنوان URL الكامل لملف البيان بتنسيق JSON بدلاً من مسار طلبnavigator.credentials.get()
. - أصبحت
nonce
مَعلمة اختيارية لـnavigator.credentials.get()
. - لم يعُد
hint
متاحًا كخيار لnavigator.credentials.get()
.
const credential = await navigator.credentials.get({
identity: {
providers: [{
configURL: 'https://idp.example/anything.json',
clientId: '********',
nonce: '******'
}]
}
});
const { token } = credential;
الإصدار 104 من Chrome (حزيران/يونيو 2022)
- أصبحت المَعلمة
consent_acquired
المُرسَلة إلى نقطة نهاية رمز التعريف هيdisclosure_text_shown
. القيمة لم تتغيّر. - لم تعُد رموز العلامة التجارية في بيان موفِّر خدمة تعريف الهوية تتوافق مع صور SVG، ولكن لم تعُد هناك حاجة إلى أن تسمح بها سياسة أمان المحتوى في موفِّر خدمات الربط.
الإصدار 103 من Chrome (أيار/مايو 2022)
- تتوافق مع بيئات الكمبيوتر المكتبي
- تتيح ضبط إعدادات لكل جهاز RP على الكمبيوتر المكتبي.
- أصبح نقطة نهاية البيانات الوصفية للعميل اختيارية الآن. في هذه النهاية، يكون عنوان URL لسياسة الخصوصية اختياريًا أيضًا.
- تمت إضافة تحذير بشأن استخدام
connect-src
CSP في المستند.