Plugin OIDC roto de repente, falla silenciosamente para nuevos usuarios.

Tenemos una instancia de Discourse en funcionamiento que ha dejado de iniciar sesión a los usuarios que aún no tienen una cuenta, ¡y no sabemos por qué! Esto comenzó hace un par de semanas después de instalar el plugin Discourse AI y reiniciar la instancia. Esto solo me llegó después de las quejas de los clientes en los últimos días. Normalmente tenemos muchas inscripciones cada día.

La Configuración

  • Discourse autoalojado a través de docker oficial
  • https://community.enginedj.com
  • Plugin OIDC usando nuestro propio Proveedor OIDC (:camera_flash: 1)
  • Sin otra autenticación excepto OIDC (es decir, sin registro de correo electrónico + contraseña) (:camera_flash: 2)
  • La última inscripción nueva exitosa fue el 22 de noviembre de 2023 a las 5:23 am NZDT
  • El plugin AI se instaló ~ 22 de noviembre de 2023 a las 6:03 am NZDT (esto habría causado el reinicio de la instancia de Discourse)
  • No hay registros de eventos de cambios de configuración del sistema desde octubre, y nada relevante para la autenticación desde marzo (:camera_flash: 3)
  • Mucha actividad en el foro, sin problemas con el espacio en disco / db, etc.

El Problema

  • El flujo de inicio de sesión funciona correctamente, pero después de regresar, los usuarios sin cuenta preexistente no inician sesión.
  • No se muestra ningún mensaje de error.
  • No hay mensajes de error en los registros (tenemos algunos errores CSRF en los registros, pero no están correlacionados con los inicios de sesión fallidos).
  • El registro detallado para el plugin OIDC muestra que consulta correctamente los datos del proveedor OIDC, obtiene reclamaciones, etc., y no muestra problemas (:camera_flash: 4).

Lo que hemos intentado

  • Deshabilitado el plugin Discourse AI
  • Eliminado el plugin Discourse AI
  • Comprobado las respuestas de las cookies en busca de dominios que no coinciden
  • Actualizado todos los plugins / componentes a la última versión (:camera_flash: 5)
  • Confirmado que no se han ajustado la configuración
  • Investigado los registros en el host. Nada destaca.

Aquí hay un video del problema. El primer inicio de sesión es para un usuario sin cuenta de Discourse existente. El segundo es con mi usuario administrador.

https://www.loom.com/share/3aad210d844849dc8154ce6e5db50d29

¿Alguna idea sobre qué deberíamos mirar a continuación?

:camera_flash: 1

:camera_flash: 2

:camera_flash: 3

:camera_flash: 4

:camera_flash: 5

1 me gusta

Hola @snikch :wave:

Cuando paso por el proceso de inicio de sesión en tu sitio, veo este error en la consola de javascript. Proviene del tema id=12, que parece estar intentando (y fallando) agregar algún tipo de estilo adicional para el botón de inicio de sesión.

Si uso las herramientas de desarrollador de mi navegador para ‘bloquear’ el js de ese tema en particular, entonces todo parece funcionar como se esperaba.

Así que creo que para que las cosas vuelvan a funcionar, puedes deshabilitar el tema id=12 o editarlo para corregir/eliminar el código problemático.

Dicho esto, ¡realmente no queremos que este tipo de error de tema rompa por completo el inicio de sesión en los sitios! Así que investigaré si podemos mejorar nuestro manejo de errores aquí :eyes: (edit: PR para mejorar eso aquí)

5 Me gusta

Vaya, gracias @david. Había visto ese error y había creado una tarjeta para que se resolviera, ¡pero simplemente asumí que no tendría nada que ver con el inicio de sesión del usuario, ya que asumí que todo era del lado del servidor y ocurría antes de que el JS renderizara la página! Muchas suposiciones :facepalm: Ahora veo que necesita que se muestre el modal Crear cuenta.

Muchas gracias por la ayuda :heart_eyes_cat:

1 me gusta

Este tema se cerró automáticamente después de 21 horas. Ya no se permiten nuevas respuestas.