Funciona para iniciar sesión en el usuario, pero pasar la clave groups no parece tener ningún efecto. He revisado el código de ManagedAuthenticator y no veo nada relacionado con los grupos.
@david ¿Qué tan difícil crees que sea hacerlo para alguien que no ha escrito plugins? ¿Es tan simple como buscar por nombre los grupos que provienen del JWT en Discourse y asignar el resultado de la consulta (de los objetos de grupo) a user.groups? Tengo cierta familiaridad con el plugin (por simple que sea) y quizás pueda hacerlo.
Además, ¿debería siquiera molestarme en esto? Si tengo un JWT en mano, ¿puedo autenticarme mediante OpenID Connect?
Depende de cómo quieras que funcione… probablemente quieras poder crear grupos normales en Discourse también, sin que el JWT elimine miembros de ellos al azar. En nuestro sistema de SSO nativo de Discourse, resolvemos esto con dos parámetros: “add groups” y “remove groups”.
En el plugin JWT, probablemente añadirías esta lógica en la función after_authenticate del autenticador. Asegúrate de llamar a super y devolver su respuesta, para que todo lo existente siga funcionando correctamente. Un ejemplo de ese tipo de sobrescritura está aquí
El plugin discourse-jwt funciona. Sin embargo, parece que está diseñado para funcionar solo con el algoritmo HS256, por alguna razón. Es bastante sencillo hacerlo funcionar con otros.