What are your experiences with wp-discourse plugin and DiscourseConnect?

Esta es una pregunta antigua, pero han ocurrido algunos cambios desde que se formuló en 2015. Un cambio notable es que ahora utilizamos el término DiscourseConnect en lugar de Discourse SSO. Esto se debe a que el término SSO puede referirse a varios mecanismos de autenticación diferentes (SAML, OAuth2, Auth0…). DiscourseConnect es la implementación de SSO de Discourse.

Cuando DiscourseConnect está habilitado, toda la autenticación en el sitio de Discourse ocurrirá en el sitio que configure con la opción del sitio discourse connect url. Esto significa que los usuarios crearán sus cuentas registrándose en su sitio externo en lugar de registrarse en Discourse. Los detalles de la cuenta se transmitirán a Discourse cuando los usuarios inicien sesión mediante DiscourseConnect. Cuando los usuarios inician sesión por primera vez en Discourse, sus detalles de cuenta se establecerán a partir de los datos proporcionados en la carga útil (payload) del SSO. Dependiendo de los valores de algunas opciones del sitio de Discourse, los detalles de la cuenta continuarán sincronizándose cada vez que el usuario inicie sesión en Discourse, o los usuarios podrán establecer valores distintos para su cuenta en Discourse. La opción relevante para esto es:

  • auth overrides email
  • auth overrides username
  • auth overrides name
  • discourse connect overrides bio
  • discourse connect overrides avatar
  • discourse connect overrides profile background
  • discourse connect overrides location
  • discourse connect overrides website
  • discourse connect overrides card background
  • discourse connect overrides groups

Tenga en cuenta que, por defecto, el plugin WP Discourse solo envía los siguientes campos en la carga útil:

  • username
  • email
  • name
  • bio
  • avatar_url

Se pueden agregar parámetros adicionales a la carga útil conectándose al gancho de filtro wpdc_sso_params de WP Discourse.

Posiblemente la mayor funcionalidad que se pierde al habilitar DiscourseConnect es que, cuando está activado, se convierte en el único método de autenticación para el sitio. Esto significa que los inicios de sesión sociales no pueden estar habilitados en Discourse junto con DiscourseConnect. Sin embargo, puede habilitar inicios de sesión sociales en el sitio de su proveedor de autenticación. Por ejemplo, podría permitir que los usuarios inicien sesión en su sitio web a través de varios proveedores de inicio de sesión social y luego hacer que inicien sesión en Discourse mediante DiscourseConnect. Un enfoque similar puede utilizarse con OAuth2 o SAML. Los usuarios pueden iniciar sesión en su sitio web con esos métodos de autenticación y luego ser redirigidos a Discourse para iniciar sesión mediante DiscourseConnect.

Otra funcionalidad que se pierde es que la opción del sitio invite only de Discourse no puede estar habilitada junto con DiscourseConnect.

La capacidad de sincronizar fácilmente los datos de los usuarios desde una aplicación externa hacia Discourse es un gran beneficio. Las membresías de grupos en Discourse pueden establecerse fácilmente con los campos add_groups y remove_groups que se pasan en la carga útil del SSO. El plugin WP Discourse no pasa ninguno de estos campos por defecto, pero pueden agregarse a la carga útil conectándose al gancho de filtro wpdc_sso_params de WP Discourse.

Las membresías de grupos y cualquier otro campo que pueda establecerse en la carga útil también pueden sincronizarse en una solicitud en segundo plano. Para obtener más detalles, consulte Sincronizar datos de usuario de DiscourseConnect con la ruta sync_sso. Para obtener detalles sobre la sincronización de grupos con el plugin WP Discourse, consulte Gestionar la membresía de grupos de Discourse con WP Discourse SSO.

Otra posible ventaja es que, si ya tiene una gran base de usuarios en un sitio externo, habilitar DiscourseConnect permitirá que estos usuarios inicien sesión en Discourse sin tener que crear una cuenta separada en Discourse.

Con DiscourseConnect, las cuentas se vinculan en función del external_id que se pasa desde el sitio del proveedor de SSO a Discourse. El plugin WP Discourse utiliza el ID de WordPress del usuario para el external_id.

Sí, por defecto todos esos campos se establecen con la implementación de DiscourseConnect de WP Discourse. Como se mencionó anteriormente, si estos campos seguirán sincronizándose cada vez que un usuario inicie sesión en Discourse depende del valor de varias opciones del sitio de Discourse.

7 Me gusta