Plugin Oauth2-basic e pkce

Ciao a tutti,

sono nuovo del plugin oauth2-basic e, dopo aver letto la documentazione e il codice sorgente, non riesco a trovare una risposta alla mia domanda.

  • Il plugin oauth2-basic supporta PKCE?
  • Se sì, come posso abilitarlo?
  • Se no, come potrei modificare il codice del plugin oauth2-basic per utilizzare PKCE?

La pagina README di omniauth su GitHub afferma che dovrei essere in grado di impostare l’opzione pkce su true nella mia strategia omniauth. Tuttavia, ho provato a apportare questa modifica nel codice del plugin oauth2-basic e nessun code challenge viene inviato al mio authorize_url. Qualche suggerimento?

Grazie in anticipo

Sto riproponendo questo argomento poiché una community che assisto sta richiedendo il supporto per PKCE.

Prima che mi venisse chiesto, non avevo ancora visto nulla a riguardo, ma esaminando la documentazione sembra che il motore principale di questo sia per le app native e le SPA:

App native

  • Non possono archiviare in modo sicuro un segreto client. La decompilazione dell’app rivelerà il segreto client, che è associato all’app ed è lo stesso per tutti gli utenti e dispositivi
  • Possono utilizzare uno schema URL personalizzato per acquisire i reindirizzamenti (ad esempio, MyApp://) consentendo potenzialmente alle applicazioni dannose di ricevere un codice di autorizzazione dal tuo server di autorizzazione.

Single-page app

  • Non possono archiviare in modo sicuro un segreto client poiché l’intero loro codice sorgente è disponibile per il browser

Nessuna delle due opzioni è applicabile a questa situazione; è il server Discourse che detiene il segreto.

Animated GIF