Na lista de contas de serviço, clique na conta recém-criada, registre o ‘ID exclusivo’ para mais tarde e vá para a guia “Chaves”. Crie uma nova chave com o formato “JSON” e salve o arquivo para mais tarde.
Vá em admin.google.com e visite a seção ‘Segurança’. Abra ‘Controles de API’, ‘Gerenciar Acesso a Aplicativos de Terceiros’. Em seguida, clique em ‘Adicionar Aplicativo’, ‘Nome do Aplicativo OAuth ou ID do Cliente’. Insira o ID do cliente de sua aplicação OAuth e selecione-a na lista. Percorra as etapas, garantindo que a aplicação seja definida como “Confiável”. Ela deverá então aparecer na lista:
Volte para a seção ‘Controles de API’, role para baixo e selecione ‘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á em Admin → Config → Login e Autenticação → Autenticadores e procure por ‘google oauth2 hd’. Configure as seguintes configurações:
google oauth2 hd: o nome de 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 grupo do Google
google oauth2 hd groups: ativado
Na próxima vez que um usuário fizer login, o Discourse buscará e armazenará as informações do grupo 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 → Adesão. Abaixo de ‘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 entrar em vigor instantaneamente. Alterações na adesão ao grupo no Google entrarão em vigor no próximo login do usuário.
Muitos agradecimentos a @angus por seu trabalho neste recurso. Esperamos expandir este sistema de sincronização de grupos para outros métodos de login no futuro próximo.
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.