Habilitar sincronização de grupo do Google Workplace

Para começar, configure o login do Google de acordo com estas instruções:

Em seguida, siga estas etapas:

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

  2. Vá em “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, 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.

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

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

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

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!