Funciona para fazer login do usuário, mas passar a chave groups não parece estar fazendo nada. Analisei o código do ManagedAuthenticator e não vi nada relacionado a grupos.
Está faltando algo ou minha compreensão está incorreta?
@david, você acha que isso é difícil de fazer para alguém que nunca escreveu plugins? É tão simples quanto buscar, pelo nome, os grupos que vêm do JWT, no Discourse e atribuir o resultado da consulta (dos objetos de grupo) a user.groups? Tenho alguma familiaridade com o plugin (por mais simples que seja) e talvez possa fazer isso.
Além disso, devo mesmo me preocupar com isso? Se eu tiver um JWT em mãos, consigo autenticar por meio do OpenID Connect?
Depende de como você quer que funcione… Você provavelmente também vai querer criar grupos normais no Discourse, sem que o JWT remova membros deles aleatoriamente. No nosso sistema nativo de SSO do Discourse, resolvemos isso com dois parâmetros: “adicionar grupos” e “remover grupos”.
No plugin JWT, você provavelmente adicionaria essa lógica na função after_authenticate do autenticador. Certifique-se de chamar super e retornar sua resposta, para que tudo o que já existe continue funcionando corretamente. Um exemplo desse tipo de sobrescrita está aqui.
O plugin discourse-jwt funciona. No entanto, parece que ele foi projetado para funcionar apenas com o algoritmo HS256, por algum motivo. É simples o suficiente para fazê-lo funcionar com outros.