Habilitar sincronización de grupo desde Google Workplace (experimental)

:warning: Esto es experimental. La función puede cambiar sin previo aviso.

Para empezar, configura el inicio de sesión de Google siguiendo estas instrucciones:

Luego, sigue estos pasos:

  1. En el panel de Google para tu integración OAuth, ve a “APIs y servicios” y añade “Admin SDK”.

  2. Ve a “IAM y administración” → “Cuentas de servicio” → “Crear cuenta de servicio” y configura una cuenta. Los dos pasos opcionales no son necesarios; sáltatelos.

  3. En la lista de cuentas de servicio, haz clic en la cuenta recién creada, anota el ‘id único’ para más tarde y luego ve a la pestaña “Claves”. Crea una clave nueva con el formato “JSON” y guarda el archivo para más tarde.

  4. Ve a admin.google.com y visita la sección “Seguridad”. Abre “Controles de API”, “Administrar acceso de aplicaciones de terceros”. Luego “Añadir aplicación”, “Nombre de la aplicación OAuth o ID del cliente”. Introduce el ID del cliente de tu aplicación OAuth y selecciónala de la lista. Sigue los pasos, asegurándote de configurar la aplicación como “Confiable”. Debería aparecer entonces en la lista:

  5. Vuelve a la sección “Controles de API”, desplázate hacia abajo y elige “Administrar delegación de todo el dominio”. Elige “Añadir nuevo” e introduce el ID del cliente de la cuenta de servicio que creaste anteriormente. En los ámbitos, pega el valor:

    https://www.googleapis.com/auth/admin.directory.group.readonly
    
  6. En tu panel de administración de Discourse, ve a la pestaña de configuración y busca ‘google oauth2 hd’. Configura los siguientes ajustes:

    google oauth2 hd: el nombre de dominio de tu Google Workspace

    google_oauth2_hd_groups_service_account_json: pega el contenido del archivo de clave de la cuenta de servicio que generaste anteriormente

    google_oauth2_hd_groups_service_account_admin_email: introduce la dirección de correo electrónico de cualquier cuenta de administrador de Google Workspace. Esta identidad será utilizada por la cuenta de servicio al obtener información de grupos de Google.

    google oauth2 hd groups: habilitado

La próxima vez que un usuario inicie sesión, Discourse obtendrá y almacenará información de grupos de Google en segundo plano.

Para vincular un Grupo de Google a un grupo de Discourse, visita la configuración del grupo en Discourse y ve a la sección GestionarMembresía. Debajo de ‘Automático’, verás un nuevo menú desplegable que te permite vincular cualquier número de Grupos de Google al grupo de Discourse:

Los cambios en esta configuración deberían surtir efecto al instante. Los cambios en la membresía del grupo en Google surtirán efecto en el próximo inicio de sesión del usuario.

Muchas gracias a @angus por su trabajo en esta función. Esperamos expandir este sistema de sincronización de grupos a otros métodos de inicio de sesión en un futuro no muy lejano.

8 Me gusta

Me encantaría usar esto con “oauth2 genérico” (específicamente para Auth0). ¿Hay otro hilo o un problema de GitHub que pueda seguir para esto?

3 Me gusta

@david o @angus ¿Pueden proporcionar más detalles para el elemento 6?

Blockquote google oauth2 hd: el nombre de dominio de tu Google Workspace

  1. ¿Te refieres a mi dominio (ebsp.org) que tiene una cuenta de Workspace? ¿O al dominio real del Workspace?
  2. ¿Es solo la URL?

Blockquote google_oauth2_hd_groups_service_account_json: pega el contenido del archivo de clave de la cuenta de servicio que generaste anteriormente

¿Copio y pego todo el contenido del JSON?

@angus @david He seguido estas instrucciones tal como están expuestas. Tengo la casilla para buscar un grupo, pero no aparecen grupos. ¿Alguna idea?

Hola Charlie, el google oauth2 hd proviene de la API de Google OIDC (documentación aquí). Dicen que es:

El dominio asociado con la organización de Google Workspace o Cloud del usuario

Para dar un ejemplo, si estuviera configurando esto internamente para nuestro personal, establecería el valor en discourse.org.

¡Sí!

Los grupos de Google solo aparecerán en Discourse una vez que un miembro de ese grupo inicie sesión en Discourse usando Google. No tenemos ningún sistema para listarlos de antemano.

1 me gusta

@david Finalmente lo he conseguido. Tuve que desactivar algunas cosas. La forma en que estaba configurado mi sitio, los usuarios iniciaban sesión automáticamente a través de Google Oauth. Desactivé eso y Discourse Connect y funcionó. No estoy seguro de cuál estaba creando una desconexión. Una vez que inicié sesión físicamente con Google, todo se pobló.

1 me gusta

¿Todavía es experimental la lectura de Google Groups? ¿Han cambiado estas instrucciones?

1 me gusta

Al igual que @John_Faig, me pregunto si esto sigue siendo experimental.

Acabo de ver esta función y tengo tres Grupos de Google que me gustaría migrar. Es extremadamente difícil conseguir que la gente “cambie”. Necesitamos buenas razones para salir de nuestra zona de confort. Luego, no queremos obstáculos en el proceso. Crear un inicio de sesión (en Discourse) en otro sitio web más es una molestia para las personas que ya están involucradas en GG. Si esta función es estable, se elimina el posible obstáculo y podemos centrarnos en proporcionar razones convincentes para que la audiencia migre.

¡Gracias!