Na lista de contas de serviço, clique na conta recém-criada, anote o ‘id exclusivo’ para mais tarde, e então vá para a aba “chaves”. Crie uma nova chave com o formato “JSON” e salve o arquivo para mais tarde.
Vá para admin.google.com e acesse a seção ‘segurança’. Abra ‘Controles de API’, ‘Gerenciar Acesso de Aplicativos de Terceiros’. Em seguida, ‘Adicionar App’, ‘Nome do App OAuth ou ID do Cliente’. Insira o ID do cliente da sua aplicação OAuth, e então selecione-a na lista. Siga os passos, certificando-se de definir a aplicação como “Confiável”. Ela deverá então aparecer na lista:
Volte para a seção ‘Controles de API’, role para baixo e escolha ‘Gerenciar Delegação em Nível de Domínio’. Escolha ‘Adicionar Novo’ e insira o ID do cliente da conta de serviço que você criou anteriormente. Em escopos, cole o valor
No seu painel de administração do Discourse, vá para a aba de configurações e procure por ‘google oauth2 hd’. Configure as seguintes configurações:
google oauth2 hd: o nome do domínio do seu Google Workspace
google_oauth2_hd_groups_service_account_json: cole o conteúdo do arquivo de chave da conta de serviço que você gerou anteriormente
google_oauth2_hd_groups_service_account_admin_email: insira o endereço de e-mail de qualquer conta de administrador do Google Workspace. Esta identidade será usada pela conta de serviço ao buscar informações de grupos do Google
google oauth2 hd groups: ativado
Na próxima vez que um usuário fizer login, o Discourse buscará e armazenará informações de grupos do Google nos bastidores.
Para vincular um Grupo do Google a um grupo do Discourse, visite a configuração do grupo no Discourse e vá para a seção Gerenciar → Associação. Em ‘Automático’, você verá um novo menu suspenso que permite vincular qualquer número de Grupos do Google ao grupo do Discourse:
As alterações nesta configuração devem ter efeito instantaneamente. As alterações na associação de grupos no Google terão efeito no próximo login do usuário.
Um grande agradecimento a @angus por seu trabalho nesta funcionalidade. Esperamos expandir este sistema de sincronização de grupos para outros métodos de login em um futuro não muito distante.
Eu adoraria usar isso com o “oauth2 genérico” (especificamente para Auth0). Existe outro tópico ou um problema no GitHub que eu possa acompanhar para isso?
@angus@david Segui estas instruções da forma como foram apresentadas. Tenho a caixa para procurar um grupo, mas nenhum grupo é preenchido. Alguma ideia?
Olá Charlie, o google oauth2 hd é da API Google OIDC (documentos aqui). Eles dizem que é:
O domínio associado à organização Google Workspace ou Cloud do usuário
Para dar um exemplo, se eu estivesse configurando isso internamente para nossa equipe, definiria o valor como discourse.org.
Sim!
Os grupos do Google só aparecerão no Discourse quando um membro desse grupo fizer login no Discourse usando o Google. Não temos nenhum sistema para listá-los antecipadamente.
@david Finalmente consegui. Tive que desativar algumas coisas. A forma como meu site estava configurado, os usuários eram logados automaticamente através do Google Oauth. Desativei isso e o Discourse Connect e funcionou. Não tenho certeza de qual estava criando uma desconexão. Assim que fiz login fisicamente com o Google, tudo foi preenchido.
Assim como @John_Faig, estou me perguntando se isso ainda é experimental.
Acabei de ver este recurso e tenho três Grupos do Google que gostaria de migrar. Convencer as pessoas a “mudar” é extremamente difícil. Precisamos de bons motivos para sair da nossa zona de conforto. Então, não queremos obstáculos no processo. Criar um login (no Discourse) em mais um site é um incômodo para pessoas que já estão investidas no GG. Se este recurso for estável, o potencial obstáculo é removido e podemos nos concentrar em fornecer motivos convincentes para o público migrar.