Note que fiz um rascunho atualizado de PR com uma nova abordagem (incorporando alterações solicitadas por @david na minha última tentativa). Como mencionado nos comentários do PR, pretendo finalizá-lo esta semana.
É um sistema genérico, mas o primeiro caso de uso suportado serão grupos em um Google Workspace. Uma vez que o sistema esteja implementado, adicionar suporte para provedores adicionais não será muito difícil.
Acabei de mesclar este PR - muito obrigado por todo o seu trabalho aqui @angus! Animado para ver como isso será usado e estendido no futuro!
Eu rotulei a configuração do site como “Experimental” por enquanto, para nos dar tempo para testá-la e garantir que tudo esteja funcionando perfeitamente. Assim que estivermos confiantes e tivermos adicionado suporte em mais alguns provedores de autenticação, com certeza criarei um tópico #feature:announcements para o recurso.
Também estou animado para que isso esteja disponível para logins não-Google oauth2/openID… alguma atualização sobre se/quando essa opção pode estar disponível?
Estou auto-hospedando o Discourse atualmente e usando o Authentik como meu provedor de identidade para autenticação. O que eu gostaria de alcançar é sincronizar automaticamente os grupos de usuários do Authentik com grupos específicos no Discourse após o login.
Mas… quero garantir que os usuários locais que se cadastram através do processo de registro local do Discourse não sejam atribuídos a esses grupos específicos e, em vez disso, sigam a progressão normal do nível de confiança.
Migramos nossa autenticação do Atlassian Crowd (agora sem suporte no Discourse) para OpenID Connect (via Keycloak) e queríamos usar o código de mapeamento de grupos do Crowd que contribuímos há alguns anos no plugin discourse-openid-connect.
Esperamos que isso possa ser considerado para ser mesclado e estaríamos dispostos a adicionar à documentação ou aos testes (se puderem me indicar um guia para os testes – ainda não sou um programador ruby nativo!).