¿Es posible el SSO "parcial"?

No soy desarrollador, así que ni siquiera sé qué buscar para encontrar la respuesta a mi pregunta. Actualmente estoy probando Discourse y el tema de cómo inician sesión los usuarios me ha tenido muy preocupado.

Al principio de mi prueba estaba convencido de que SSO sería la opción que elegiría una vez finalizada la prueba, pero ahora no estoy tan seguro. Parece que perdería algunas características agradables de Discourse si habilito SSO (como las funciones de invitación) y no sé si la ventaja en mi caso vale la pena.

¿Es posible que mi foro utilice tanto las cuentas integradas de Discourse como las cuentas de mi sitio? ¿Similar a cómo se pueden configurar las opciones de “o Iniciar sesión con Facebook/Google/Apple”?

¿Saben cómo, cuando un usuario intenta iniciar sesión o crear una cuenta, se le presentan los campos de correo electrónico/contraseña, pero a la derecha se le dan opciones para iniciar sesión con Facebook, Google, etc.? ¿Podría simplemente tener que la cuenta de mi sitio sea una de estas opciones a la derecha?

Así, si un usuario solo quiere usar el inicio de sesión de mi sitio principal y no crear una cuenta nueva específicamente para el foro, podría hacerlo, pero no se le obligaría a hacerlo.

¿Es esto posible? ¿Y es aconsejable? Es decir, ¿hay alguna razón por la que no debería tomar este camino? ¡Gracias!

Depende de lo que quieras decir con “SSO”:

  • Si te refieres a Setup DiscourseConnect - Official Single-Sign-On for Discourse (sso), entonces no puedes usarlo junto con otras opciones de inicio de sesión.

  • Si te refieres a OAuth2, OpenID Connect o cualquiera de nuestros otros plugins de autenticación, entonces sí, pueden usarse entre sí y junto con el inicio de sesión mediante correo electrónico y contraseña.

Buenas noticias al respecto: recientemente hemos añadido soporte para invitaciones en DiscourseConnect.

Y para otros métodos de inicio de sesión:

Estos cambios están activos en la última versión de Discourse.

4 Me gusta

Puedes hacerlo implementando OAuth2 en tu servidor para que funcione como Google, GitHub y otros. (O haciendo que alguien lo haga, ya que no eres desarrollador.)

2 Me gusta

¡Gracias! ¿Podrías enviarme un enlace a la documentación sobre eso, por favor?

Esos dos complementos se pueden encontrar en:

5 Me gusta

¡Estoy emocionado de ver la función de compatibilidad entre SSO y las invitaciones, pero parece que no funciona en mi caso.

Mi sitio principal está en WordPress y estoy utilizando el plugin WP Discourse para integrar ambas aplicaciones. También tengo un formulario de registro que realiza la autenticación por correo electrónico en WordPress y he escrito código personalizado para evitar que Discourse envíe correos de verificación duplicados a los usuarios al registrarse. He habilitado must_approve_users en Discourse para evitar que cualquiera acceda a la comunidad sin aprobación.

Seguí los siguientes pasos y el usuario no quedó aprobado al final. Al igual que antes.

  1. Invitar al usuario con la dirección de correo electrónico.
  2. El usuario abre la invitación por correo y hace clic en el enlace.
  3. El usuario es redirigido a la página de Discourse sin iniciar sesión, con un mensaje de bienvenida y un CTA para continuar.
  4. Al hacer clic en el CTA, el usuario es llevado a la página de inicio de sesión en WordPress.
  5. Como el usuario no está registrado en WordPress, tuve que crear una nueva cuenta para él; creo que esto tiene sentido, ya que WordPress no sabe que Discourse invitó a este usuario.
  6. Después del registro, recibo un correo de confirmación de WordPress. Hago clic en ese correo y soy redirigido a la página de inicio de sesión en WordPress.
  7. Después de iniciar sesión en WordPress, intento acceder a la comunidad pero no puedo.
  8. Voy a la cuenta de administrador y verifico el estado del usuario y, como sospechaba, está en “Necesita aprobación”. Esta es exactamente la misma situación que tenía antes de enviar una invitación.

¿Qué me estoy perdiendo? ¿Hay algún otro flujo que deba seguir? ¿Solo puedo invitar a usuarios que ya estén registrados en WordPress? Busco orientación al respecto. Gracias.

Mi versión de Discourse: 2.8.0.beta1