Enlaces de invitación (botón Aceptar invitación) con SSO no funcionan para la versión estable v2.8.10

Hola equipo de Discourse:

El botón Aceptar invitación no funciona en la versión estable v.2.8.10. Cuando intentas iniciar sesión a través de SSO, simplemente te redirige de nuevo a la página de invitación y Aceptar invitación no hace nada. Tampoco se muestran errores en la consola. ¿Alguien puede ayudar?

Creo que está relacionado con la última actualización: SECURITY: Fix invite link validation (stable) (#18818) · discourse/discourse@7e4e8c8 · GitHub

Saludos.

2 Me gusta

¿Puedes confirmar cómo está configurado tu sitio?

Las invitaciones históricamente no funcionaban con SSO habilitado. Esto podría ser una regresión, pero necesitaremos saber más.

1 me gusta

Hola @Stephen,

¡Gracias por tu respuesta! ¿Qué información necesitas específicamente? Lo tenemos autoalojado en la rama estable (v2.8.10) usando el plugin discourse-saml con Okta (SSO). Antes de la actualización a la 2.8.10, podíamos crear enlaces de invitación a grupos y funcionaban, el usuario iniciaba sesión a través de SSO y luego era redirigido al tema especificado en la configuración de la invitación.

Información Adicional:

En la versión estable anterior v2.8.9, en domain.com/invites/invitecode:

  • Un usuario no registrado vería una pantalla que le pide iniciar sesión a través de SSO (Okta, que está especificado en la configuración SAML de app.yml), lo que lo redirigirá a SSO para iniciar sesión/registrarse, después de lo cual ejecutará las acciones de invitación (redirigir al tema, añadir al grupo, etc.).

  • Un usuario registrado omitiría automáticamente la pantalla de invitación y se ejecutarían las acciones de invitación.

En la versión estable actual v2.8.10, en domain.com/invites/invitecode:

  • Tanto los usuarios no registrados como los registrados verán la pantalla de invitación con 2 botones:
    – Botón Iniciar sesión vía SSO
    – Aceptar invitación (esto es nuevo)

Cuando se hace clic en el botón Iniciar sesión vía SSO, se le pide al usuario que inicie sesión (si no ha iniciado sesión) y se le redirigirá de nuevo a la página de invitación.
Cuando se hace clic en el botón Aceptar invitación, no sucede nada.

Observamos en la consola del navegador de red que hay una solicitud PUT a domain.com/invites/show/invitecode.json que devuelve un error 504 (solo en la versión 2.8.10).

1 me gusta

¿Hay alguna categoría a la que pueda mover esto para poder informar de este error?

1 me gusta

Confirme que tenemos visibilidad del problema, ¿hay alguna manera de confirmar que no es un problema en tests-passed y solo existe en estable por el momento?

2 Me gusta

Hola @sam,

¡Gracias por responder! Me alegra saber que tienes visibilidad sobre el problema.

Lamentablemente, no tenemos una instancia con SSO que haya pasado las pruebas, ya que siempre nos hemos ceñido a la versión estable. Sí tengo una rama que ha pasado las pruebas sin SSO y no hay problemas allí.

EDIT: Intentaré ver si puedo poner en marcha una instancia que haya pasado las pruebas con SSO.

Hola @sam,

Pude iniciar una instancia de tests-passed y no pareció ser un problema para mí en tests-passed.
Pude aceptar invitaciones. ¡Espero que esto ayude!

1 me gusta

¡Hola @sam!

¿Hay alguna posibilidad de que la versión estable pueda ser retroportada para que pueda ser corregida en la versión estable?

Vi que Discourse tuvo una actualización: 2.8.11: Security Release

¿Hay alguna posibilidad de que esta actualización solucione este problema? :slight_smile:

1 me gusta

Sí, actualizaremos, muchas gracias por informar, le avisaremos una vez que lo hayamos hecho. Danos una o dos semanas.

2 Me gusta

¡Eso es genial! ¡Gracias @sam! :raised_hands:

EDITAR:
Solo para que otros sepan si están experimentando esto:

La versión 2.8.11 de estable no soluciona el problema. Sin embargo, al hacer clic en Aceptar invitación ahora aparece un error en el registro de la consola:
PUT https://<DOMAIN>/invites/show/<INVITE_CODE>.json 404
La URL .json te lleva a:

// https://<DOMAIN>/invites/show/<INVITE_CODE>.json

{
  "errors": [
    "No se pudo encontrar la URL o el recurso solicitado."
  ],
  "error_type": "not_found"
}

Hola @hyphalos, he empezado a revisar esto hoy. No estoy familiarizado con nuestra configuración SAML, así que ten paciencia conmigo.

Esto es un poco extraño, el botón “Aceptar invitación” solo debería aparecer para los usuarios que han iniciado sesión. ¿Podrías publicar una captura de pantalla de lo que ven los usuarios que han iniciado y los que no han iniciado sesión para una invitación específica, y también qué opciones estás eligiendo para la invitación aquí?

3 Me gusta

Hola @martin!

Gracias por tu respuesta. Disculpa la demora en responder, estuve enfermo.

Hice más pruebas y lo que he observado es que después de actualizar a v2.8.11, las personas solo pueden aceptar una invitación una vez, sin importar la configuración de creación de invitación. Lo he probado con “Llegar al tema”, sin “Llegar al tema”, “Añadir al grupo”, sin “Añadir al grupo”, etc., y las personas solo pueden aceptar invitaciones una vez. ¿Es este el comportamiento esperado?

¿Qué pasa si un invitado se registra pero usa la misma URL de invitación nuevamente? Se quedarán atascados en la página de invitación (sin redirección con “Llegar al tema”). Cuando hacen clic en Aceptar invitación, aparece este error:

EDITADO: Solo quería añadir que si es el comportamiento esperado, no aparece ningún error que diga “Ya has aceptado esta invitación antes” o algo similar, o simplemente redirigir a donde sea que se establezca “Llegar al tema” en la invitación.

2 Me gusta

Sí, esto es lo esperado. No el error, sino la parte en la que no pueden Aceptar la invitación varias veces. Lo discutimos en New 'accept invitation' prompt feature causing issues with invitation links - #14 by martin donde hice una corrección, pero ahora veo que tendré que portar esa corrección a stable también cc @sam

2 Me gusta

Hola @martin , ¡eso es genial, gracias por investigar!

2 Me gusta

Acabo de confirmar esta corrección en stable aquí:

2 Me gusta

¡Hola @martin!

¡Gracias de nuevo por la solución!

Me he actualizado a la versión 2.8.12 (que según la etiqueta del commit en el panel de administración incluye las correcciones) y ahora veo un mensaje de error (en una cuenta de prueba) al intentar aceptar una invitación que ya he aceptado en la cuenta de prueba:

¡Lo cual es genial!

Sin embargo, como ya he iniciado sesión, no esperaba que se mostrara el botón “Okta SSO”. Cuando se hace clic en el botón, se inicia un bucle de SSO y luego me devuelve a la página de invitación. Dado que el usuario ha iniciado sesión, ¿no debería ocultarse el botón de inicio de sesión para evitar confusiones?

Este tema se cerró automáticamente después de 4 días. Ya no se permiten nuevas respuestas.