Discourse OAuth2 di base

Ho appena fatto funzionare questo con Authentik OAuth2, tuttavia ci sono stati alcuni intoppi con l’impostazione oauth2 user json url. Ho usato l’endpoint user_info di Authentik per quello (/application/o/userinfo/), tuttavia non sapevo come mappare i campi. Per chiunque cerchi come configurare Discourse con OAuth2 di Authentik, ecco il riassunto:

  • Percorso ID utente: preferred_username
  • Percorso nome utente: preferred_username
  • Percorso nome: name
  • Percorso email: email
  • Percorso email verificata: email_verified
  • Avatar: vuoto.

Ho avuto i seguenti problemi:

  1. All’inizio, ho dimenticato lo slash finale nell’URL json https://DOMAIN/application/o/userinfo/. Questo ha portato la richiesta di informazioni utente (permalink alla sorgente) a restituire un codice HTTP 301, che ha causato il fallimento del login. Non so se lo slash finale debba esserci per specifica, ma forse sarebbe bene gestire correttamente il 301.
  2. Il debug di questo si è rivelato complicato. Le impostazioni oauth2 debug auth sono state una manna dal cielo ma… Logster tronca il log di debug prima di scaricare effettivamente i dati di risposta significativi. Ho dovuto modificare manualmente nel container la riga di log per
    log("user_json_response: #{user_json_response.status} #{user_json_response.headers} #{user_json_response.body}")
    
    Forse quella riga di log potrebbe essere aggiornata? Immagino che potrebbe aiutare altre persone a capire il percorso degli attributi json.
4 Mi Piace