Errore durante l'integrazione SSO - Wholistic Minds

Ciao,

Il nostro server è attualmente ospitato in proprio e stiamo cercando di implementare l’SSO nell’app Discourse con la nostra piattaforma ospitata su .NET.

Ecco il problema che stiamo riscontrando. Potreste gentilmente indicarci la strada giusta?

Errore nella gestione dell’eccezione nel middleware dell’app di eccezione: URI non valido:

Traccia di errore

excon-0.82.0/lib/excon.rb:126:in `new'

/var/www/discourse/plugins/discourse-oauth2-basic/plugin.rb:211:in `fetch_user_details'

/var/www/discourse/plugins/discourse-oauth2-basic/plugin.rb:255:in `after_authenticate'

/var/www/discourse/app/controllers/users/omniauth_callbacks_controller.rb:37:in `complete'

actionpack-6.1.3.2/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'

actionpack-6.1.3.2/lib/abstract_controller/base.rb:228:in `process_action'

actionpack-6.1.3.2/lib/action_controller/metal/rendering.rb:30:in `process_action'

actionpack-6.1.3.2/lib/abstract_controller/callbacks.rb:42:in `block in process_action'

activesupport-6.1.3.2/lib/active_support/callbacks.rb:117:in `block in run_callbacks'

/var/www/discourse/app/controllers/application_controller.rb:395:in `block in with_resolved_locale'

i18n-1.8.10/lib/i18n.rb:314:in `with_locale'

/var/www/discourse/app/controllers/application_controller.rb:395:in `with_resolved_locale'

activesupport-6.1.3.2/lib/active_support/callbacks.rb:126:in `block in run_callbacks'

activesupport-6.1.3.2/lib/active_support/callbacks.rb:137:in `run_callbacks'

actionpack-6.1.3.2/lib/abstract_controller/callbacks.rb:41:in `process_action'

actionpack-6.1.3.2/lib/action_controller/metal/rescue.rb:22:in `process_action'

actionpack-6.1.3.2/lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'

activesupport-6.1.3.2/lib/active_support/notifications.rb:203:in `block in instrument'

activesupport-6.1.3.2/lib/active_support/notifications/instrumenter.rb:24:in `instrument'

activesupport-6.1.3.2/lib/active_support/notifications.rb:203:in `instrument'

actionpack-6.1.3.2/lib/action_controller/metal/instrumentation.rb:33:in `process_action'

actionpack-6.1.3.2/lib/action_controller/metal/params_wrapper.rb:249:in `process_action'

activerecord-6.1.3.2/lib/active_record/railties/controller_runtime.rb:27:in `process_action'

actionpack-6.1.3.2/lib/abstract_controller/base.rb:165:in `process'

actionview-6.1.3.2/lib/action_view/rendering.rb:39:in `process'

rack-mini-profiler-2.3.2/lib/mini_profiler/profiling_methods.rb:85:in `block in profile_method'

actionpack-6.1.3.2/lib/action_controller/metal.rb:190:in `dispatch'

actionpack-6.1.3.2/lib/action_controller/metal.rb:254:in `dispatch'

actionpack-6.1.3.2/lib/action_dispatch/routing/route_set.rb:50:in `dispatch'

actionpack-6.1.3.2/lib/action_dispatch/routing/route_set.rb:33:in `serve'

actionpack-6.1.3.2/lib/action_dispatch/journey/router.rb:50:in `block in serve'

actionpack-6.1.3.2/lib/action_dispatch/journey/router.rb:32:in `each'

actionpack-6.1.3.2/lib/action_dispatch/journey/router.rb:32:in `serve'

actionpack-6.1.3.2/lib/action_dispatch/routing/route_set.rb:842:in `call'

omniauth-1.9.1/lib/omniauth/strategy.rb:192:in `call!'

omniauth-1.9.1/lib/omniauth/strategy.rb:169:in `call'

omniauth-1.9.1/lib/omniauth/strategy.rb:420:in `call_app!'

omniauth-1.9.1/lib/omniauth/strategy.rb:373:in `callback_phase'

omniauth-oauth2-1.7.1/lib/omniauth/strategies/oauth2.rb:93:in `callback_phase'

omniauth-1.9.1/lib/omniauth/strategy.rb:238:in `callback_call'

omniauth-1.9.1/lib/omniauth/strategy.rb:189:in `call!'

omniauth-1.9.1/lib/omniauth/strategy.rb:169:in `call'

omniauth-1.9.1/lib/omniauth/strategy.rb:192:in `call!'

omniauth-1.9.1/lib/omniauth/strategy.rb:169:in `call'

omniauth-1.9.1/lib/omniauth/strategy.rb:192:in `call!'

omniauth-1.9.1/lib/omniauth/strategy.rb:169:in `call'

omniauth-1.9.1/lib/omniauth/strategy.rb:192:in `call!'

omniauth-1.9.1/lib/omniauth/strategy.rb:169:in `call'

omniauth-1.9.1/lib/omniauth/strategy.rb:192:in `call!'

omniauth-1.9.1/lib/omniauth/strategy.rb:169:in `call'

omniauth-1.9.1/lib/omniauth/builder.rb:45:in `call'

/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:50:in `call'

rack-2.2.3/lib/rack/tempfile_reaper.rb:15:in `call'

rack-2.2.3/lib/rack/conditional_get.rb:27:in `call'

rack-2.2.3/lib/rack/head.rb:12:in `call'

actionpack-6.1.3.2/lib/action_dispatch/http/permissions_policy.rb:22:in `call'

/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'

/var/www/discourse/lib/middleware/anonymous_cache.rb:353:in `call'

rack-2.2.3/lib/rack/session/abstract/id.rb:266:in `context'

rack-2.2.3/lib/rack/session/abstract/id.rb:260:in `call'

actionpack-6.1.3.2/lib/action_dispatch/middleware/cookies.rb:689:in `call'

actionpack-6.1.3.2/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'

activesupport-6.1.3.2/lib/active_support/callbacks.rb:98:in `run_callbacks'

actionpack-6.1.3.2/lib/action_dispatch/middleware/callbacks.rb:26:in `call'

actionpack-6.1.3.2/lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'

actionpack-6.1.3.2/lib/action_dispatch/middleware/debug_exceptions.rb:29:in `call'

actionpack-6.1.3.2/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'

logster-2.9.6/lib/logster/middleware/reporter.rb:43:in `call'

railties-6.1.3.2/lib/rails/rack/logger.rb:37:in `call_app'

railties-6.1.3.2/lib/rails/rack/logger.rb:28:in `call'

/var/www/discourse/config/initializers/100-quiet_logger.rb:23:in `call'

/var/www/discourse/config/initializers/100-silence_logger.rb:31:in `call'

actionpack-6.1.3.2/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'

actionpack-6.1.3.2/lib/action_dispatch/middleware/request_id.rb:26:in `call'

/var/www/discourse/lib/middleware/enforce_hostname.rb:23:in `call'

rack-2.2.3/lib/rack/method_override.rb:24:in `call'

actionpack-6.1.3.2/lib/action_dispatch/middleware/executor.rb:14:in `call'

rack-2.2.3/lib/rack/sendfile.rb:110:in `call'

actionpack-6.1.3.2/lib/action_dispatch/middleware/host_authorization.rb:92:in `call'

rack-mini-profiler-2.3.2/lib/mini_profiler/profiler.rb:249:in `call'

message_bus-3.3.5/lib/message_bus/rack/middleware.rb:61:in `call'

/var/www/discourse/lib/middleware/request_tracker.rb:177:in `call'

railties-6.1.3.2/lib/rails/engine.rb:539:in `call'

railties-6.1.3.2/lib/rails/railtie.rb:207:in `public_send'

railties-6.1.3.2/lib/rails/railtie.rb:207:in `method_missing'

rack-2.2.3/lib/rack/urlmap.rb:74:in `block in call'

rack-2.2.3/lib/rack/urlmap.rb:58:in `each'

rack-2.2.3/lib/rack/urlmap.rb:58:in `call'

unicorn-6.0.0/lib/unicorn/http_server.rb:634:in `process_client'

unicorn-6.0.0/lib/unicorn/http_server.rb:732:in `worker_loop'

unicorn-6.0.0/lib/unicorn/http_server.rb:547:in `spawn_missing_workers'

unicorn-6.0.0/lib/unicorn/http_server.rb:143:in `start'

unicorn-6.0.0/bin/unicorn:128:in `<top (required)>'

/var/www/discourse/vendor/bundle/ruby/2.7.0/bin/unicorn:23:in `load'

/var/www/discourse/vendor/bundle/ruby/2.7.0/bin/unicorn:23:in `<main>'

La risposta dell’interfaccia utente che stiamo ricevendo è:

Ops

Il software che gestisce questo forum di discussione ha riscontrato un problema imprevisto. Ci scusiamo per l’inconveniente.

Sono state registrate informazioni dettagliate sull’errore e generata una notifica automatica. La esamineremo.

Non è necessario intraprendere ulteriori azioni. Tuttavia, se il problema persiste, puoi fornire ulteriori dettagli, inclusi i passaggi per riprodurre l’errore, pubblicando un argomento nella categoria di feedback del sito.

Per aiutarti a risolvere il problema, abbiamo bisogno di molte più informazioni.

Quale versione di Discourse stai utilizzando?

A quale fase del processo di autenticazione si verifica l’errore?

Quali dati sono stati inviati tramite POST per generare questo errore?

C’è altro che puoi dirci?

Sembra che tu stia provando la soluzione OAuth2 e non DiscourseConnect. Manca qualcosa nella tua applicazione .NET che funge da server OAuth2?

Ciao Richie Rich,
La versione di Discourse che stiamo utilizzando è la 2.8.0.beta1
Non sono sicuro della fase esatta dell’autenticazione, ma se può essere utile, ho allegato il registro degli errori che abbiamo ricevuto.


E @hawm, sì, stiamo utilizzando una soluzione OAuth2. Quale ritieni sia più semplice?

Non utilizzo la soluzione OAuth2 per la mia applicazione, quindi è difficile dire quale sia più semplice.

Il problema nell’OP, penso che la tua impostazione oauth2_user_json_url ne sia la causa.

Il problema era legato al token. Questo problema è stato risolto integrando dapprima l’autenticazione Google, dopodiché abbiamo verificato cosa non funzionava sul nostro server. Grazie per il tuo aiuto.