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:
- 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. - Il debug di questo si è rivelato complicato. Le impostazioni
oauth2 debug authsono 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
Forse quella riga di log potrebbe essere aggiornata? Immagino che potrebbe aiutare altre persone a capire il percorso degli attributi json.log("user_json_response: #{user_json_response.status} #{user_json_response.headers} #{user_json_response.body}")