دعم Webauthn

هذا رائع جداً!

لكن هناك ملاحظة صغيرة واحدة: في Safari على نظام Mac، تعد المصادقة عبر الويب ميزة مخصصة للمطورين فقط، وهي معطّلة افتراضياً. عند تمكينها، تعمل بشكل جيد. لكن من المرجح أن نعرض رسالة أو تحذيراً عندما لا تكون المصادقة عبر الويب مفعّلة. حالياً، في إصدار Safari الافتراضي، لا يوجد أي مؤشر في واجهة المستخدم على أن عملية التسجيل لن تعمل (يظهر خطأ في وحدة التحكم):

11 إعجابًا

يمكننا اكتشاف الميزات باستخدام navigator.credentials، كما أفترض.

9 إعجابات

يواجه بعض الأشخاص صعوبة في تبرير التكلفة الإضافية رغم أنها مريحة :smiley:

7 إعجابات

آه، لقد قمت بفحص الميزة على navigator.credentials.get وليس create، آسف على ذلك، سيكون إصلاحًا سريعًا!

8 إعجابات

يبدو أن أحدث التزام يعمل بنجاح. تمكنت للتو من استخدام المصادقة الثنائية (مع بصمة الإصبع!) على هاتفي الأندرويد.

6 إعجابات

مرحبًا بينار، لديّ إصلاح جاهز لهذا الآن، هل يمكنك التحقق منه على Safari؟ [FIX] Check webauthn support when registering security keys by mjrbrennan · Pull Request #8146 · discourse/discourse · GitHub. أنا غير متأكد فقط مما إذا كانت طريقة كشف الميزات التي أستخدمها ستعمل مع Safari عندما تكون الميزة معطلة.

9 إعجابات

سبقني سام في الدمج، لكن هذا يبدو جيدًا على سفاري، شكرًا لك يا مارتن!

10 إعجابات

صحيح، ولكن في هذه الحالة، يُعدّ ذلك جزءًا طبيعيًا من العمل في Discourse، لذا سنغطي التكلفة. نعتذر إذا لم يكن الأمر واضحًا من قبل، ونأمل أن يكون الآن واضحًا.

9 إعجابات

تهانينا لدعم WebAuthn! من المثير للاهتمام أن نرى أنك طورت حلاً خاصًا بك بدلاً من استخدام مكتبة webauthn، وإذا كان هناك أي ملاحظات لنا، فسأحب سماعها :smiley:

لاحظت أن تطبيقك يدعم فقط الخوارزمية -7 (ES256)، لكن مصادقات منصة Windows Hello (المدعومة بأجهزة TPM 2.0) تتطلب -257 (RS256) وفقًا لـ توثيق مايكروسوفت. إن TPM 2.0 مطلوب منذ 28 يوليو 2016 لنماذج سطح مكتب Windows 10 الجديدة، لذا فإن هذا يمثل كمية لا يستهان بها من الأجهزة.

اقتراح واحد لتصميم “تدفق تسجيل الدخول” - يحتوي WebAuthn على شعار رسمي يمكن استخدامه بدلاً من صورة البصمة العامة. بالإضافة إلى البصمة، تُعد التعرف على الوجه، ونمط السحب، أو الرمز الشخصي خيارات شائعة للتحقق من هوية المستخدم أيضًا.

10 إعجابات

@Martin_Brennan أي أفكار حول :arrow_double_up:

6 إعجابات

شكرًا لك على ملاحظاتك يا Rafe، سنحتاج حينها إلى إضافة الخوارزمية الإضافية هنا. وشكرًا أيضًا على رابط الشعار الرسمي! كانت فكرتي عند تعيين خوارزمية واحدة فقط هي إضافة الحد الأدنى من الخوارزميات المدعومة لجعل الأمور تعمل في الإصدار V1، حيث لم أكن متأكدًا من الفروق الدقيقة بين جميع الخوارزميات، وقد تم استخدام ES256 في جميع الأمثلة التي تمكنت من الوصول إليها.

أما بالنسبة لسبب عدم استخدامي للمكتبة (gem) في ذلك الوقت، فقد عانيت كثيرًا من هذا القرار، وكنت أعلم أنني سأُسأل عنه في وقت ما. لقد قرأت بالتأكيد الكثير من الكود في المكتبة لفهم التطبيق بشكل أفضل. كانت الأسباب الرئيسية هي:

  1. عدم الرغبة في إضافة اعتماد إضافي إلى Discourse. فكل اعتماد gem يضيف عبئًا إضافيًا، بغض النظر عن مدى روعة الكود في تلك المكتبة.
  2. الرغبة في فهم كيفية عمل جزء أمني حاسم مثل هذا في Discourse. اعتقدت أن وجود الكود داخل نواة Discourse سيجعل الأمور أكثر وضوحًا وأسهل للتوسع، دون وجود “صندوق أسود” كما يُقال. (ليس ذلك انتقادًا للمكتبة نفسها أو لتعقيدها، فأنا أدرك أن الناس يمكنهم ببساطة مراجعة الكود هناك، وقد وجدت أنه من السهل جدًا متابعة ما يحدث).
  3. عدم الرغبة في إضافة أكثر من الحد الأدنى من الكود المطلوب لتشغيل Webauthn، على سبيل المثال، تركت الاستيثاق (attestation) خارج تطبيقنا الأولي. لم أعتقد أن هناك فائدة كبيرة في إضافة مجموعة أدوات كاملة عندما كنا نحتاج فقط إلى مفتاح ربط.

ومع ذلك، قد يكون هذا قرارًا خاطئًا من جانبي، وإذا دخلنا في الإصدار V2، V3 وما إلى ذلك من دعم Webauthn مع الاستيثاق، وخوارزميات مدعومة أكثر، وما شابه، فقد يصبح الأمر مرهقًا جدًا بالنسبة لنا لنصبح “خبراء في Webauthn” كما يُقال، وفي تلك النقطة أعتقد أننا يمكننا إعادة تقييم استخدام المكتبة.

16 إعجابًا

تم دمج دعم خوارزمية RS256 الإضافية الآن FEATURE: Support RS256 algorithm for webauthn by martin-brennan · Pull Request #8385 · discourse/discourse · GitHub

14 إعجابًا

يبدو أن iOS 13.3 وmacOS Catalina 10.15.2 يدعمان الآن FIDO2-auth أيضًا :partying_face:

تتضمن هذه التحديث أيضًا إصلاحات للأخطاء وتحسينات أخرى. يتضمن هذا التحديث:

  • إضافة دعم لمفاتيح الأمان المتوافقة مع FIDO2 عبر NFC وUSB وLightlight في Safari
8 إعجابات

من المؤسف أن أجهزة iPhone تحتاج إلى جهاز تابع لطرف ثالث لذلك. أتمنى أن تتضمن iOS++ ذلك مدمجًا مع مصادقة الجهاز ورقم الآمن. مثل Windows وMac OS وAndroid.

9 إعجابات

أنا متحمس جداً لتسجيل الدخول إلى Discourse بمجرد النظر إليه!!

في الحقيقة، أنا مندهش قليلاً من أن دعم المصادقة المدمج لم يكن متاحاً بعد… لكن الخبر مثير للاهتمام على أي حال - سأواصل الانتظار بفارغ الصبر.

7 إعجابات

لقد لاحظت احتمال وجود عدم اتساق في واجهة المستخدم عند الإشارة إلى تفعيل المصادقة الثنائية (2FA) لبعض المستخدمين على نسخة مستضافة من Discourse:

عند سرد جميع مستخدمي ‘الموظفين’، لا يظهر حسابي وكأنه مفعل للمصادقة الثنائية:

  • تشير صفحة ملخص الحساب إلى أن المصادقة الثنائية مفعلة، بالنظر إلى نص الزر “إدارة المصادقة الثنائية”.

  • تُظهر صفحة المصادقة الثنائية أن مفتاح الأمان مفعل، وأن العامل الثاني يمكن إيقافه.

  • يُظهر المستخدمون الآخرون على نفس النسخة الذين يختارون استخدام مصادق قائم على الرمز (بدون مفتاح أمان) أيقونة القفل في قائمة “جميع المستخدمين”.

يرجى إخباري إذا كان هذا خطأ في واجهة المستخدم، أو إذا كان مجرد إضافة مفتاح أمان غير كافٍ لتفعيل المصادقة الثنائية على هذه المنصة.

5 إعجابات

سأقوم بالنظر في هذا الأمر، لكن أفضل تخميني هو أن هناك خطأً بسيطًا في واجهة المستخدم لقائمة المستخدمين إذا كانت قسم المصادقة الثنائية الفعلي في الواجهة يعرض كل شيء بشكل صحيح. شكرًا لتقريرك!

9 إعجابات

كانت هذه هي المشكلة. يتم بناء الإصلاح هنا وسأقوم بدمجه بمجرد أن أتمكن من ذلك FIX: Admin user list not showing 2FA icon for only security keys enabled by martin-brennan · Pull Request #8839 · discourse/discourse · GitHub

تعديل: تم إصلاح هذا الآن.

11 إعجابًا

مرحبًا بكم في العالم الجديد الشجاع

انضمت Apple إلى تحالف FIDO (المعروف أيضًا باسم Fast Identity Online)، وهي منظمة تضم بالفعل عمالقة مثل Google وIntel وMicrosoft وSamsung.

12 إعجابًا

هذا يعمل باستخدام TouchID / FaceID على iOS 14.

11 إعجابًا