Habilitar sincronización de grupo desde Google Workplace

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

Luego, siga estos pasos:

  1. En el panel de Google para su integración OAuth, vaya a “APIs y Servicios” y agregue "Admin SDK

  2. Vaya a “IAM y Administración” → “Cuentas de servicio” → “Crear cuenta de servicio” y configure una cuenta. Los dos pasos opcionales no son necesarios; omítalos.

  3. En la lista de cuentas de servicio, haga clic en la cuenta recién creada, anote el ‘id único’ para más tarde, luego vaya a la pestaña “claves”. Cree una nueva clave con el formato “JSON” y guarde el archivo para más tarde.

  4. Vaya a admin.google.com y visite la sección de ‘seguridad’. Abra ‘Controles de API’, “Administrar acceso de aplicaciones de terceros”. Luego “Agregar aplicación”, “Nombre de la aplicación OAuth o ID del cliente”. Ingrese el ID de cliente de su aplicación OAuth, luego selecciónela de la lista. Siga los pasos, asegurándose de configurar la aplicación como “De confianza”. Luego debería aparecer en la lista:

  5. Vuelva a la sección ‘Controles de API’, desplácese hacia abajo y elija “Administrar delegación de dominio”. Elija “Agregar nuevo” e ingrese el ID de cliente de la cuenta de servicio que creó anteriormente. En los alcances, pegue el valor

    https://www.googleapis.com/auth/admin.directory.group.readonly
    
  6. En el panel de administración de su Discourse, vaya a Admin → Configuración → Inicio de sesión y autenticación → Autenticadores y busque ‘google oauth2 hd’. Configure los siguientes ajustes:

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

    google_oauth2_hd_groups_service_account_json: pegue el contenido del archivo de clave de cuenta de servicio que generó anteriormente

    google_oauth2_hd_groups_service_account_admin_email: ingrese 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 la información de los grupos de Google.

    google oauth2 hd groups: habilitado

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

Para vincular un Grupo de Google a un grupo de Discourse, visite la configuración del grupo en Discourse y vaya a la sección Administrar → Membresía. Debajo de ‘Automático’, verá un nuevo menú desplegable que le permite vincular cualquier número de Grupos de Google al grupo de Discourse:

Los cambios en esta configuración deberían tener efecto instantáneamente. Los cambios en la membresía del grupo en Google se harán efectivos 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!