Ativar sincronização de grupo do Google Workplace (experimental)

:warning: Isto é experimental. A funcionalidade pode mudar sem aviso prévio.

Para começar, configure o login do Google seguindo estas instruções:

Em seguida, siga estes passos:

  1. No painel do Google para sua integração OAuth, vá para “APIs e Serviços” e adicione “Admin SDK”

  2. Vá para “IAM e Admin” → “Contas de Serviço” → “Criar Conta de Serviço” e configure uma conta. As duas etapas opcionais não são necessárias - pule-as.

  3. 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.

  4. 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:

  5. 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

    https://www.googleapis.com/auth/admin.directory.group.readonly
    
  6. 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 GerenciarAssociaçã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.

8 curtidas

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?

3 curtidas

@david ou @angus Vocês poderiam fornecer mais detalhes para o item 6?

Blockquote google oauth2 hd: o nome de domínio do seu Google Workspace

  1. Você quer dizer o meu domínio (ebsp.org) que tem uma conta do Workspace? Ou o domínio real do Workspace.
  2. É apenas o URL?

Blockquote google_oauth2_hd_groups_service_account_json: cole o conteúdo do arquivo de chave da conta de serviço que você gerou anteriormente

Copiar e colar todo o conteúdo do JSON?

@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.

1 curtida

@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.

1 curtida

A leitura de Grupos do Google ainda é experimental? Estas instruções mudaram?

1 curtida

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.

Obrigado!