J’ai réussi à faire fonctionner cela avec Authentik OAuth2, mais il y a eu quelques problèmes avec le paramètre oauth2 user json url. J’ai utilisé le point de terminaison user_info d’Authentik pour cela (/application/o/userinfo/), mais je ne savais pas comment mapper les champs. Pour ceux qui cherchent comment configurer Discourse avec l’OAuth2 d’Authentik, voici le résumé :
- Chemin de l’ID utilisateur :
preferred_username - Chemin du nom d’utilisateur :
preferred_username - Chemin du nom :
name - Chemin de l’e-mail :
email - Chemin de l’e-mail vérifié :
email_verified - Avatar : vide.
J’ai eu les problèmes suivants :
- Au début, j’ai oublié la barre oblique finale dans l’URL JSON
https://DOMAIN/application/o/userinfo/. Cela a conduit la requête d’informations utilisateur (lien permanent vers la source) à retourner un code HTTP 301, ce qui a fait échouer la connexion. Je ne sais pas si la barre oblique finale devrait être là selon la spécification, mais il serait peut-être bon de gérer correctement les 301. - Le débogage s’est avéré délicat. Le paramètre
oauth2 debug autha été d’une grande aide, mais… Logster tronque le journal de débogage avant de réellement afficher les données de réponse significatives. J’ai dû modifier manuellement dans le conteneur la ligne de journalisation pour
Peut-être que cette ligne de journalisation pourrait être mise à jour ? Je suppose que cela pourrait aider d’autres personnes à trouver le chemin des attributs JSON.log("user_json_response: #{user_json_response.status} #{user_json_response.headers} #{user_json_response.body}")