لا يمكن إعداد مفتاح المرور على أي منصة discourse

عند استخدام جهاز لا أملكه، أريد استخدام مفتاح أجهزة بدلاً من إدخال كلمة المرور الخاصة بي. لقد حصلت على مفتاح nitrokey 3C لهذا الغرض.

التسجيل على discourse يفشل. وكذلك هنا على meta.discourse.org

ملاحظة: نجح تسجيل المفتاح كعامل ثانٍ في نظام لينكس (ديبيان) + كروميوم، ولكنه لم ينجح عندما أحاول تسجيل الدخول.

ما هو المتصفح الذي تستخدمه؟

ما هو الخطأ الذي تحصل عليه؟

هل هناك أي تفاصيل إضافية في وحدة تحكم المطور (dev console)؟

هذا يحدث على دبيان كروميوم (وعلى أوبونتو فايرفوكس نفس الشيء؛ وكذلك على فايرفوكس نايتلي (سناب) على دبيان)

بعد الضغط على الزر في المفتاح

“انتهت مهلة عملية تسجيل مفتاح المرور، أو تم إلغاؤها، أو أنها غير مسموح بها.”

الخطأ غير مفيد؛ لا يوجد شيء مميز في وحدة التحكم.

الطلب إلى https://meta.discourse.org/u/register_passkey.json يعطي http 500 مع حمولة {“status”:500,“error”:“Internal Server Error”}.

هل بيانات الطلب ستساعد؟

id=owBYLgKCahnu_YBKKDAaTdK7LOlDFzwJ9kJPvXfntmdfbyOzs35ddeOM0KnNqHiu6bwBTLu17fF2A7QkNfCE5wJQPdOrG5MIB-9Hek6KoX4wcA
rawId=owBYLgKCahnu/YBKKDAaTdK7LOlDFzwJ9kJPvXfntmdfbyOzs35ddeOM0KnNqHiu6bwBTLu17fF2A7QkNfCE5wJQPdOrG5MIB+9Hek6KoX4wcA==
type=public-key
attestation=o2NmbXRkbm9uZWdhdHRTdG10oGhhdXRoRGF0YVjB06zu7aykTbz9dy22doBbDg8EboPkWBAWR4JLQn8z1TTFAAAAewAAAAAAAAAAAAAAAAAAAAAAUqMAWC4CgmoZ7v2ASigwGk3SuyzpQxc8CfZCT71357ZnX28js7N+XXXjjNCpzah4rum8AUy7te3xdgO0JDXwhOcCUD3TqxuTCAfvR3pOiqF+MHCkAQEDJyAGIVggy/MDuHan5fRjuKIQp7zkGku7P6p/8s2B4kfectFHcF6ha2htYWMtc2VjcmV09A==
clientData=eyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoiTmpRMVpUazJaVE00WlRRNE1UZGxOamd3TVdJNE5XVm1ZV1F5TkRObE1EVmlZek0zTURkbU1qZzJPR1V6TnpRd05HUmxZamRrTVdRMk1tWTEiLCJvcmlnaW4iOiJodHRwczovL21ldGEuZGlzY291cnNlLm9yZyIsImNyb3NzT3JpZ2luIjpmYWxzZX0=
name=Main Passkey

هل يعمل على https://webauthn.io/ ؟

نعم، التسجيل والمصادقة

لقد حاولت للتو تسجيل مفتاح U2F جديد هنا على ميتا وأرى هذا الخطأ في وحدة التحكم والذي ربما يفسر الأمر:

NotAllowedError: The operation either timed out or was not allowed.
  See: https://www.w3.org/TR/webauthn-2/#sctn-privacy-considerations-client.

لا أفهم وصف الخطأ في w3.org؛ فهل التنفيذ معطل؟ لا يبدو أنني أحصل على الخطأ في وحدة التحكم، فهل يمكنني المساهمة بأي شيء؟

سنحتاج إلى النظر في هذا - أعتقد أن المتصفحات قد طبقت متطلبات إضافية (كما هو موضح في الرابط) منذ أن طورنا هذا لأول مرة.

إعجاب واحد (1)

شكرًا لـ @agr لتحديد هذه المشكلة، لقد دفعت إصلاحًا هنا:

يجب أن يؤدي تحديث Discourse الخاص بك إلى أحدث إصدار إلى حل المشكلة الآن، ولكن إذا واجهت أي مشاكل أخرى، فيرجى إخبارنا بذلك

إعجابَين (2)

التسجيل نجح بشكل جيد. كان ذلك سريعًا :slight_smile:

لكن login / auth.js يعطيني استجابة 500

إعجاب واحد (1)

مؤكد؛ أرى:

NoMethodError (undefined method 'hash_function' for an instance of COSE::Algorithm::EdDSA)
 lib/discourse_webauthn/authentication_service.rb:99:in 'DiscourseWebauthn::AuthenticationService#authenticate_security_key'
 app/controllers/session_controller.rb:399:in 'SessionController#passkey_login'
 app/controllers/application_controller.rb:443:in 'block in ApplicationController#with_resolved_locale'
 app/controllers/application_controller.rb:443:in 'ApplicationController#with_resolved_locale'
 app/controllers/application_controller.rb:1089:in 'ApplicationController#ensure_dont_cache_page'
 lib/middleware/omniauth_bypass_middleware.rb:35:in 'Middleware::OmniauthBypassMiddleware#call'
 lib/middleware/crawler_hooks.rb:11:in 'Middleware::CrawlerHooks#call'
 lib/content_security_policy/middleware.rb:12:in 'ContentSecurityPolicy::Middleware#call'
 lib/middleware/anonymous_cache.rb:420:in 'Middleware::AnonymousCache#call'
 lib/middleware/csp_script_nonce_injector.rb:12:in 'Middleware::CspScriptNonceInjector#call'
 config/initializers/008-rack-cors.rb:26:in 'Discourse::Cors#call'
 lib/middleware/default_headers.rb:13:in 'Middleware::DefaultHeaders#call'
 config/initializers/100-quiet_logger.rb:20:in 'DiscourseRackQuietAssetsLogger#call'
 config/initializers/100-silence_logger.rb:29:in 'SilenceLogger#call'
 lib/middleware/enforce_hostname.rb:23:in 'Middleware::EnforceHostname#call'
 lib/middleware/request_tracker.rb:321:in 'Middleware::RequestTracker#call'
 lib/middleware/overload_protections.rb:22:in 'Middleware::OverloadProtections#call'
 lib/middleware/processing_request.rb:14:in 'Middleware::ProcessingRequest#call'

في السجلات عندما أحاول استخدام Solo 2 الخاص بي

إعجاب واحد (1)

شكرًا لك على التحقق من ذلك يا @agr، لقد دفعت للتو إصلاحًا آخر:

نأمل ألا تكون هناك أية مشاكل أخرى :crossed_fingers:، ولكن يرجى إبلاغي إذا واجهت أي مشاكل بعد!

إعجاب واحد (1)

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

إعجابَين (2)