Acabo de hacer que esto funcione con Authentik OAuth2, sin embargo, hubo algunos problemas con la configuración de oauth2 user json url. Usé el endpoint user_info de Authentik para eso (/application/o/userinfo/), sin embargo, no sabía cómo mapear los campos. Para cualquiera que busque cómo configurar Discourse con OAuth2 de Authentik, aquí está el resumen:
- Ruta del ID de usuario:
preferred_username - Ruta del nombre de usuario:
preferred_username - Ruta del nombre:
name - Ruta del correo electrónico:
email - Ruta de verificación del correo electrónico:
email_verified - Avatar: vacío.
Tuve los siguientes problemas:
- Al principio, olvidé la barra diagonal al final en la URL JSON
https://DOMAIN/application/o/userinfo/. Esto llevó a que la solicitud de información del usuario (enlace permanente a la fuente) devolviera un código HTTP 301, lo que provocó que el inicio de sesión fallara. No sé si la barra diagonal al final debería estar allí por especificación, pero quizás sería bueno manejar correctamente los 301. - Depurar esto resultó complicado. La configuración
oauth2 debug authfue un salvavidas, pero… Logster trunca el registro de depuración antes de volcar realmente los datos de respuesta significativos. Tuve que modificar manualmente en el contenedor la línea de registro a
¿Quizás esa línea de registro podría actualizarse? Supongo que podría ayudar a otras personas a descubrir la ruta de los atributos JSON.log("user_json_response: #{user_json_response.status} #{user_json_response.headers} #{user_json_response.body}")