¿Podría Discourse ofrecer un servicio de inicio de sesión SSO/federado similar a StackExchange?

He empezado a ver Discourse por todas partes, y no podría estar más feliz. Parece que se está convirtiendo rápidamente en la opción estándar para comunidades que buscan configurar rápidamente nuevos foros de discusión o reemplazar foros existentes basados en plataformas antiguas y patrones de experiencia de usuario desactualizados.

Sin embargo, en cierto sentido, parece ser víctima de su propio éxito: cada vez que quiero publicar en una nueva comunidad de Discourse, necesito crear una cuenta, configurar una contraseña, etc. Algunas comunidades se han tomado la molestia de configurar OAuth a través de GitHub, redes sociales, etc., pero muchas no lo han hecho. Tengo que crear y verificar una nueva cuenta en su servidor de Discourse solo para hacer una pregunta, ofrecer una respuesta o incluso :heart: una respuesta que encontré útil.

Compare esto con mi experiencia en la red StackExchange, donde se me ofrece un botón “Unirse a esta comunidad” en una comunidad con la que deseo interactuar por primera vez. Cuando hago clic en este botón, se me ofrece registrarme usando mi inicio de sesión de otra comunidad:

La nueva cuenta se crea automáticamente y se inicia sesión con un solo clic.

Creo que mi problema radica en que existe una suposición implícita de que cada comunidad de Discourse es una isla por sí misma, y que los usuarios pasan todo el día iniciados sesión en un solo foro esperando ver respuestas y nuevas preguntas, divirtiéndose ganando insignias y acumulando privilegios. En realidad, la gran mayoría de las interacciones de los usuarios están impulsadas por necesidades, con solo unos pocos usuarios anclando las comunidades para participar de manera regular. Creo que la interacción típica de un usuario con una comunidad de Discourse es algo así:

  1. Tener un problema
  2. Buscar una respuesta en Google
  3. No encontrar una solución en ningún lugar de internet, incluido el foro de Discourse del grupo
  4. Decidir que mi problema es lo suficientemente urgente como para crear una cuenta en el foro
  5. Hacer mi pregunta o comentar una pregunta existente
  6. Obtener una respuesta de alguien, o finalmente resolverlo por mi cuenta
  7. Si lo resolví por mi cuenta y me siento pro-social, reportar de nuevo al foro de Discourse con mi solución
  8. Volver a vivir mi vida
  9. Años después, tener otro problema e intentar recordar mis credenciales para poder iniciar sesión en el foro nuevamente
  10. Repetir los pasos 5-10

Gran parte de este proceso se ve obstaculizado por la necesidad de crear una nueva cuenta para cada nuevo foro en el que quiero participar.

Sé que las comunidades de StackExchange son gestionadas por una empresa central, mientras que las comunidades de Discourse están alojadas de manera completamente descentralizada, pero parece que esto podría implementarse con Discourse estableciendo su propio servicio de proveedor de identidad. En contraste con integrar algo como GitHub o Facebook, donde el administrador del foro debe tomar medidas activas en un sitio web externo para configurar OAuth con estos proveedores, parece que los tokens necesarios para un botón “Iniciar sesión con Discourse” podrían configurarse automáticamente mediante el proceso de instalación estándar.

Sé que ha habido otras conversaciones sobre este tema, pero parecen ser demasiado complicadas en alcance y se han desviado del tema.

2 Me gusta

Ese es un tipo diferente de federación, que conecta Discourse con herramientas como Mastodon en relación con publicaciones y respuestas (en lugar de iniciar sesión).

Deberías revisar Discourse SSO, que se está discutiendo en varios temas en meta.

1 me gusta

Lo que describes se discutió mucho en los inicios de Discourse. Hay una etiqueta para ello: #discourse_hub

El tema más reciente es de 2014:

(también, acabo de notar que Jeff usa el nombre @david como ejemplo, muchos años antes de que yo siquiera supiera de Discourse :joy:)

Es una idea muy genial, pero hay muchos obstáculos en el camino.

6 Me gusta

¡Genial, gracias! Parece que SE ha resuelto muchos de los problemas descritos en ese hilo durante los últimos 6 años aproximadamente (por ejemplo, utiliza una combinación de número y nombre de usuario como identificador único para los usuarios).

La esencia del problema parece ser que, a diferencia de SE, Discourse es descentralizado, y cada comunidad está completamente controlada por quien controle el (los) servidor(es) en el que se ejecuta. También argumentaría que aquellos administradores que no quieran ceder un poco de control para hacer su comunidad más accesible podrían tener la opción de excluirse del Discourse Hub, entendiendo que esa decisión tiene un costo en forma de menor accesibilidad y participación de los usuarios.

Podríamos sin duda incluir un inicio de sesión social predeterminado para el proveedor “DiscourseHub”, activado por defecto y con algunas funciones adicionales, como el soporte completo para todos los campos predeterminados (nombre de usuario, nombre, correo electrónico, avatar, biografía) e incluso ofrecer cierta sincronización bidireccional (intentar extraer la cuenta de usuario recién creada y publicar algunos detalles en el perfil central, como insignias y mejores publicaciones). Podríamos incluso utilizarlo para impulsar los mejores estándares, como contraseñas mínimas largas y la autenticación de dos factores obligatoria.

Ahora bien, si deberíamos hacer esto es una gran pregunta abierta.

3 Me gusta

¿Cuánto de esto resolvería un directorio gestionado centralmente (por nosotros)?

Aún necesitarás crear una nueva cuenta en cada sitio, y cada sitio puede tener (por ejemplo) diferentes campos obligatorios al registrarte. Podríamos rellenar la mayoría, pero aún tendrías que confirmarlos. Los avatares ya están bien cubiertos, por ejemplo, por Gravatar.

Sobre intentar recordar tus credenciales: el inicio de sesión con correo electrónico es la mejor manera de usar esas comunidades a las que accedes con poca frecuencia; lo utilizo siempre que está habilitado.

Me encantaría ver un problema sólido que necesite ser resuelto antes de considerar convertirnos en otro proveedor de identidad. Considero la descentralización como una característica, no como un defecto :slight_smile:

6 Me gusta

En este tema… un componente de tema que apoyo al 100% es un cambio que convierte la autenticación en 100% basada en correo electrónico.

  • Para registrarte… solo necesitas ingresar tu dirección de correo electrónico, nombre de usuario y nombre… sin contraseña.
  • Para iniciar sesión… solo necesitas ingresar tu dirección de correo electrónico… sin contraseña.

Ya soportamos el inicio de sesión sin contraseña mediante correo electrónico, pero está algo oculto. Eliminar la contraseña haría que esto fuera completamente evidente y reduciría mucha fricción.

Obviamente, no es un valor predeterminado de Discourse por ahora, pero es un componente de tema muy interesante, en mi opinión.

1 me gusta