Impossibile configurare la passkey su alcun discourse

Quando utilizzo hardware che non possiedo, voglio usare una chiave hardware invece di inserire la mia password. Ho acquistato una Nitrokey 3C per questo scopo.

La registrazione su Discourse fallisce. Anche qui su meta.discourse.org.

p.s. La registrazione della chiave come secondo fattore ha funzionato su Linux (Debian) + Chromium, ma non quando provo ad accedere.

Che browser stai usando?

Qual è l’errore che ricevi?

Ci sono dettagli aggiuntivi nella console per sviluppatori?

questo è su Debian Chromium (e su Ubuntu Firefox lo stesso; anche lo stesso su Firefox Nightly (snap) su Debian)

Dopo aver premuto il pulsante sulla chiave

‘Il processo di registrazione della passkey è scaduto, è stato annullato o non è consentito.’

L’errore non è utile; niente di speciale nella console.

La richiesta a https://meta.discourse.org/u/register_passkey.json restituisce http 500 con payload {"status":500,"error":"Internal Server Error"}.

I dati della richiesta sarebbero utili?

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

Funziona su https://webauthn.io/ ?

sì, registrazione e autenticazione

Ho appena provato a registrare una nuova chiave U2F qui su meta e vedo questo errore nella console che probabilmente lo spiega:

NotAllowedError: L'operazione è scaduta o non è stata consentita.
  Vedi: https://www.w3.org/TR/webauthn-2/#sctn-privacy-considerations-client.

Non capisco la descrizione dell’errore su w3.org; quindi l’implementazione è rotta? Non sembra che l’errore compaia nella console, quindi c’è qualcosa che posso contribuire a sistemare?

Dovremo esaminare questo: penso che i browser abbiano implementato requisiti aggiuntivi (come notato nel link) da quando abbiamo sviluppato questo per la prima volta.

1 Mi Piace

Grazie @agr per aver identificato questo problema, ho rilasciato una correzione qui:

L’aggiornamento di Discourse alla versione più recente dovrebbe ora risolvere il problema, ma se riscontri ancora problemi, faccelo sapere.

2 Mi Piace

La registrazione ha funzionato bene. È stato veloce :slight_smile:

Ma login / auth.js mi restituisce una risposta 500

1 Mi Piace

Confermato; vedo:

NoMethodError (metodo non definito 'hash_function' per un'istanza di 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'

nei log quando provo a usare la mia Solo 2

1 Mi Piace

Grazie per aver controllato, @agr, ho appena caricato un’altra correzione:

Speriamo non ci siano più problemi :crossed_fingers:, ma per favore fatemi sapere se riscontrate ancora problemi!

1 Mi Piace

Grazie per la rapida correzione. Ho anche provato a usare Nitrokey per l’autenticazione a due fattori (2FA) e ha funzionato sia per la registrazione che per l’accesso. Davvero ottimo!!

2 Mi Piace